首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MySQL后端在MS Access中创建(多字段)搜索表单?

问如何使用MySQL后端在MS Access中创建(多字段)搜索表单?
EN

Stack Overflow用户
提问于 2019-12-06 04:03:41
回答 1查看 986关注 0票数 0

我正在为MySQL后端创建一个Access表单前端,我想知道是否有一种方法可以为搜索多个字段的表创建一个搜索表单。在寻找这个话题的答案时,我似乎找到了“学习和使用VBA”的共识,但我想知道当使用MySQL后端时,这是否仍然适用。因为我比较精通MySQL,所以创建一个查询来搜索多个字段是微不足道的,但我不知道如何将其合并到Access中。有没有人有这方面的经验可以帮上忙?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 05:57:25

是的,工作量最少,最好的选择就是抛出一个窗体,让用户输入要搜索的值,然后将"where“子句传递给要过滤的窗体或报表。

Access在上述方面做得相当好,并且只会拉下符合条件的记录。

比方说,要搜索一个客户,你可以抛出一个这样的表单:

​

​

因此,在上面,用户输入了Smi。

因此,我们的代码可以这样:

me.RecordSource = "select * from tblCustomers where LastName like '“& me.txtSearch & "*'”

现在,在这种情况下,我们创建了SQL。但你也可以这样做:

代码语言:javascript
复制
docmd.OpenReport "rptCustomers",,,"LastName like '" & me.txtSearch & "*'"

因此,将where子句传递给表单将不再需要编写或连接sql字符串。

一旦你显示了结果,你就可以向下钻取了。当您单击上面的单行(眼镜图标)时,我们将使用以下内容启动一个记录的表单:

docmd.OpenReport "ViewTour","id =“& me!id

因此,在大多数情况下,通过使用"where“子句,您不必创建或编写SQL查询。

如果你的表单只是简单地说出名字和一个可选的城市呢?

代码语言:javascript
复制
dim strWhere   as string

if isnull(me.LastName) = False then
   strWhere = "LastName = '" & me.LastName & "'"
End if

If isnull(me.City) = False then
    if strWhere <> "" then strWhere = strWhere & " AND "
    strWhere = strWhere & "City = '" & me.City & "'"
end if

' as many more "optional" text boxes on the search form can follow
' if you leave the box blank, then the critera is not added.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59202515

复制
相关文章

相似问题

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