在Access中查找链接到SQL Server数据库

时间:2017-11-28 15:16:12

标签: sql-server ms-access access-vba

我有一个链接到SQL Server数据库的多用户Access UI,用于为抵押贷款公司执行贷款审核。用户当前正在使用Access中已存在的“查找记录”功能,并且查找记录需要很长时间。虽然我确实理解为什么它需要这么长时间以及它理论上需要做什么,但我无法找出编写代码直接执行所需记录的最佳方法。它需要是一个类似于现有查找记录功能的消息框,但它执行最有效的方式。我尝试了以下内容,其中不包含消息框,但它不起作用:

  Private Sub txtFindLoan_AfterUpdate()

  Dim sSQL As String
  sSQL = "SELECT * FROM dbo_PreCloseAuditEnc WHERE LOAN_NUM = '" & 
  Me.txtFindLoan & "'"

  Me.RecordSource = sSQL
  Me.Requery
  End Sub 

提前致谢!

1 个答案:

答案 0 :(得分:1)

由于您只使用外部数据并将表单直接绑定到已过滤的ADODB记录集,因此您可能最不习惯使用ADODB

正如Sean Lange所说,你应该参数化你的查询,你可以使用DAO或ADO,但不能修改Me.RecordSource属性

Private Sub txtFindLoan_AfterUpdate()
    Dim sSQL As String
'I'm assuming your table name in MS SQL is dbo.PreCloseAuditEnc
    sSQL = "SELECT * FROM dbo.PreCloseAuditEnc WHERE LOAN_NUM = ?"
    Dim adoConn As New ADODB.Connection
'Enter a valid OLEDB connection string here:
    adoConn.Open "Provider=SQLNCLI11;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;"
    Dim cmd As New ADODB.Command
    cmd.ActiveConnection = adoConn
    cmd.CommandText = sSQL
    cmd.Parameters.Append cmd.CreateParameter(Type:=adChar, Value:=Me.txtFindLoan)
    Me.RecordSet = cmd.Execute
End Sub