我們最近創建了Access數據庫後端並將其遷移到SQL Server。我試圖使用VBA代碼創建一個到SQL Server後端的連接,並運行一個傳遞查詢,結果存儲在一個VB記錄集中。當我嘗試這個時,查詢不會通過。SQL Server直通查詢作爲Access中DAO記錄集的基礎
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strConnect As String
strConnect = "DRIVER=SQL Server;SERVER=55.55.55.55 SQLExpress;UID=UserName;PWD=Password"
Set db = OpenDatabase("DBName", dbDriverNoPrompt, True, strConnect)
Set rs = db.OpenRecordset("SELECT GetDate() AS qryTest", dbOpenDynaset)
MsgBox rs!qryTest
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
我得到的問題是完全適當的GetDate()
SQL Server的功能「在表達用戶定義的函數‘GETDATE’」返回運行時錯誤3085。如果我在MS-Access查詢生成器中創建相同的查詢作爲MS-Access查詢生成器中的直通,那麼它將運行良好並返回服務器日期和時間,只有在代碼中沒有正確傳遞時纔會生效。
「將我們的Access DB後端遷移到SQL Server」。我現在的建議是從DAO遷移到ADO記錄集,如果你需要在熟悉的視圖中查詢,那麼passthroughs很好,但如果只需要代碼,那麼ADO就是要走的路:) –
這是最終的計劃。不幸的是,我處在一個環境中,我是4年前管理其他人創建的數據庫的唯一技術人員,並且隨着我的步伐逐漸增加。一次一步,但計劃是過渡到ADO ....最終! – Mike