2011-08-19 72 views
2

我想在SQL Server 2008中創建一個參數的過程,並使用未綁定的文本框來獲取結果作爲Access 2010中的控制源(Access 2000 - 2003文件格式。 MDB)。訪問:從文本框發送參數到存儲過程

我最初有一個dlookup作爲文本框的控制源,但它太慢了。 如何調用從文本框發送參數到鏈接的存儲過程?

+0

該參數來自窗體。該文本框只是輸出。 – Rick

回答

3

我不確定這個建議是否足夠,因爲DLookup太慢了。您可以考慮向我們展示您的DLookup聲明,並告訴我們它所引用的字段及其索引。

無論如何,我認爲你可以使用ADO從SQL Server存儲過程中獲取結果。這裏是我用來獲取SQL Server Express中sp的結果的簡單示例。

Private Sub GetCenterCodes() 
    Dim cnn As Object 
    Dim rs As Object 

    Set cnn = CreateObject("ADODB.Connection") 
    cnn.ConnectionString = "DRIVER=SQL Server;SERVER=VM2003\SQLEXPRESS;" & _ 
     "Trusted_Connection=Yes;DATABASE=Inventory" 
    cnn.Open 
    Set rs = cnn.Execute("EXEC GetCenterCodes 14, 14, 501") 
    Debug.Print rs(0) 
    rs.Close 
    Set rs = Nothing 
    cnn.Close 
    Set cnn = Nothing 
End Sub 

您可以使用參數的值創建EXEC語句。說這是在一個名爲txtParam文本框中的數值:

"EXEC YourSpName " & Me.txtParam 

或者,如果它是一個字符串,在EXEC添加單引號:

"EXEC YourSpName '" & Me.txtParam & "'" 

相反Debug.Print的,存儲的價值,你的文本框的目的地。

另外,我使用ODBC作爲連接字符串。你可能更喜歡OLEDB。