如何用VBA将excel指定的列导入access
access吧
全部回复
仅看楼主
level 1
以前用transferspreadsheet将整张表导入excel,但这次表列数太多,于是想只将需要的列导进去,有大神知道怎么做吗
2023年08月16日 06点08分 1
吧务
level 13
先做个查询,缩小数据范围及列,再导入即可。
2023年08月17日 03点08分 2
level 1
在VBA中做查询吗
2023年08月17日 03点08分 3
level 11
用vba结合查询做
2023年08月19日 01点08分 4
用哪个代码,vba不是很熟
2023年08月19日 01点08分
@贴吧用户_Q67RV74 代码多,需要代写嘛
2023年08月19日 04点08分
level 5
简单,主要就是定义一个EXCEL对象,定义当前ACCESS库表,就可以操作了。
以下为从我做的的一个应用提取出来的一短VBA代码,修改了一下,你参考。我的这个VBA是从EXCEL表中的某几列,提取出符合一定条件的数据,回写到ACCESS库表中,属于修改,你的直接导出属于新增记录,用Insert into即可。关键在于用gxlApp.Worksheets(1).Cells(x,y).Value来控制与指定具体的单元格,这个和EXCEL中的VBA一样的。
Dim gxlApp As Object
Set gxlApp = CreateObject("Excel.Application")
gxlApp.Visible = False
gxlApp.Workbooks.Open FileName:=EXEL文件路径
Dim dbCurrent As Database
Set dbCurrent = CurrentDb
For excelline = st_line To end_line '用循环,导入,我定义的是遇首列为空时间停止,视为数据结束
'如果是导入并修改ACCESS库表中某记录的某个字段则用Update:
dbCurrent.Execute ("Update Your_TABLE SET pb 字段01= '" & gxlApp.Worksheets(1).Cells(excelline,y).Value , 字段02= ....where...)
'如果是纯导入ACCESS库表则用Insert into:
dbCurrent.Execute ("Insert into Your_TABLE (字段1,字段2,。。。。) values( '" & gxlApp.Worksheets(1).Cells(excelline,y).Value & "',..)
'其中 y 为指定的EXCEL列号,注意 '"和 & "'的用法。
...
...
...
next
最后注意关闭这个EXCEL对象,省得EXCEL总留在进程里:
Set egxlApp = Nothing
2023年09月13日 08点09分 5
level 4
学习VBA,用ADO实现,一两句话说不清,自己先学吧,不然人家给你写好的,你连改都不会改
2023年09月15日 05点09分 6
1