设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1690|回复: 5
打印 上一主题 下一主题

[Access本身] excel追加access报错

[复制链接]
跳转到指定楼层
1#
发表于 2016-5-23 17:39:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'引用Microsoft ActiveX Data Objects 2.x Library
Sub excel追加写入access()
    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim myPath As String
    Dim myTable As String
    Dim SQL As String
    myPath = ThisWorkbook.Path & "\2016夏销售数据库.accdb"
    myTable = "2016夏零售A485"
    On Error GoTo errmsg
    cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & myPath '连接数据库
   
    '生成数据库不存在记录的SQL语句
    SQL = "select a.* from [Excel 12.0;Database=" & ActiveWorkbook.FullName & "].[Sheet1$" & Range("A1").CurrentRegion.Address(0, 0) _
        & "] a left join " & myTable & " b on a.ID=b.ID where b.ID is null"
    Set rs = New ADODB.Recordset
    rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
   
    '插入数据库不存在记录
    If rs.RecordCount > 0 Then '如果工作表中含有数据库不存在记录
        SQL = "insert into " & myTable & " " & SQL '插入新记录SQL语句
        cnn.Execute SQL
        MsgBox rs.RecordCount & "行数据已经添加到数据库!", vbInformation, "添加数据"
    Else
         MsgBox "工作表的数据数据库中已经存在。", vbInformation, "添加数据失败"
    End If
   
    '关闭连接释放内存
    rs.Close
    cnn.Close
    Set rs = Nothing
    Set cnn = Nothing
    Exit Sub
errmsg:
    MsgBox Err.Description, , "错误报告"
End Sub


上如上的宏,excel里大约有6万行,就报错如图,请问是什么原因,怎么处理?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-5-24 09:12:40 | 只看该作者
Access和Excel应该是两个不同的ADO链接,需要分别创建,因此,应该需要加上以下代码:
原代码需加入:
Dim cnn1 As New ADODB.Connection
cnn1.Open "Provider=Microsoft.Ace.OLEDB.12.0;extended properties=Excel 12.0;Data Source=" & ActiveWorkbook.FullName
原代码:rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
需修改为:
rs.Open SQL, cnn1, adOpenKeyset, adLockOptimistic
3#
发表于 2016-5-24 09:56:12 | 只看该作者
不大可能有13万条记录吧,Excel应该只能有6万条记录。

点评

他的是2007版本以上的,所以Access也只能使用accdb格式。  发表于 2016-5-24 10:31
4#
 楼主| 发表于 2016-5-24 12:25:57 | 只看该作者
多谢,明白了
5#
 楼主| 发表于 2016-5-27 11:28:19 | 只看该作者
本帖最后由 nuo518 于 2016-5-27 12:04 编辑
roych 发表于 2016-5-24 09:12
Access和Excel应该是两个不同的ADO链接,需要分别创建,因此,应该需要加上以下代码:
原代码需加入:
Di ...

你好,请问要在哪个位置加如以上代码? 我按你的方法做了,还是提示相同的问题,不知道是不是我放错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-13 08:19 , Processed in 0.111793 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表