使用选项组切换按钮过滤表单中的数据

时间:2014-12-12 15:44:03

标签: filter ms-access-2010 togglebutton

我有一个Access 2010数据库,其中包含一个表单,其中列出了教师教授的所有学生的列表。其中一个领域是“Classperiod”;每位老师教5门课。我在一个选项组(第103帧)中有一组切换按钮,我想用它来按“Classperiod”过滤记录列表。因此,例如,单击其中一个切换按钮只会显示特定班级的学生。以下是选项组事件“更新后”中选项组的代码:

Private Sub Frame103_AfterUpdate()
Select Case Frame103
    Case 1
    Me.Filter = "Schedules.Classperiod = 1"
    Me.FilterOn = True

    Case 2
    Me.Filter = "Schedules.Classperiod = 2"
    Me.FilterOn = True

    Case 3
    Me.Filter = "Schedules.Classperiod = 3"
    Me.FilterOn = True

    Case 5
    Me.Filter = "Schedules.Classperiod = 5"
    Me.FilterOn = True

    Case 6
    Me.Filter = "Schedules.Classperiod = 6"
    Me.FilterOn = True

    Case 7
    Me.Filter = "Schedules.Classperiod = 7"
    Me.FilterOn = True

    Case 8
    Me.Filter = "Schedules.Classperiod = 8"
    Me.FilterOn = True

    Case Else
    Me.FilterOn = False

   End Select
End Sub

计划表是Classperiod是。的字段。

现在代码没有做任何事情。欢迎任何建议!

2 个答案:

答案 0 :(得分:0)

如果您删除“计划”,您的过滤器仍然有效。只需使用fieldname:

例如

 Case 7
 Me.Filter = "Classperiod = 7"
 Me.FilterOn = True

但最好的方法是根据符合条件的数据限制记录来源: 例如:

Case ....
Me.RecordSource = "Select * FROM Schedules WHERE Classperiod =..."
Me.Requiry
....

答案 1 :(得分:0)

如果您想根据五个不同的课程时段进行过滤,请将您的选项组设为五个切换按钮,每个标题对应一个不同的课程时段,例如切换按钮1有标题" 1"等等。这是代码:

Private Sub Frame103_Click()
    Dim Caption As String
    Caption = Frame103.Controls.Item(Frame103.Value - 1).Caption
    Me.SubformName.Form.Filter = "[Classperiod] = """ & Caption & """"
    Me.SubformName.Form.FilterOn = True
End Sub