将数据从 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 文件尝试过这种方法,但经过短暂搜索后,我找到了 here DoCmd.RunSavedImportExport 方法。您进行一次导入,为每列设置所需的数据类型,然后检查以保存导入规范并运行它,而不是新的导入任务。请善待(比我更善意...),并在此处发布代码和过程,如果可行.. TIA 【参考方案1】:

是的,建议在导入前在 excel 中格式化列,以降低某些数据未正确导入的风险。

    选择要修改的单元格。

    单击“主页”选项卡上“数字格式”命令旁边的下拉箭头。将出现数字格式下拉菜单。

    选择所需的格式选项

excel中的格式选项包括

A.ABC 一般

B.编号

C 货币

D 短日期

E 长日期

还有一些其他的。

您必须手动格式化excel中的列,不能通过访问以编程方式完成

【讨论】:

以上是关于将数据从 Excel 文件导入 MSAccess 格式化 VBA 中的每一列的主要内容,如果未能解决你的问题,请参考以下文章

自动将不同的 Excel 文件导入 MS Access 2010 表

将特定数据从 csv 文件导入 MS Access

将 Excel 电子表格导入 MS Access 数据库

从 MS Access 导入数据

当我将 excel(dd/mm/yyyy) 中的日期格式导入 msaccess 时,它显示非日期值

导入 Excel 电子表格时 MS Access 2013 类型转换失败