Vba 如何使用TransferSpreadsheet将源文件的文件名添加到每行的第一个单元格?
我试图将源excel文件的文件名添加到导入Access表的每行的第一个单元格中 我在网上搜索,但找不到一个我想要实现的接近的例子Vba 如何使用TransferSpreadsheet将源文件的文件名添加到每行的第一个单元格?,vba,ms-access,Vba,Ms Access,我试图将源excel文件的文件名添加到导入Access表的每行的第一个单元格中 我在网上搜索,但找不到一个我想要实现的接近的例子 公共函数导入() 将路径设置为字符串 将文件名设置为字符串 path=“C:\Users\”&NetworkUser()&“\Documents\TestDatabase\” fileName=Dir(路径&“\*.xlsx”) 而文件名为“” DoCmd.TransferSpreadsheet导入,10,“表1”,路径和文件名,True,“A4:S28” fileN
公共函数导入()
将路径设置为字符串
将文件名设置为字符串
path=“C:\Users\”&NetworkUser()&“\Documents\TestDatabase\”
fileName=Dir(路径&“\*.xlsx”)
而文件名为“”
DoCmd.TransferSpreadsheet导入,10,“表1”,路径和文件名,True,“A4:S28”
fileName=Dir()
温德
调用DeleteEmptyRows
端函数
我正在努力完成的一个例子:
从Excel文件输入
Stone | 5 | No
Door | 1 | No
访问表上的输出
example1.xlsx | Stone | 5 | No
example1.xlsx | Door | 1 | No
example2.xlsx | Table | 2 | No
example2.xlsx | Chair | 6 | No
example3.xlsx | Fuel | 12 | Yes
将电子表格导入包含
文件名
文本值字段的现有表中,然后运行简单的更新
查询,用电子表格的文件名填充文件名
字段
例如,假设您的表Table1
包含一个名为filename
的附加字段,您可以在DoCmd.TransferSpreadsheet
方法之后运行update
查询:
While fileName <> ""
DoCmd.TransferSpreadsheet acImport, 10, "Table1", path & fileName, True, "A4:S28"
DoCmd.RunSQL "update table1 set table1.filename = '" & fileName & "' where table1.filename is null"
fileName = Dir()
Wend
文件名为“”
DoCmd.TransferSpreadsheet导入,10,“表1”,路径和文件名,True,“A4:S28”
DoCmd.RunSQL“update table1 set table1.filename=”&filename&“其中table1.filename为空”
fileName=Dir()
温德
example1.xlsx | Stone | 5 | No
example1.xlsx | Door | 1 | No
example2.xlsx | Table | 2 | No
example2.xlsx | Chair | 6 | No
example3.xlsx | Fuel | 12 | Yes
While fileName <> ""
DoCmd.TransferSpreadsheet acImport, 10, "Table1", path & fileName, True, "A4:S28"
DoCmd.RunSQL "update table1 set table1.filename = '" & fileName & "' where table1.filename is null"
fileName = Dir()
Wend