ACCESS子窗体筛选(模糊查询)

ACCESS子窗体筛选(模糊查询)


做空白窗体,根据需要筛选的字段设置控件和子窗体,如图:

image.png


上图是水浒座次表筛选窗体,设置了两个筛选字段,分别是“座次”和“姓名”。


设计思路是利用vba设置子窗体的数据源属性(recordsource),根据“座次”和“姓名”筛选出符合这两个条件的数据显示,其中“姓名”字段要模糊查询。


窗体中添加按钮,按钮的click事件上写如下代码:


Private Sub btnCX_Click()


Dim str As String

str = ""



If Not IsNull(Me.座次) And IsNull(Me.姓名) Then


    str = "where [108将].[座次]=" & Me.座次

    

ElseIf Not IsNull(Me.姓名) And IsNull(Me.座次) Then


    str = "where [108将].[姓名] like '*" & Me.姓名 & "*'"

    

ElseIf IsNull(Me.座次) And IsNull(Me.姓名) Then

    str = ""

    

Else

    str = "where [108将].[座次]=" & Me.座次 & "or [108将].[姓名] like '*" & Me.姓名 & "*' "

End If


    Me.Ctl108将_子窗体.Form.RecordSource = "select * from [108将] " & str

    Me.Ctl108将_子窗体.Form.Requery

End Sub


设计思想如下:

1、“座次”有内容,“姓名”为空时,代码

 str = "where [108将].[座次]=" & Me.座次

因“座次”为数字型,用&连接即可。

2、“姓名”有内容,“座次”为空时,代码

str = "where [108将].[姓名] like '*" & Me.姓名 & "*'"

此处因“姓名”为文本型,所以需要使用变量引用所使用的 ‘“& 文本字段变量 & ”’ ,就是 单引号,双引号,&,文本型变量,&,双引号,单引号。

为了使用通配符实现模糊查询,在单引号和双引号之间加入*,**有一点要注意,单引号、*、双引号之间不能够有空格。**


猜你喜欢

转载自blog.51cto.com/14212895/2666917