访问:将参数从文本框发送到存储过程

时间:2011-08-19 17:53:20

标签: sql-server ms-access

我正在尝试使用SQL Server 2008中的参数创建一个过程,并使用未绑定的文本框将结果作为Access 2010中的控件源(Access 2000 - 2003文件格式.mdb)。

我最初有一个dlookup作为文本框的控制源,但它太慢了。 如何调用从文本框发送参数到链接存储过程?

1 个答案:

答案 0 :(得分: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。