我正在尝试使用SQL Server 2008中的参数创建一个过程,并使用未绑定的文本框将结果作为Access 2010中的控件源(Access 2000 - 2003文件格式.mdb)。
我最初有一个dlookup作为文本框的控制源,但它太慢了。 如何调用从文本框发送参数到链接存储过程?
答案 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。