Foxtable(狐表)用户栏目专家坐堂 → 查询按钮出错


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

主题:查询按钮出错

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
查询按钮出错  发帖心情 Post By:2012/7/23 11:05:00 [只看该作者]

我在一个窗口上设了三个控件,ComboBox2,设了代码项:客户名称,地址,电话,等TextBox1,和一个“查询”按钮 在查询按钮上设置了如下代码:

Dim Filter2 As String

Dim tx As String= Forms("客户查询").Controls("ComboBox2")
With e.Form.Controls("TextBox1")
If .value IsNot Nothing Then
      Filter2="tx  Like '*" & .Value & "*'"
    End If
End With
If Filter2> "" Then
    Tables("客户查询_Table1").Filter = Filter2
End If

 

想达到目的,选择客户名称时,在文本框中输入名称支持模糊查询,选地址时,在文本框中输入文本时可以查地址,但实际执行时出错,如图,


图片点击可在新窗口打开查看此主题相关图片如下:客户查询出错.jpg
图片点击可在新窗口打开查看

请问是什么原因?感觉是定义变量出错了,但试了几下都不行,请指点一下,谢谢!


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/23 11:23:00 [只看该作者]

你错得一塌糊涂,想帮你都无从下手,蒙一下:

 

Dim tx As String = Forms("客户查询").Controls("ComboBox2").Value
If tx > "" Then
    Tables("客户查询_Table1").Filter = "某某列  Like '*" & tx & "*'"
End If

 

建议你看看:

 

http://www.foxtable.com/help/topics/1284.htm

http://www.foxtable.com/help/topics/1058.htm

http://www.foxtable.com/help/topics/1534.htm

 


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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2012/7/24 10:39:00 [只看该作者]

      谢谢!狐爸:你可能没明白我的意思,我是要在ComboBox2 下拉出客户名称时:在TextBox1 输入字符筛选出符合条件的记录,当下拉列表项是 地址时,在TextBox1 输入字符筛选出符合条件的记录,而我的代码中的tx 实际就是控件ComboBox2的列表项值,同时到了like语句中用tx代表列,我也知道不对,便就是找不出原因。我现在改了代码:

Dim Filter2 As String
Dim colname As String=Forms("客户查询").Controls("ComboBox2").text
Dim txt As String = e.Form.Controls("TextBox1").Text
txt = "'*" & txt & "*'"
With e.Form.Controls("TextBox1")
 If .value IsNot Nothing Then
      Filter2="客户名称 Like " & txt & "  Or 地址 Like " & txt & "  Or 

主联系人 Like " & txt & "  Or 办公电话 Like " & txt & " Or 手机 Like "

& txt
 End If
End With
  If  Filter2> "" Then
     Tables("客户查询_Table1").Filter = Filter2
  Else
     Tables("客户查询_Table1").Filter = ""
End If

 

 

虽然能查,但实际还是没达到我想要的那种效果。请指点一下。


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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2012/7/24 10:41:00 [只看该作者]

以上方法能查,但并没有缩小查的范围,当我选择客户名称时,在文本框中输入 XXx客户时能查到,当我选择“地址“时,在文本框中输入XXx客户也可以查到,这样就没达到效果了。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/24 11:53:00 [只看该作者]

Dim colname As String= e.Form.Controls("ComboBox2").text
Dim txt As String = e.Form.Controls("TextBox1").Text
If txt  > "" Then
    Tables("客户查询_Table1").Filter = Colname & " Like '*" * txt & "*'"
End If

 


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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2012/7/24 13:45:00 [只看该作者]

谢谢!狐爸:还是不行,我把图截上来,你看一下,我觉得应该是我的表达你没清楚。你看图应该明白我想达到的功能
图片点击可在新窗口打开查看此主题相关图片如下:客户查询出错2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/7/24 14:08:00 [只看该作者]

Dim Filter2 ,colname ,txt As String
colname =Forms("客户查询").Controls("ComboBox2").Value
txt  = e.Form.Controls("TextBox1").Text
txt = "'*" & txt & "*'"

If colname  Is Nothing Then
    Filter2="客户名称 Like " & txt & "  Or 地址 Like " & txt & "  Or
    主联系人 Like " & txt & "  Or 办公电话 Like " & txt & " Or 手机 Like "
    & txt
Else
    Filter2=colname  " Like " & txt
End If

Tables("客户查询_Table1").Filter = Filter2

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2012/7/24 20:05:00 [只看该作者]

谢谢!还是不对,我再说一下我的目的,当在控件ComboBox2中选择了“客户名称”时,在TextBox1 中输入 如 上海 就可以过滤出 上海XXX的公司,当在控件ComboBox2中选择了“地址”时,在TextBox1 中输入 如 松江 就可以过滤出 松江XXX的地址,我自己试了一下另的思路,还是不行,贴上来看一下。

Dim Filter2 As String
Dim colname As String=Forms("客户查询").Controls("ComboBox2").value
Dim txt As String = e.Form.Controls("TextBox1").text
txt = "'*" & txt & "*'"
With e.Form.Controls("TextBox1")
 
Select Case colname
  Case "客户名称"
         Tables("客户查询_Table1").Filter ="客户名称" Like  txt
  Case "地址"
         Tables("客户查询_Table1").Filter ="地址" Like  txt
  Case "主联系人"
         Tables("客户查询_Table1").Filter ="主联系人" Like  txt
  Case Else
        Tables("客户查询_Table1").Filter = ""
  End  Select

End With

 

请问有谁知道方法?请说明一下。


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/7/25 8:02:00 [只看该作者]

Dim Filter ,colname ,txt As String    '定义变量
colname =e.Form.Controls("ComboBox1").Value   '定义组合框的值
txt  = e.Form.Controls("TextBox1").Value    '定义文本框的值
If colname  Is Nothing Then    '如果组合框的值为空
    Return   '返回
End If
For Each dc As Col In Tables("表A").Cols '遍历表的所有列
    If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  '如果是时间列,逻辑列,数值列
        Continue For    '排除
    End If
    If dc.Name = colname Then   '如果列名和组合框的值相符
        If Filter > "" Then       
            Filter  = Filter & " Or "
        End If
        Filter = Filter  & "[" & dc.Name & "] Like '*" & txt & "*'"    '定义筛选字符串 
    End If  '根据控件值迷糊筛选
Next
Tables("表A").Filter = Filter  '将数据筛选出来

自己改改!我测试好上来的.

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2012/7/25 15:26:00 [只看该作者]

   感谢天感谢地!终于实现这个功能了,感谢所有支持这本贴的人员,我也在这个过程中学习了不少,感觉自己还是看帮助文件基本功扎得不好,谢谢!


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