Ms access 处理文本错误

Ms access 处理文本错误,ms-access,error-handling,vba,runtime-error,Ms Access,Error Handling,Vba,Runtime Error,我有一个Access-2007应用程序,我使用Visual Basic从文本文件导出/导入表格。 我想捕获此方法可能引发的所有错误。我想得到这个方法的错误号列表,我在MSDN上搜索了一下,但没有找到任何东西 另外,如果导入失败,我想阻止access创建导入程序表 有什么想法吗?如果要预测试数据,可以使用SQL 使用schema.ini文件和直接导入MS Access。schema.ini文件与规范相当 [imp.txt] ColNameHeader=False Format=FixedLeng

我有一个Access-2007应用程序,我使用Visual Basic从文本文件导出/导入表格。

我想捕获此方法可能引发的所有错误。我想得到这个方法的错误号列表,我在MSDN上搜索了一下,但没有找到任何东西

另外,如果导入失败,我想阻止access创建导入程序表


有什么想法吗?

如果要预测试数据,可以使用SQL

使用schema.ini文件和直接导入MS Access。schema.ini文件与规范相当

[imp.txt]
ColNameHeader=False
Format=FixedLength
Col1=ID  Char Width 8
Col2=AName  Char Width 10
Col3=Mark Char Width 2
SQL

在VBA中:

Dim db As Database
Set db = CurrentDB

sSQL = "SELECT * INTO Imp FROM [Text;DATABASE=Z:\docs].[imp.txt]"
db.Execute sSQL, dbFailOnError
参考文献:



谢谢,但我实际上更喜欢使用TransferText(我的应用程序非常庞大,我现在无法更改)。如果导入失败,如何阻止access创建导入器表?“我不相信有任何方法可以阻止access创建导入器表。”——Douglas Steele,access MVP。你应该能够找到该表并将其删除。我尝试了你的解决方案,它似乎更稳定,我将尝试在下一个应用程序中使用它。谢谢您的解决方案,但是您将这个
shema.ini
存储在哪里呢?SQL示例似乎没有明确地引用它。它必须与CSV位于同一文件夹中吗?@iDevlop是的,据我记忆,它必须位于同一文件夹中。内置的
TransferText
旨在尽可能简单,以便基本用户可以将数据导入access,因此查询它的能力受到限制。除了Remou的建议,您可以通过VBA自己解析文件,这将允许您在插入之前测试和验证数据,但是正如您所提到的,您的应用程序很大,不值得重新编写。
SELECT * INTO Imp FROM [Text;DATABASE=Z:\docs].[imp.txt]
Dim db As Database
Set db = CurrentDB

sSQL = "SELECT * INTO Imp FROM [Text;DATABASE=Z:\docs].[imp.txt]"
db.Execute sSQL, dbFailOnError