2012-05-14 117 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」導致錯誤。