2013-02-08 25 views
1

我很担心链接表与csv文件存在问题。 我做了通过VBA代码附加这样的:启动时将MSAccess链接CSV文件作为表格

With CurrentDb 
    Dim ts As DAO.TableDef 
    Set ts = .CreateTableDef("cli") 
    ts.SourceTableName = "CLI1.csv" 
    ts.Connect = "Text;DSN=CLI1 Spec;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Users\user1\Desktop" 
    .TableDefs.Append ts 
    .TableDefs.Refresh 
End With 

当这个被称为手动,该表是否正确连接。 当在autoexec宏中自动调用它时,出现错误3625,说文本文件规范“CLI1 Spec”不存在......通过它!

也许是因为当运行一个autoexec宏的上下文没有完全初始化......但我能做些什么才能使它工作?

回答

2

尝试:

With CurrentDb 
    Dim ts As DAO.TableDef 
    Set ts = .CreateTableDef("cli") 
    ts.SourceTableName = "CLI1.csv" 
    ts.Connect = "Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Users\user1\Desktop" 
    .TableDefs.Append ts 
    .TableDefs.Refresh 
End With 

如果不适合,这是不是太困难的使用Schema.ini文件和sql,例如:Handle TransferText Errors

+0

我不“我不觉得会适合,因为我没有给出规范,而且我也不想创建一个模式文件,因为导入已经在生产环境中工作了很多年了,我只想把csv的路径放在一个ini文件中,并将其附加到应用程序启动 – boblemar 2013-02-09 06:14:59

+0

另一方面,它使用system.ini更清晰透明,而且它似乎甚至可以在autoexec宏内运行 – boblemar 2013-02-09 08:23:16