2012-05-14 75 views
1

DSN的ODBC访问,VBA

(贤者线100和MS Access之间),我想表的进口万无一失到从圣人线的MS Access 100 由于从几个来源几个表必须被导入和查询以特定的顺序运行,我想通过一键单击(表单按钮,它将运行一个宏来导入dbbase运行查询和导出)自动化

有几个源位置从哪里到导入表格并不是所有用户都设置了系统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" 

以上导致:

First Window

在点击 'OK':

Error Window

同样的结果来自:

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 

什么想法?

+1

不是答案,但这些评论可能是有趣的http://andrewonedegree.wordpress.com/2009/12/16/sage-line-100-odbc-driver-hmmm/#comments – Fionnuala

回答

0

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