背景:我在Access 2010用戶前端工作與Microsoft SQL Server 2008的後端。訪問中的表都鏈接到SQL服務器數據庫。我有一個存儲過程將新值(由參數提供)插入到表中。我已經經歷了很多例子,但我不太瞭解我是否真的接近或者完全不在。我之前問了一個類似的問題,得到了很好的結果,但是我有關於連接字符串的問題。這裏是問題/ anwser Calling Stored Procedure while passing parameters from Access Module in VBA調用存儲過程VBA
我不知道如何找到製作連接字符串所需的信息(例如:我不知道提供者/服務器名稱/服務器地址)。我發現在這裏說:「如果你已經有一個訪問鏈接表指向SQL Server數據庫,那麼你可以簡單地使用它.Connect字符串以DAO.QueryDef對象來執行存儲過程」問題 - Connection string for Access to call SQL Server stored procedure我試圖執行此代碼,但我不確定如何傳遞參數,所以我嘗試使用前面的示例。但我得到的錯誤「調用失敗」在行「設置RST = qdf.OpenRecordset(dbOpenSnapshot)」何況我傳遞參數的代碼可能是路要走。
Set qdf = CurrentDb.CreateQueryDef("")
qdf.Connect = CurrentDb.TableDefs("tblInstrumentInterfaceLog").Connect
qdf.sql = "EXEC dbo.upInsertToInstrumentInterfaceLog"
qdf.ReturnsRecords = True
Set rst = qdf.OpenRecordset(dbOpenSnapshot)
qdf.Parameters.Append qdf.CreateParameter("@BatchID", adVarChar, adParamInput, 60, BatchID)
qdf.Parameters.Append qdf.CreateParameter("@InstrumentName", adVarChar, adParamInput, 60, InstrumentName)
qdf.Parameters.Append qdf.CreateParameter("@FileName", adVarChar, adParamInput, 60, FileName)
qdf.Parameters.Append qdf.CreateParameter("@QueueId", adVarChar, adParamInput, 60, QuenueId)
rst.Close
Set rst = Nothing
Set qdf = Nothing
有人能告訴我什麼可能是我的代碼錯誤,爲什麼我得到這個錯誤?謝謝!
這是一個標準的Access數據庫或Access數據項目嗎?即通過ODBC(標準數據庫)鏈接的表,還是將數據項目直接連接到SQL Server數據庫? –
我不確定我沒有創建數據庫,我只是爲它編寫程序。有沒有辦法告訴? – VictoriaJay
對於Access 2010不確定,但要看的東西......是表格鏈接表還是它們看起來像原生表?在「文件」菜單選項下,您是否有連接選項,其中設置了與數據庫的連接? –