【问题标题】:Change recordsource but keep filter更改记录源但保留过滤器
【发布时间】:2012-11-10 02:34:47
【问题描述】:

我有一个小问题:

我的表单有 2 个可能的基础查询(具有完全相同的字段和元数据)在用户需要时从一个更改为另一个。 问题是,在更改记录源访问权限后,之前的过滤器并没有被应用。

我更改了记录源 OnLoad 并且应该有一个根据宏的过滤器,打开表单的内容。过滤器不起作用。

有人可以给我一个提示吗?

【问题讨论】:

    标签: ms-access filter vba


    【解决方案1】:

    你提到了一个根据宏的过滤器,但你没有说宏是什么。假设你有:

    DoCmd.OpenForm "form1", , , "atext='def'"
    

    这会将表单的 Filter 属性设置为:

    atext='def'
    

    您可以在更改记录源之前保存过滤器属性并重新应用它。

    sFilter = Me.Filter
    Me.RecordSource = "select * from table1"
    Me.Filter = sFilter
    Me.FilterOn = True
    

    【讨论】:

      【解决方案2】:

      好的。让它发挥作用并不难。 您必须更改记录源 onLoad,然后通过带有“where”条件的宏打开表单: 1.在onLoad方法中加入条件过滤器是否开启。 2. 如果为 True 则将过滤器保存为字符串并将 True 保存为布尔值 3.改变记录源 4.控制你的bool,是否为真 5.如果为真,则将过滤器重新设置 6. 开启过滤器

      Private Sub ChengeRecS()
      Dim fltr As String
      Dim fB As Boolean
      If Me.FilterOn = True Then
          fB = True
          fltr = Me.Filter
      End If
      Me.RecordSource = "newRecordSource"
      If fB = True Then
          Me.Filter = fltr
          Me.FilterOn = True
      End If
      End Sub
      

      【讨论】:

      • 是的,就像我说的那样,除了不必要的额外位。
      猜你喜欢
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多