2011-08-19 45 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。