sql - MS Access - 文本字段返回查询字符串而不是查询结果值
问题描述
我尝试了一些变化,似乎都给了我相同的结果——所以我忽略了一些我认为非常简单的东西。
我有一个用于帐号的文本框、一个搜索按钮和一个用于搜索查询结果的文本框。但是,当我点击搜索时 - 查询本身被添加到第二个文本框中,而不是 1 或 0 的预期结果。
这是我在此站点上找到的最新尝试:
Private Sub SearchAcctNumber_Click()
Dim strsearch As String
Dim Task As String
If IsNull(Me.Text0) Or Me.Text0 = "" Then
MsgBox "Please type in your account number.", vbOKOnly, "Acct Num Needed"
Me.Text0.SetFocus
Else
strsearch = Me.Text0.Value
Task = "SELECT I_Ind FROM dbo_BC WHERE (([ACCOUNT_NUMBER] Like ""*" & Text0 & "*""))"
Me.Text2 = Task
End If
End Sub
有人能帮我看看我犯的错误吗?如此简单的事情并没有像我认为的那样工作,这让我发疯了。
编辑:想补充一点,我也尝试过 DLookup 并在其他尝试迭代中得到相同的结果。
解决方案
在这种情况下,您可能需要重新考虑该Like
方法。无论如何,问题是您为文本框分配了一个字符串(SQL 命令),这就是您所看到的。
试试这个:
Private Sub SearchAcctNumber_Click()
If IsNull(Text0.Value) Then
MsgBox "Please type in your account number.", vbOKOnly, "Acct Num Needed"
Text0.SetFocus
Exit Sub
End If
Dim strSearch As String
Dim strCriteria As String
strSearch = Text0.Value
strCriteria = "ACCOUNT_NUMBER Like '*" & strSearch & "*'"
Text2.Value = Nz(DLookup("I_Ind", "dbo_BC", strCriteria), "Not found...")
End Sub
您也可以在键入时“搜索” Text0
。在尝试定位之前设置最小字符数。
Private Sub Text0_Change()
If Len(Text0.Text) > 3 Then
Text2.Value = Nz(DLookup("I_Ind", "dbo_BC", "ACCOUNT_NUMBER Like '*" & Text0.Text & "*'"), vbNullString)
End If
End Sub
推荐阅读
- winforms - 与应用程序中的另一个窗口交互
- plsql - PLS-00323:子程序或光标
- mysql - 如果它只出现在指定的时间段内但从未出现过,则从 mysql 返回一条记录
- database - 仅由开发人员将数据插入数据库
- python - 如何使用python比较结果集对象中的2个连续行值
- r - 如果对输入进行过滤后行 == 0,则让闪亮的应用程序显示自定义消息而不是绘图
- javascript - 如何使用不一致的 PHP 舍入?
- php - 从重定向到购物车的自定义表中设置和使用会话数据
- sql - 如何从包含重复行的表中获取条件输出值
- excel - VBA 错误 1004 - 从 VB.Net (Visual Studio) 调用函数