从 Excel 用户表单搜索 Access 数据库时,是否可以搜索 ID 列以外的其他列?

When searching an Access database from an Excel userform is it possible to search other columns than just the ID column?

我想用 UserInitials 列中的用户首字母搜索访问数据库,但我收到错误 没有为一个或多个必需参数提供值

但是,如果我使用 ID 列中的 ID 搜索数据库,它就可以正常工作。

这可以吗?我检查了拼写,没有问题,数据库本身没有空字段。我还更改了主键并将其从 ID 设置为 UserInitials 但这似乎没有任何区别。 非常感谢。

Public Function searchDatabase()

If UserForm1.TextBox4.Value = "" Then
MsgBox "field empty"

Else

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset


con.connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data 
Source=C:\Users\MyPC\Desktop\DatabaseOne.accdb;"
'Open Db connection
con.Open
Set rs.ActiveConnection = con
rs.Open "Select * from TableUser where UserInitials= " & UserForm1.TextBox4.Text & ""

StartRow = 3
Do Until rs.EOF

'User Initials
UserForm1.TextBox1.Text = rs.Fields(1).Value
'User Full Name
UserForm1.TextBox2.Text = rs.Fields(2).Value
'User Email
UserForm1.TextBox3.Text = rs.Fields(3).Value

rs.MoveNext
StartRow = StartRow + 1
Loop
Set rs = Nothing
con.Close
Set con = Nothing

End If

End Function

您需要将 UserForm1.TextBox4.Text 放在引号中,否则 SQL 语句将无法正确解释

尝试

 rs.open "Select * from TableUser where UserInitials= '" & UserForm1.TextBox4.Text & "'"

进一步阅读Quotation marks in string expressions