Office中国论坛/Access中国论坛

标题: 查询按钮的编码编写 [打印本页]

作者: 影子5555    时间: 2014-11-20 11:14
标题: 查询按钮的编码编写
新人学习access,对vb没有基础,学习中,麻烦大神帮修改下按钮代码。
需求,company窗体里在文本框里输入两个表中的任意值(或部分)按查询后可以显示有此段记录。这个利用系统的ctrl+f功能也能实现
谢谢了

作者: todaynew    时间: 2014-11-20 11:39
本帖最后由 todaynew 于 2014-11-20 11:55 编辑

Private Sub Command28_Click()
    Dim wh As String
    Dim ctrl As Control
    Dim str_fields As String
    str_fields = ""
    For Each ctrl In Me.Form.Controls
        If ctrl.ControlType = acTextBox Then
            If ctrl.Name <> "Text31" Then               
                str_fields = str_fields & "[" & ctrl.Name & "] & "   '拼接字段字符串
            End If
        End If
    Next
    wh = Left(str_fields, Len(str_fields) - 3) & " Like '*" & Me.Text31.Value & "*'"
    Me.Form.Filter = wh
    Me.Form.FilterOn = True
End Sub
[attach]55081[/attach]


[attach]55082[/attach]




作者: roych    时间: 2014-11-20 12:01
todaynew 发表于 2014-11-20 11:39
Private Sub Command28_Click()
    Dim wh As String
    Dim ctrl As Control

这么复杂,新手能懂吗?
对于新手,我还是比较推荐刘小军常用窗体查询。
作者: 影子5555    时间: 2014-11-20 15:33
确实看不懂,谁能给翻译一下?

另问:能查询action表里的内容吗?

烦请大神指导
作者: todaynew    时间: 2014-11-21 10:28
影子5555 发表于 2014-11-20 15:33
确实看不懂,谁能给翻译一下?

另问:能查询action表里的内容吗?

Private Sub Command28_Click()
    Dim wh As String '定义一个字符串变量,用于存放筛选字符串
    Dim ctrl As Control '定义一个控件类型的变量,一般在循环中使用它
    Dim str_fields As String '定义一个字符串变量,用于存放拼接起来的字段
    str_fields = ""
    For Each ctrl In Me.Form.Controls   '遍历窗体上的所有控件,其目的是为了得到字段名称。当然也可以采用其他方法得到所需字段的名称。
        If ctrl.ControlType = acTextBox Then '只对文本框感兴趣,因为文本框才有字段名称
            If ctrl.Name <> "Text31" Then    '排除 Text31这个文本框控件,因为它与字段名称没球关系           
                str_fields = str_fields & "[" & ctrl.Name & "] & "   '循环拼接字段字符串,将形成诸如:[字段1] & [字段2]...的字符串
            End If
        End If
    Next
    wh = Left(str_fields, Len(str_fields) - 3) & " Like '*" & Me.Text31.Value & "*'" 'Left(str_fields, Len(str_fields) - 3)的目的是去掉循环语句加上的最后一个&字符。最后wh形如:[字段1] & [字段2]... & [字符串N] Like '*娜*',其含义是所有字段中只要包含一个娜,就把它们筛选出来
    Me.Form.Filter = wh '将wh作为主窗体的筛选字符串
    Me.Form.FilterOn = True '打开主窗体的筛选
End Sub

作者: todaynew    时间: 2014-11-21 11:14
影子5555 发表于 2014-11-20 15:33
确实看不懂,谁能给翻译一下?

另问:能查询action表里的内容吗?

子窗体筛选是类似处理:[attach]55086[/attach]
[attach]55087[/attach]


作者: 影子5555    时间: 2014-11-21 16:37
十分感谢todaynew大师,干脆我拜你为师吧
作者: todaynew    时间: 2014-11-21 17:07
影子5555 发表于 2014-11-21 16:37
十分感谢todaynew大师,干脆我拜你为师吧

那需要三扣九拜才行
作者: 影子5555    时间: 2014-11-25 10:50
师傅在上受徒儿一拜一拜一拜一扣一扣一扣一扣一扣一扣一扣一扣一扣
作者: todaynew    时间: 2014-11-25 11:39
影子5555 发表于 2014-11-25 10:50
师傅在上受徒儿一拜一拜一拜一扣一扣一扣一扣一扣一扣一扣一扣一扣

嗯,还行,可以加我的QQ:3070146830
作者: djl52102    时间: 2015-7-15 10:34
roych 发表于 2014-11-20 12:01
这么复杂,新手能懂吗?
对于新手,我还是比较推荐刘小军常用窗体查询。

刘小军的我看了,第一种新手挺适合,后面的也是一堆代码。
作者: roych    时间: 2015-7-15 10:40
印象中我没用过第二种跟第三种。只要表达式不太复杂,第一种就够了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3