Office中国论坛/Access中国论坛

标题: 用ADO连接EXCEL2007后保存为ACCESS数据表的问题 [打印本页]

作者: imono    时间: 2012-12-28 15:08
标题: 用ADO连接EXCEL2007后保存为ACCESS数据表的问题
各位前辈,小弟新学ADO,想用ADO连接服务器上的EXCEL表作为数据源,待进行某些数据处理后,再保存到Access表里面
研究了一下午,刚把连接EXCEL数据的步骤弄清楚,可是不知道如何保存成Access表

Dim Connstr As String
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
add = "D:\yuxgworkcenter\My Documents\SC Database\SourceData.xlsx"
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & add & ";Extended Properties='Excel 12.0 Macro;HDR=YES';"
cn.Open Connstr
rs.Open "Select * from [基础数据$]", cn, adOpenKeyset, adLockOptimistic

上面是连接的代码,接下来我想把记录集rs保存到当前Access数据库的某个数据表中,数据表需要新建,请问如何操作?
还望各位前辈不吝赐教,谢谢!

作者: zhuyiwen    时间: 2012-12-28 17:16
既然你可以连接到 Excel 的数据表,那么你同样可以连接到 Access 的表,然后,新建一个连接该表的记录集,通过遍历的办法,将 Excel 记录集的内容,新增到 Access 记录集中,这样就完成了你的任务。
作者: todaynew    时间: 2012-12-28 17:19
什么必要直接用生成查询就可以从Excel表创建数据表了。
作者: imono    时间: 2012-12-28 17:20
zhuyiwen 发表于 2012-12-28 17:16
既然你可以连接到 Excel 的数据表,那么你同样可以连接到 Access 的表,然后,新建一个连接该表的记录集,通 ...

谢谢回复!
请问对于记录集中数据的复制,是否只能逐行进行?有没有什么方法能够按列或者整体复制?因为我那个EXCEL表中数据量很大,如果遍历的话估计要很久
作者: imono    时间: 2012-12-28 17:55
todaynew 发表于 2012-12-28 17:19
什么必要直接用生成查询就可以从Excel表创建数据表了。

其实导入EXCEL表后再操作也可以接受,不过因为想借着这个问题研究一下记录集操作的相关技巧,所以还是想坚持一下
请问如果用某EXCEL表作为数据源建立了一个recordset,我能否用这个recordset执行SQL生成查询?
作者: roych    时间: 2012-12-28 22:44
imono 发表于 2012-12-28 17:55
其实导入EXCEL表后再操作也可以接受,不过因为想借着这个问题研究一下记录集操作的相关技巧,所以还是想坚 ...

除非反过来,在Excel里写ADO代码来操作Access,不过结果还是要回到逐行写入Access的。
最佳的办法就是链接Excel数据表,然后用追加查询把数据追加到Access本地表;或者直接用Access导入。
作者: imono    时间: 2012-12-29 09:31
roych 发表于 2012-12-28 22:44
除非反过来,在Excel里写ADO代码来操作Access,不过结果还是要回到逐行写入Access的。
最佳的办法就是链 ...

早上睡觉迷迷糊糊的时候梦到有人告诉我可以把EXCEL表的名称作为追加查询的数据源,起来后很是激动,然后写了如下语句:
Connstr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Add & ";Extended Properties='Excel 12.0 Macro;HDR=YES';"
cn.Open Connstr
cn.Execute "Select * into TEST1 from [基础数据$];"
其中[基础数据$]是EXCEL表中的表名,结果还是不行,请问链接EXCEL数据表后,如何用追加查询把数据追加到本地表?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3