【发布时间】:2019-04-08 17:43:06
【问题描述】:
使用 Access 导入电子表格向导,我可以为每个字段输入设置字段名称、数据类型、索引和跳过属性。是否有类似的 VBA 代码可以使用特定的字段设置功能进行相同的导入?
Access 预设导入电子表格向导可以完成我想做的事情。只是看起来事后无法修改。几个字段默认为日期/时间(字段行顶部的日期),但数据类型需要以短文本结尾。
访问 2016 accdb 和 Excel 2016 xlsm 文件格式。
【问题讨论】:
使用 Access 导入电子表格向导,我可以为每个字段输入设置字段名称、数据类型、索引和跳过属性。是否有类似的 VBA 代码可以使用特定的字段设置功能进行相同的导入?
Access 预设导入电子表格向导可以完成我想做的事情。只是看起来事后无法修改。几个字段默认为日期/时间(字段行顶部的日期),但数据类型需要以短文本结尾。
访问 2016 accdb 和 Excel 2016 xlsm 文件格式。
【问题讨论】:
最接近导入电子表格向导功能的方法是DoCmd 对象的TransferSpreadsheet 方法。
但是,虽然您可以指定电子表格的第一行是否包含字段名称,但您无法提供导入规范(就像您可能使用 TransferText 方法一样),因此您无法控制每个字段的数据类型和索引列,以及导入是否应忽略特定列。
可能的替代方法是首先使用TransferSpreadsheet 方法导入电子表格,然后将导入的数据插入到预先存在的表中,并根据需要配置适当的字段和索引选项,例如:
insert into
myexistingtable ( field1, field2, field3 ... )
select
myimportedtable.column1, myimportedtable.column2, myimportedtable.column3 ...
from
myimportedtable
或者,您可以绕过 TransferSpreadsheet 方法导入并直接使用 ADO 访问电子表格保存的数据,例如:
insert into
myexistingtable ( field1, field2, field3 ... )
select
myimportedtable.column1, myimportedtable.column2, myimportedtable.column3 ...
from
[Excel 12.0 Xml;HDR=Yes;Database=C:\YourExcelFile.xlsx].[YourSheet$A:Z]
【讨论】: