You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MS Access中使用按钮筛选子窗体

MS Access按钮点击筛选子窗体记录解决方案

方法一:直接设置子窗体的筛选属性

这是最简便的实现方式,通过修改子窗体的Filter和FilterOn属性快速完成筛选:

给对应位置的按钮(比如名为btn_D1的按钮)添加OnClick事件代码:

Private Sub btn_D1_Click()
    ' 引用子窗体的窗体对象
    Dim subForm As Form
    Set subForm = Me!CaixaLista!EstanteFG.Form
    
    ' 设置筛选条件:Local字段等于"D1"
    subForm.Filter = "[Local] = 'D1'"
    ' 启用筛选
    subForm.FilterOn = True
End Sub

如果需要点击切换筛选状态(第一次点击筛选D1记录,再次点击取消筛选),可以调整代码:

Private Sub btn_D1_Click()
    Dim subForm As Form
    Set subForm = Me!CaixaLista!EstanteFG.Form
    
    ' 判断当前是否已应用该筛选
    If subForm.FilterOn And subForm.Filter = "[Local] = 'D1'" Then
        ' 取消筛选
        subForm.FilterOn = False
    Else
        ' 应用D1的筛选
        subForm.Filter = "[Local] = 'D1'"
        subForm.FilterOn = True
    End If
End Sub

方法二:修改子窗体的数据源

如果需要更复杂的筛选逻辑,可以直接替换子窗体的RecordSource:

Private Sub btn_D1_Click()
    Dim subForm As Form
    Set subForm = Me!CaixaLista!EstanteFG.Form
    
    ' 假设子窗体原数据源是"SELECT * FROM 书籍表",添加筛选条件
    subForm.RecordSource = "SELECT * FROM 书籍表 WHERE [Local] = 'D1'"
    ' 刷新子窗体加载新数据
    subForm.Requery
End Sub

通用代码优化(减少重复编写)

如果有大量位置按钮,推荐写一个通用子过程,所有按钮调用同一逻辑:

  1. 在主窗体的模块中添加通用筛选过程:
Private Sub FilterSubFormByLocal(localValue As String)
    Dim subForm As Form
    Set subForm = Me!CaixaLista!EstanteFG.Form
    
    ' 切换筛选状态
    If subForm.FilterOn And subForm.Filter = "[Local] = '" & localValue & "'" Then
        subForm.FilterOn = False
    Else
        subForm.Filter = "[Local] = '" & localValue & "'"
        subForm.FilterOn = True
    End If
End Sub
  1. 每个按钮的OnClick事件只需调用该过程:
' D1按钮的代码
Private Sub btn_D1_Click()
    FilterSubFormByLocal "D1"
End Sub

' A1按钮的代码
Private Sub btn_A1_Click()
    FilterSubFormByLocal "A1"
End Sub

注意事项

  • 确保子窗体控件名称为EstanteFG,且位于CaixaLista容器内,引用路径Me!CaixaLista!EstanteFG.Form要准确。
  • 如果Local字段是数字类型,去掉条件中的单引号,比如[Local] = 1。
  • 若子窗体绑定的是查询而非表,修改RecordSource时要对应调整查询语句。

内容的提问来源于stack exchange,提问作者Ophy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:22:50