1

(在 Sage Line 100 和 MS Access 之间)

我试图从 Sage Line 100 将表导入 MS Access 中做到万无一失。由于必须导入来自多个来源的多个表并且查询以特定顺序运行,因此我想一键自动执行此操作(表单按钮将运行一个宏来导入数据库运行查询和导出)

有几个源位置可以从中导入表,并且并非所有用户都设置了系统 DSN(我也不想为每个人设置它们 - 我不是 IT 人员(没有 IT 人员))。

这是我正在尝试的代码:

DoCmd.TransferDatabase acImport, "ODBC Database", _<br>
    "ODBC;DRIVER={SAGE Line 100}; LOG=S:\apps\L100;" & _ 
    "SCH=S:\apps\svnp;DIR=S:\data\svnd\mfg;" & _
    "UID=abcd;PWD=defg;LANGUAGE=us_english;" & _
    "DATABASE=ACCOUNTING_SYSTEM.STOCK_CONTROL_FILE", _
    acTable, "ACCOUNTING_SYSTEM.STOCK_CONTROL_FILE", "ASSCF"

以上导致:

第一个窗口

单击“确定”时:

错误窗口

相同的结果来自:

Dim strSQL As String
    strSQL = "SELECT * INTO ASSCF" & _
             " FROM [ODBC;DRIVER={SAGE Line 100};" & _
             "LOG=S:\apps\L100;SCH=S:\apps\svnp;DIR=S:\data\svnd\mfg;" & _
             " UID=ajay;PWD=ajoo].ACCOUNTING_SYSTEM.STOCK_CONTROL_FILE;"
CurrentDb.Execute strSQL, dbFailOnError

笔记:

当我使用我在系统上设置的 DSN 时,我可以成功导入数据:

Dim strSQL As String
    strSQL = "SELECT * INTO ASSCF" & _
             " FROM [ODBC;DSN=SAGE-mfg" & _
             " UID=ajay;PWD=ajoo].ACCOUNTING_SYSTEM.STOCK_CONTROL_FILE;"
CurrentDb.Execute strSQL, dbFailOnError

有任何想法吗?

4

1 回答 1

0

与其将DRIVER嵌入到你的sql语句中,不如设置一个odbc连接字符串,然后通过连接字符串打开连接并执行sql。我认为你的sql语句中“DRIVER”前面的“ODBC”导致了错误。

于 2012-08-02T03:42:53.983 回答