访问2013记录源怪癖

访问2013记录源怪癖

问题描述:

我正在做一些Access 2013数据库的开发工作。最初,它的设计是为了在设计时设置记录源,并添加一个过滤器来限制Open上的记录。出于几个原因,我将其更改为表单打开时将代码投入到代码的位置 - Me.Form.RecordSource = SQLstr访问2013记录源怪癖

但是,当我这样做时,窗体应该显示5条记录,它只显示1,这是一个新的记录。

当我查看设计屏幕中的查询时,查询返回正确的记录集。

奇怪的是,当窗体打开时,在窗体的底部,过滤按钮是黄色的。当我点击时,整个集合显示。当我再次点击它时,该设置不会改变,但会继续显示相同(正确)的设置。

我没有看到过滤器中的任何代码(有,但我已经删除它)。如果我在代码中清除过滤器,那么过滤器按钮将被禁用,我只能看到一条记录。

有没有人看到我在这里失踪的东西?

谢谢 - 艾伦

+0

刚刚测试 - 如果我设置一个过滤器:Me.Form.Filter =“1 = 1”,那么它工作正常。我开始猜测我没有正确清理过滤器? – alanTuring 2015-01-26 19:40:13

OK,它看起来像我在引用窗体走得太远:

Me.form.RecordSource = SQLstr

使代码在正确的位置(或似乎),但没有正确执行。

如果我使用: Me.RecordSource = SQLstr

然后它工作正常 - 不显示过滤器图标的形式,并显示正确的结果集

不知道如何引用形式将导致一个问题,为什么(如果它导致问题)它不会失败。但这就是我得到的

+0

这很奇怪。 me.RecordSource和me.Form.RecordSource都应该工作得很好。 – 2015-01-27 05:22:13