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

问题描述 投票:0回答:1

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

但是,如果我使用ID列中的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
excel vba ms-access search userform
1个回答
0
投票

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

尝试

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

进一步阅读Quotation marks in string expressions

© www.soinside.com 2019 - 2024. All rights reserved.