我尝试在Microsoft Access 2016数据库中创建一个按钮,用于库存跟踪,点击后,会显示一个InputBox,询问相关设备的序列号,UDID和/或IMEI。我在私有子中嵌入了一个SQL查询,代码如下:
Private Sub cmdInventoryItems_Click()
On Error Resume Next
Dim vItem As String
vItem = InputBox("Type the Serial Number/UDID/IMEI of your device.", "Text
Search")
Dim StrSQL As String
StrSQL = "Select * from tbl_Inventory where [Serial Number/UDID/IMEI] like
[%" & vItem & "%]"
Me.RecordSource = StrSQL
End Sub
代码中的百分号表示允许将字符串与序列号/ UDID / IMEI字段的任何部分进行比较。
每当我单击cmdInventoryItems时,它会按计划抛出一个InputBox,但是当一个值输入到文本框中时,access会询问一个参数值,提示符是我刚输入的值,被百分比符号包围。如果我在"输入参数值"中没有输入任何内容。盒子里的东西都消失在我的主表格上。
任何人都可以解释发生了什么,以及如何解决这个问题? 感谢您提供的任何帮助。
答案 0 :(得分:2)
Access期望方括号表示字段(或表)名称或参数。如果您使用somefield = [anything]
进行测试,则会看到一个包含文字anything
的参数框。
摆脱方括号并用单引号替换它们,你需要用文字表达式'%" & vItem & "%'"
包围它们。
但是,MS Access的通配符是星号*而不是百分号。
答案 1 :(得分:0)
您的代码行: StrSQL =“从* tbl_Inventory中选择*,其中[序列号/ UDID / IMEI]就像 [%“& vItem&”%]“
问:该表的字段名称实际上是&完全?:序列号/ UDID / IMEI
代码行必须是:
StrSQL =“从tbl_Inventory中选择*,其中[TableFieldName]就像 “*”& vItem& “*”“
请注意星号周围不应有空格 - 但在这篇文章中没有空格,它们似乎没有正确显示:“”& vItem& “”,“