首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MS Access -按文本框搜索

MS Access -按文本框搜索
EN

Stack Overflow用户
提问于 2017-08-26 02:06:50
回答 2查看 1.2K关注 0票数 0

我是Microsoft Access的新手,但我一直在使用另一个数据库中的相同代码,并将其替换为您在下面看到的代码。

代码语言:javascript
运行
复制
strsearch = Me.txtSearch.Value
Task = "SELECT * FROM t_Cases WHERE ((CaseID Like ""*" & strsearch & "*"") OR (ActiveYN Like ""*" & strsearch & "*"") OR (ClaimType Like ""*" & strsearch & "*"") OR (HousingLocation ""*" & strsearch & "*"") OR (GrievanceAddress Like ""*" & strsearch & "*""))"
Me.RecordSource = Task
Me.OrderByOn = True

有一个名为txtsearch的文本框,表单上的记录将根据所选的书面文本框进行过滤。但是,我得到一个runtime error '3075',指出查询表达式中存在语法错误(缺少运算符)。有人能帮我找出这里面的语法错误是什么吗?我非常感谢你能提供的任何帮助。

琼恩

EN

回答 2

Stack Overflow用户

发布于 2017-08-26 11:27:30

使用运算符(例如:=,<,>,LIKE)可以比较两个值。

您在HousingLocation之后缺少一个LIKE

代码语言:javascript
运行
复制
Task = "SELECT * FROM t_Cases WHERE ((CaseID Like ""*" & strsearch & "*"")" & _
  " OR (ActiveYN Like ""*" & strsearch & "*"")" & _
  " OR (ClaimType Like ""*" & strsearch & "*"")" & _
  " OR (HousingLocation LIKE ""*" & strsearch & "*"")" & _
  " OR (GrievanceAddress Like ""*" & strsearch & "*""))"
票数 0
EN

Stack Overflow用户

发布于 2017-08-26 17:25:25

让我们永远不要对用户输入使用简单的连接。如果用户输入包含",那么我们的查询中就存在语法错误。

让我们使用BuildCriteria函数。

代码语言:javascript
运行
复制
Dim strsearch As String
    strsearch = Me.txtSearch.Value

Dim filters(0 To 4) As String
    filters(0) = BuildCriteria("CaseID", dbText, strsearch)
    filters(1) = BuildCriteria("ActiveYN", dbText, strsearch)
    filters(2) = BuildCriteria("ClaimType", dbText, strsearch)
    filters(3) = BuildCriteria("HousingLocation", dbText, strsearch)
    filters(4) = BuildCriteria("GrievanceAddress", dbText, strsearch)

Dim filter As String
    filter = Join(filters, " OR ")

Dim Task As String
    Task = "SELECT * FROM t_Cases WHERE " & filter

Me.RecordSource = Task
Me.OrderByOn = True
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45887200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档