Office中国论坛/Access中国论坛

标题: 查询按钮代码设置 [打印本页]

作者: qp370982    时间: 2008-12-26 10:09
标题: 查询按钮代码设置
要求:
1、当“情况”组合框选项为“销售、库存、租借”时,就分别查询表中“情况”列为“销售、库存、租借”的内容
2、当“情况”组合框选项为“未销售”时,查询表中“情况”列为“库存”和“租借”的内容
作者: Henry D. Sy    时间: 2008-12-26 10:22
重复发帖了吧
作者: qp370982    时间: 2008-12-26 10:26
上次是表设计,这次是查询按钮代码设置
作者: Henry D. Sy    时间: 2008-12-26 10:37
Private Sub Combo1_AfterUpdate()
    Dim strRs As String
    Select Case Me.Combo1
    Case "未销售"
        strRs = "库存;租借"
    Case Else
        strRs = "销售;库存;租借"
    End Select
    Me.资料子窗体.Form.情况.RowSourceType = "Value List"
    Me.资料子窗体.Form.情况.RowSource = strRs
End Sub
作者: qp370982    时间: 2008-12-26 10:49
不行,点击按钮没任何反应
作者: Henry D. Sy    时间: 2008-12-26 10:52
怎么可能
作者: qp370982    时间: 2008-12-26 11:01
好像没有按钮点击的事件
作者: Henry D. Sy    时间: 2008-12-26 11:14
主窗体的组合框更新后事件
4楼不是帮你写得很清楚了。
作者: qp370982    时间: 2008-12-26 11:33
还是不行,老师您看看能不能通过点击按钮来实现,因为还有其他查询条件,都是选什么查什么,我都搞定了,就剩这一项了,最后想通过一个按钮进行查询
另外我说的意思是当“情况”组合框选“销售”时,只查表中“情况”列为销售的内容;当“情况”组合框选“租借”时,只查表中“情况”列为租借的内容;当“库存”组合框选“销售”时,只查表中“情况”列为库存的内容;只有当“情况”组合框选“未销售”时,是查表中“情况”列为库存和租借的情况

[ 本帖最后由 qp370982 于 2008-12-26 11:54 编辑 ]
作者: Henry D. Sy    时间: 2008-12-26 12:12

表达都没有表达清楚,你是查询或是组合框联动????
作者: qp370982    时间: 2008-12-26 12:31
查询,和普通的多条件查询没什么区别,就是当在“情况”组合框中选“未消除”时,是同时查询租借和库存的内容
作者: qp370982    时间: 2008-12-26 13:42
各位老师辛苦了,望各位老师多帮帮忙
作者: qp370982    时间: 2008-12-26 14:33
各位老师辛苦了,望各位老师多帮帮忙
作者: Henry D. Sy    时间: 2008-12-26 14:46
Private Sub Command5_Click()
    Dim strCriteria As String
    Dim strWhat As String
    If IsNull(Me.Combo1) Then
        MsgBox "enter the some data to combo1 first"
        Me.Combo1.SetFocus
        Exit Sub
    End If
    strWhat = Me.Combo1
    strCriteria = "情况='库存' or 情况='租借'"
    If strWhat = "销售" Or strWhat = "库存" Or strWhat = "租借" Then
        strCriteria = strCriteria & " Or " & "情况='销售'"
    End If
    Me.资料子窗体.Form.Filter = strCriteria
    Me.资料子窗体.Form.FilterOn = True
End Sub
作者: qp370982    时间: 2008-12-26 14:59
老师这样设置“情况”组合框就成了必填项,可不可以设置为非必填项。
这几天学了点vb,可以看懂点
作者: Henry D. Sy    时间: 2008-12-26 15:06
不填你查什么?
作者: qp370982    时间: 2008-12-26 15:14
我可以针对人员或者编号进行查询
作者: Henry D. Sy    时间: 2008-12-26 15:17
不知道你在说什么
作者: qp370982    时间: 2008-12-26 15:32
我只是想做一个多条件查询窗体,可以针对“情况”、“人员”、“日期”、“编号”任意设置查询条件,只是当在“情况”设置为里“未销售”时,查询包含“库存”和“租借”的内容。谢谢老师,您受累了
作者: qp370982    时间: 2008-12-26 16:04
老师你明白了吗。麻烦你了
作者: Henry D. Sy    时间: 2008-12-26 16:10
搜索刘小军。
作者: qp370982    时间: 2008-12-26 16:25
老师,我看过刘小军老师的查询窗体,上面没说怎样解决
作者: qp370982    时间: 2008-12-26 16:28
老师,只要把14楼的例子稍加改动,有时候查询时,不需要对“情况”组合框中的情况进行选择
作者: Henry D. Sy    时间: 2008-12-26 16:51
你至少要传一个能说明你的问题的例子,
发现,你心里想的,跟你的附件差很远。
作者: qp370982    时间: 2008-12-26 17:24
老师,你看看这个例子
1、可以同姓名、单位、日期、考勤情况设置查询情况(根据具体要求)
2、“单位”中的车间就是同时对一班、二班进行查询
3、“考勤情况”中的违反劳动纪律就是同时对迟到、早退、、旷工进行查询
例如:当“单位”为车间,“时间”为2007-01-03,“考勤情况”为违反劳动纪律时,点击“查询”按钮,就是查询2007年01月03日,一班和二班中,有关迟到、早退、旷工的情况
作者: qp370982    时间: 2008-12-26 17:53
老师你多帮忙
作者: qp370982    时间: 2008-12-26 19:01
老师你多帮忙
作者: ygzhx    时间: 2008-12-26 20:54
[:50] [:50] [:50]
作者: Henry D. Sy    时间: 2008-12-26 21:01
更新在楼下

