Office中国论坛/Access中国论坛

标题: 如何VBA编写导入语句 [打印本页]

作者: leung    时间: 2007-3-16 17:43
标题: 如何VBA编写导入语句
有一ITEM表,只有两个字段itemno和Desc,也有一个EXCEL表,只有相同的两列,需要用VBA编写语句将EXCEL表内的相同两列资料导入ACCESS中ITEM表,使用VBA编写的目的是不想改变ACCESS的ITEM表结构,有那位高手可以指点一下?谢谢!

在线等。。。。。。
作者: bergyan    时间: 2007-3-16 17:59
docmd.transferspreadsheet acimport

用这个代码...后面选项补全即可
作者: leung    时间: 2007-3-16 22:42
对于此命令不是很明白怎么使用,有没有例子可看看?不好意思,本人是菜。。。。鸟
作者: leung    时间: 2007-3-17 00:58
1 Private Sub cmdGo_Click()
2 If MsgBox("是否重新导入?", vbYesNo, "导入") = vbYes Then
3 DoCmd.SetWarnings False
4 DoCmd.RunSQL "DELETE * FROM Item;"
5 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Item", _         Me.foldername.Value,False, "A1:B65536"
6 DoCmd.SetWarnings True
7 End If
8 End Sub

执行以上命令时为什么会在5行中止,并提示:运行时错误‘2391’:在目标表“ITEM"中字段‘F1’不存在。我的ITEM表只有两个字段ITEMNO,DESC啊,那里来的‘F1’,真的不明白为什么?
作者: sgrshh29    时间: 2007-3-17 01:05
5 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Item", _         Me.foldername.Value,False, "A1:B65536"
这个红色的改为true试试。
作者: leung    时间: 2007-3-17 16:33
如果将False改为True,势必要修改Item表的字段名称,我的ITEM表,字段用英文,标题用中文的方式建表,如果用True的话,EXCEL表的第一行一定要是标题,这样会覆盖ITEM表的设定的,所以使用False,这样都不行吗?我觉得原因应该不是这个才对啊
作者: leung    时间: 2007-3-17 16:56
真的改成TRUE就可以导入了,但是还有一个问题,就是执行了这个语句将数据导入ACCESS完成后,没有提示信息告诉我已经完成导入,请问这个语句又应该怎样编写呢?
作者: bergyan    时间: 2007-3-17 17:11
True 跟 False 的区别是要不要将导入表的第一行作为字段名而已,,至于导入完成提示,则可以导入语句的后面加一Msgbox"导入完成" 即可
作者: nxjswt    时间: 2007-3-17 18:53
先用宏做好,实现你的效果!再将宏转换为vba代码!




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