对其他地方有效的导入代码的参数无效

时间:2014-12-01 15:18:19

标签: vba ms-access access-vba

亏本,我有一个导入模块,用于帮助技术水平较低的同事将数据导入访问数据库进行处理。我使用以下代码进行8个差异文本导入,除了一个之外它们都可以工作。我可以使用导入规范手动导入,这不是问题,我已经三次检查表并导入规范名称,也不是问题,任何人都可以告诉我为什么访问会抛出错误?

Function import_Headcount()
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Set db = CurrentDb
Dim path As Variant

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [tbl_Headcount]"


With fd
.AllowMultiSelect = False

    If .Show = -1 Then
    For Each path In .SelectedItems
    DoCmd.TransferText acImportDelim, "National Headcount", "tbl_Headcount", path, False
    Next path
    Else
        MsgBox ("Import for Headcount cancelled")
        Exit Function
    End If
End With
Set fd = Nothing

db.Execute "qry_Update_Headcount_Fields"

DoCmd.SetWarnings True
MsgBox ("Import of Headcount complete")

End Function

它在DoCmd.TransferText行上抛出一个“3001”错误,正如我所说,我已经用不同的表和导入规范复制并粘贴了这个小函数8次,并且无法理解为什么这个不起作用。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您是否尝试在规范名称中使用方括号?

DoCmd.TransferText acImportDelim, "[National Headcount]", "tbl_Headcount", path, False

答案 1 :(得分:0)

听起来你在故障排除方面走在正确的轨道上......继续排除变量,直到找出问题为止。

我建议安装免费软件Access插件V-Tools。这有一个用于管理/编辑导入规范的实用程序。这将是我在调试导入问题时可以使用的第一个工具。它包含许多其他有用的工具,但对于手头的项目,我认为您会发现导入/导出规范表格非常有用。

enter image description here

以下是我们每天使用的导入规范的屏幕截图:

enter image description here

如您所见,在导入和导出数据时,此实用程序提供的内容远比内置向导多。

希望有所帮助!