[ 本帖最后由 Henry D. Sy 于 2008-12-27 10:38 编辑 ]
作者: Henry D. Sy    时间: 2008-12-27 10:38
违反劳动纪律时,这一点我原来没有看明白。
现在帮你修正

  1. Dim ctl As Control

  2. Private Sub Command16_Click()
  3.     Dim strCriteria As String
  4.     For Each ctl In Me.Controls
  5.         If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
  6.             If Not IsNull(ctl) Then
  7.                 Select Case ctl.Name
  8.                 Case "所在班组"
  9.                     If ctl <> "车间" Then
  10.                         strCriteria = strCriteria & ctl.Name & " like '" & ctl _
  11.                                     & "' And "
  12.                     End If
  13.                 Case "考勤情况"
  14.                     If ctl <> "违反劳动纪律" Then
  15.                         strCriteria = strCriteria & ctl.Name & " like '" & ctl _
  16.                                     & "' And "
  17.                     Else
  18.                         strCriteria = strCriteria & ctl.Name & _
  19.                                     " in ('迟到','早退','旷工') And "
  20.                     End If
  21.                 Case "日期"
  22.                     strCriteria = strCriteria & ctl.Name & "=#" & ctl & "# And "
  23.                 Case Else
  24.                     strCriteria = strCriteria & ctl.Name & " like '" & ctl & _
  25.                                   "' And "
  26.                 End Select
  27.             End If
  28.         End If
  29.     Next
  30.     If strCriteria <> "" Then
  31.         strCriteria = Left(strCriteria, Len(strCriteria) - 5)
  32.     End If
  33.     Me.考勤管理子窗体.Form.Filter = strCriteria
  34.     Me.考勤管理子窗体.Form.FilterOn = True
  35. End Sub

  36. Private Sub Command17_Click()
  37.     For Each ctl In Me.Controls
  38.         If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
  39.             ctl = Null
  40.         End If
  41.     Next
  42.     Me.考勤管理子窗体.Form.FilterOn = False
  43. End Sub
复制代码

作者: RRGG001    时间: 2008-12-30 15:56
不行,点击按钮没任何反应
作者: qp370982    时间: 2008-12-30 23:13
谢谢老师,
      我想在麻烦您一下,如在原窗体中增加一个日期范围查询,就是针对某一段时间内的考勤情况进行查询,同时增加对“备注”文本框里的内容进行模糊查询,其他条件不变。该如何编写代码?
谢谢老师,麻烦您了

[ 本帖最后由 qp370982 于 2008-12-30 23:20 编辑 ]
作者: qp370982    时间: 2008-12-31 00:40
鄙人在这里先谢谢各位老师的帮助,十分谢谢
作者: Henry D. Sy    时间: 2008-12-31 06:45
将原日期控件删掉

Private Sub Command16_Click()
    Dim strCriteria As String
    For Each ctl In Me.Controls
        If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
            If Not IsNull(ctl) Then
                Select Case ctl.Name
                Case "所在班组"
                    If ctl <> "车间" Then
                        strCriteria = strCriteria & ctl.Name & " like '" & ctl _
                                    & "' And "
                    End If
                Case "考勤情况"
                    If ctl <> "违反劳动纪律" Then
                        strCriteria = strCriteria & ctl.Name & " like '" & ctl _
                                    & "' And "
                    Else
                        strCriteria = strCriteria & ctl.Name & _
                                    " in ('迟到','早退','旷工') And "
                    End If
                Case "日期开始"
                    strCriteria = strCriteria & "日期>=#" & ctl & "# And "
                Case "日期结束"
                    strCriteria = strCriteria & "日期<=#" & ctl & "# And "
                Case Else
                    strCriteria = strCriteria & ctl.Name & " like '" & ctl & _
                                  "' And "
                End Select
            End If
        End If
    Next
    If strCriteria <> "" Then
        strCriteria = Left(strCriteria, Len(strCriteria) - 5)
    End If
    Me.考勤管理子窗体.Form.Filter = strCriteria
    Me.考勤管理子窗体.Form.FilterOn = True
End Sub
作者: qp370982    时间: 2008-12-31 09:16
老师,如何在上面查询的基础上增加对“备注”文本框里的内容进行模糊查询
作者: Henry D. Sy    时间: 2008-12-31 10:41
不用再做任何增加,你可以先试试查询备注看看呀。
作者: boy1    时间: 2009-1-9 16:09
标题: 求教代码意思。
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then 这句什么意思?有什么作用?
作者: Henry D. Sy    时间: 2009-1-9 20:25
原帖由 boy1 于 2009-1-9 16:09 发表
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then 这句什么意思?有什么作用?

如果控件的类型是文本框或组合框,那么
作者: 明镜    时间: 2009-1-9 22:48
受益匪浅
作者: 雨后的天空    时间: 2009-1-10 15:00
先看看
作者: 雨后的天空    时间: 2009-1-10 15:00
应该不错
作者: 雨后的天空    时间: 2009-1-10 15:06
晕总是没钱,上火看都看不了
作者: 雨后的天空    时间: 2009-1-10 15:12
真么看不了




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