我在Excel中有一个用户表单,打算用作搜索表单,并且有一个列表框列出结果。我正在使用VBA。单击搜索按钮后,该表单将从我的Access数据库中的表中搜索一个帐号。除了“搜索”字段(“文本框”)外,它还有一个搜索按钮(“命令按钮”)和一个“列表框”。我的目标是:
我正在尝试创建一个Excel工作表来放置查询结果。
- AcctNo是我打算进行搜索的Access中我的MemberAccts表的头之一
- acctNoField是我的搜索表单中搜索字段的名称
错误是说“没有为一个或多个参数提供值”。调试时,突出显示“ rst.Open qry,cnn,adOpenKeyset,adLockOptimistic”。
我只是不知道我缺少哪个参数。抱歉,我是新手。为非营利组织做。帮助将不胜感激。这是我的VBA代码:
Private Sub acctSearchBtn_Click() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("AcctInfo") sh.Cells.ClearContents Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim qry As String, Dim AcctNo As String If Me.acctNoField.Value = "" Then MsgBox "Please enter an Account Number", vbCritical Exit Sub ElseIf Me.acctNoField.Value <> qry Then cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\MasterDb.accdb" qry = "SELECT * FROM MembrAccts WHERE Me.acctNoField.Value= '" & AcctNo & "'" rst.Open qry, cnn, adOpenKeyset, adLockOptimistic MsgBox "The Account Number does not exists", vbCritical Exit Sub Else MsgBox "Place Retrieve_account function here", vbCritical End If rst.Close cnn.Close End Sub
我在Excel中有一个用户表单,打算用作搜索表单,并且有一个列表框列出结果。我正在使用VBA。表单将从我的Access数据库中的表中搜索帐号...
您在qry代码中的彼此位置中都有Me.acctNoField.Value和AcctNo。不需要声明AcctNo变量。将acctNoField.Value与qry变量进行比较没有任何意义。
考虑: