2014-04-11 15 views
2

我試圖使用Excel 2007中的VBA在Access 2007數據庫中執行查詢作爲存儲過程。查詢從通過ODBC DSN鏈接的幾個MS SQL表中檢索數據。對於外部表的認證與Windows NT authentication with Trusted_Connection=Yes通過ADO調用存儲過程的訪問查詢無法從鏈接表中檢索

我試圖連接到與既有用戶和系統DSN鏈接表做 - 無論哪種方式工作得很好,當我從Access 2007中

運行查詢,當我嘗試在Excel中使用VBA時,不會檢索應該來自Windows已驗證表的數據。我能夠從一組使用存儲的UID的鏈接MS SQL表中檢索數據。

這裏是我使用的連接字符串:

strDB = xlWb.Path & "\database\dbQueries.accdb" 
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
    "Data Source=" & strDB & ";" 

這裏是,這只是部分成功(從UID認證表中的數據)的命令:

With cmd2 
    .ActiveConnection = conn 
    .CommandText = "qryAppendtblOutput" 
    .CommandType = adCmdStoredProc 
    .Parameters.Append cmd2.CreateParameter("[Start Date]", adDBDate, adParamInput, , startDate) 
End With 

cmd2.Execute 

非常感謝提前!

+0

使用查詢名稱'qryAppendtblOutput'是否應該返回行?我只是運行你的代碼來追加數據到Access中的一個表,它的工作? –

+0

是的,它的確如此。我能夠從一組使用存儲的UID的鏈接MS SQL表中檢索數據。 – Yllzarith

回答

0

我已經能夠通過切換到Access ODBC驅動程序而不是OLE DB提供程序來解決此問題。我改變了我的連接字符串:

strDB = xlWb.Path & "\database\dbQueries.accdb" 
conn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};" & _ 
    "Dbq=" & strDB & ";" & _ 
    "Trusted_Connection=Yes;" 

然後,所有我需要做的就是調整的基礎查詢的語法訪問,以滿足該驅動程序的要求(我曾與單打更換所有雙引號)。

非常感謝所有查看我的問題的人:)!

相關問題