Foxtable(狐表)用户栏目专家坐堂 → 关于多字段查询


  共有2165人关注过本帖树形打印复制链接

主题:关于多字段查询

帅哥哟,离线,有人找我吗?
peibaomin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
关于多字段查询  发帖心情 Post By:2017/8/8 13:26:00 [只看该作者]

当多字段所储存的数据都一样时(如“电话一”、"电话二"、“电话三”、"固定电话"字段)查询查询时,怎样实现在窗体中有一个文本框输入查询条件,来同时对四个字段或更多的字段进行精确查询和模糊查询?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/8 14:21:00 [只看该作者]

参考代码

 

"电话1 = '123' or 电话2 = '123' or 电话3 = '123'"

 

"电话1 like '%123%' or 电话2 like '%123%' or 电话3 like '%123%'"


 回到顶部
帅哥哟,离线,有人找我吗?
peibaomin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
  发帖心情 Post By:2017/8/8 14:50:00 [只看该作者]

Dim tbx As WinForm.TextBox=e.Form.controls("anshoujihaoma")
Dim mh As WinForm.CheckBox=e.Form.Controls("shoujimohuchazhao")
Dim str As String=tbx.value
If str =  Nothing Then
    MessageBox.Show("手机号不为空!", "提示")
    tbx.Select
    Return
End If
Dim filter As String = ""

If mh.Checked Then
    filter="客户主手机号 like '% str % ' Or 第二手机号 like '% str %' Or  第三手机号 Like '% str %'"  '模糊查找      
Else
    filter="客户主手机号 = 'str' Or 第二手机号= 'str ' Or 第三手机号 = 'str '" '精确查找
 End If
Tables("客户资料").filter = filter

 

 

运行时如果是精确查找明明有数据单击查找后结果是无数据;如果模糊查找将弹出一个错误对话框:

 


图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/8 14:53:00 [只看该作者]

If mh.Checked Then
    filter="客户主手机号 like '%" & str & "% ' Or 第二手机号 like '%" & str & "%' Or  第三手机号 Like '%" & str & "%'"  '模糊查找      
Else
    filter="客户主手机号 = '" & str & "' Or 第二手机号= '" & str & "' Or 第三手机号 = '" & str & "'" '精确查找
 End If

 回到顶部
帅哥哟,离线,有人找我吗?
peibaomin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
  发帖心情 Post By:2017/8/8 15:02:00 [只看该作者]

模糊查找还是错误

 


图片点击可在新窗口打开查看此主题相关图片如下:1234.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/8 15:03:00 [只看该作者]

If mh.Checked Then
    filter="客户主手机号 like '%" & str & "%' Or 第二手机号 like '%" & str & "%' Or  第三手机号 Like '%" & str & "%'"  '模糊查找      
Else
    filter="客户主手机号 = '" & str & "' Or 第二手机号= '" & str & "' Or 第三手机号 = '" & str & "'" '精确查找
 End If

 回到顶部
帅哥哟,离线,有人找我吗?
peibaomin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
  发帖心情 Post By:2017/8/9 9:00:00 [只看该作者]

 

[此贴子已经被作者于2017/8/9 10:38:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
peibaomin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:465 积分:3216 威望:0 精华:0 注册:2017/4/18 1:15:00
  发帖心情 Post By:2017/8/9 10:38:00 [只看该作者]

Dim Filter As String
Dim shmcmhcz As WinForm.CheckBox = e.Form.Controls("shanghumohuchazhaoCheckBox")
With e.Form.Controls("shanghumingchengTextBox")
    If .Value IsNot Nothing Then
        If shmcmhcz.Checked Then
            Filter = "商户名称 like '%" & .Value  & "%'"
        Else
            Filter = "商户名称= '" & .Value & "'"
        End If
    End If
End With

Dim frxmmhcz As WinForm.CheckBox = e.Form.Controls("farenmohuchazhaoCheckBox")
With e.Form.Controls("farenxingmingTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If frxmmhcz.Checked Then
            Filter = "法人姓名 like '%" & .Value  & "%'"
        Else
            Filter = "法人姓名= '" & .Value & "'"
        End If
    End If
End With

Dim jjtmmhcz As WinForm.CheckBox = e.Form.Controls("jijumohuchazhaoCheckBox")
With e.Form.Controls("jijutiaomaTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If jjtmmhcz.Checked Then
            Filter = "机具条码 like '%" & .Value  & "%'"
        Else
            Filter = "机具条码= '" & .Value & "'"
        End If
    End If
End With
Dim llkmhcz As WinForm.CheckBox = e.Form.Controls("liuliangkamohuchazhaoCheckBox")
With e.Form.Controls("liuliangkahaoTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If llkmhcz.Checked Then
            Filter = "流量卡号 like '%" & .Value  & "%'"
        Else
            Filter = "流量卡号= '" & .Value & "'"
        End If
    End If
End With
With e.Form.Controls("tongdaomingchengComboBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = "通道名称= '" & .Value & "'"
    End If
End With
Dim shbhmhcz As WinForm.CheckBox = e.Form.Controls("shanghubhmohuchazhaoCheckBox")
With e.Form.Controls("shanghubianhaoTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If shbhmhcz.Checked Then
            Filter = "商户编号 like '%" & .Value  & "%'"
        Else
            Filter = "商户编号= '" & .Value & "'"
        End If
    End If
End With
Dim wdbhmhcz As WinForm.CheckBox = e.Form.Controls("wangdianbhmohuchazhaoCheckBox")
With e.Form.Controls("wangdianbianhaoTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If wdbhmhcz.Checked Then
            Filter = "网点编号 like '%" & .Value  & "%'"
        Else
            Filter = "网点编号= '" & .Value & "'"
        End If
    End If
End With
Dim wdmcmhcz As WinForm.CheckBox = e.Form.Controls("wangdianmcmohuchazhaoCheckBox")
With e.Form.Controls("wangdianmingchengTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If wdmcmhcz.Checked Then
            Filter = "网点名称 like '%" & .Value  & "%'"
        Else
            Filter = "网点名称= '" & .Value & "'"
        End If
    End If
End With
Dim wddzmhcz As WinForm.CheckBox = e.Form.Controls("wangdiandzmohuchazhaoCheckBox")
With e.Form.Controls("wangdiandizhiTextBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If wddzmhcz.Checked Then
            Filter = "网点地址 like '%" & .Value  & "%'"
        Else
            Filter = "网点地址= '" & .Value & "'"
        End If
    End If
End With
With e.Form.Controls("shanghuzhuangtaiComboBox")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = "商户状态= '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("商户资料表").Filter = Filter
End If
Forms("商户资料查询窗体").Close

 

老师这段代码那错了,怎么运行后查询的结果和实际不一样呀?

单项查可以,联合查就把所有的数据都查出来了


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/9 11:12:00 [只看该作者]

msgbox(filter) 看看,弹出什么?

 

截图,或者做例子说明,如何不正确。


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1995 积分:12672 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/9 11:19:00 [只看该作者]

如果查询条件是两项或以上模糊查询会把所有的数据全查出来了

 回到顶部
总数 18 1 2 下一页