Ms access 将Excel工作表导入access
我正在尝试将数据从Excel工作表导入access表。我正在尝试自动化数据操作过程。因此,我可以通过以下代码将数据读入access:Ms access 将Excel工作表导入access,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我正在尝试将数据从Excel工作表导入access表。我正在尝试自动化数据操作过程。因此,我可以通过以下代码将数据读入access: Private Sub ctlOpen_Click() Set f = Application.FileDialog(3) f.AllowMultiSelect = False If f.Show Then strExcelPath = f.SelectedItems(1) End If Call DoCmd.Transfe
Private Sub ctlOpen_Click()
Set f = Application.FileDialog(3)
f.AllowMultiSelect = False
If f.Show Then
strExcelPath = f.SelectedItems(1)
End If
Call DoCmd.TransferSpreadsheet(acImport, _
acSpreadsheetTypeExcel8, "InitialTable", strExcelPath, _
True)
End Sub
但是我犯了一个错误。它创建另一个名为import errors的表,声明“类型转换失败”,后跟列名和行号
问题是,我的excel工作表上有一列名为ETA,它有一个日期。列中的大多数字段的月/日类似于('1/20'或1/17'),但一些字段的代码类似于'BAD'或'CP'。我的数据操作的一部分是将所有“坏”的东西从今天起改为一周,并用不同的公式表示“CP”
所以我的问题是:在DoCmd.TransferSpreadsheet()或任何替代文件中,是否有一种方法可以将所有内容都读取为字符串?您可以手动将表中的所有列作为字符串导入,并将导入和代码调用保存为DoCmd.RunSavedImportExport“您的导入名称”您可以手动导入所有列为字符串的表,并将导入和代码调用保存为DoCmd.RunSavedImportExport“您的导入名称”我不清楚您为什么不在导入前执行“数据操作”。@jeped所需的大多数其他内容已经在access表单上。我试图创建另一个按钮,用户在其中指向excel文件,然后它将导出access表中的格式化数据。在我的代码中,initialtable本质上是一个temp表,这就是问题所在!电子表格和数据库之间的典型区别。在电子表格中,您可以在列中输入任何字符串/日期/布尔值/数字。如果您不遵守列的数据类型,数据库将惩罚您。Access的datetime字段需要每个段的日期、月份和年份:
MM/DD/YYYY
或DD/MM/YYYY
(取决于您的区域设置)。如果忽略时间(HH:MM:SS
),则假定午夜为00:00:00
。我不清楚您为什么不在导入之前执行“数据操作”。@Jeeped所需的大部分其他内容已经在access表单上。我试图创建另一个按钮,用户在其中指向excel文件,然后它将导出access表中的格式化数据。在我的代码中,initialtable本质上是一个temp表,这就是问题所在!电子表格和数据库之间的典型区别。在电子表格中,您可以在列中输入任何字符串/日期/布尔值/数字。如果您不遵守列的数据类型,数据库将惩罚您。Access的datetime字段需要每个段的日期、月份和年份:MM/DD/YYYY
或DD/MM/YYYY
(取决于您的区域设置)。如果忽略时间(HH:MM:SS
),则假定午夜00:00:00
。