将数据从 Excel 文件导入 MSAccess 格式化 VBA 中的每一列
Posted
技术标签:
【中文标题】将数据从 Excel 文件导入 MSAccess 格式化 VBA 中的每一列【英文标题】:Importing Data from Excel file to MSAccess formatting each column in VBA 【发布时间】:2022-01-06 19:07:04 【问题描述】:我正在编写一个将 excel 文件导入 ms access 数据库的系统,但我想知道在导入数据库之前是否可以格式化每一列。
例如:
EXCEL 文件(xls 或 xlsx):A 列 = 日期时间; B栏=整数; C栏=字符(25); D 列 = VARCHAR(255)...
我现在正在使用此代码,但它是自动的。
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
strTable, strPathFile, blnHasFieldNames
strFile = Dir()
Loop
【问题讨论】:
如果 excel 和访问列的数据类型相同(即使数字存储为文本),则无需单独格式化访问列。它会自动转换数据类型。 数据在导入前必须在 Excel 中格式化,但您仍然可能会遇到数据转换错误。最好的方法是链接 Excel 文件并通过查询导入,您可以根据需要调整数据。 我从来没有为 Excel 文件尝试过这种方法,但经过短暂搜索后,我找到了 hereDoCmd.RunSavedImportExport
方法。您进行一次导入,为每列设置所需的数据类型,然后检查以保存导入规范并运行它,而不是新的导入任务。请善待(比我更善意...),并在此处发布代码和过程,如果可行.. TIA
【参考方案1】:
是的,建议在导入前在 excel 中格式化列,以降低某些数据未正确导入的风险。
选择要修改的单元格。
单击“主页”选项卡上“数字格式”命令旁边的下拉箭头。将出现数字格式下拉菜单。
选择所需的格式选项
excel中的格式选项包括
A.ABC 一般
B.编号
C 货币
D 短日期
E 长日期
还有一些其他的。
您必须手动格式化excel中的列,不能通过访问以编程方式完成
【讨论】:
以上是关于将数据从 Excel 文件导入 MSAccess 格式化 VBA 中的每一列的主要内容,如果未能解决你的问题,请参考以下文章
自动将不同的 Excel 文件导入 MS Access 2010 表