我有一个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是。的字段。
现在代码没有做任何事情。欢迎任何建议!
答案 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