MS Access:禁用导航按钮

时间:2014-12-25 22:05:56

标签: forms vba database-design ms-access-2010 ms-access-2013

我必须为一个工作项目创建一个数据库,每个人都决定使用访问权限,因为它已经安装在每台机器上。现在,我是新手来访问新数据库,所以这有点困难。我仍然可以到达那里并设法制作所有表格,建立它们之间的关系并创建基本上所有形式,但似乎已经陷入了最后的障碍。

我们有很多不同的网站,每个网站都有很多不同的房间。我正在努力的是房间的形式。这是从站点表单加载的。因此,站点A将显示一个包含站点A中所有房间的表单。表单可以以只读,修改或新记录模式加载。

问题在于底部的导航按钮。如果使用导航按钮单击新记录,则访问会创建新记录,但会丢失对上一站点的FK引用。我已经放了一个''通过使表格上的FK成为一个组合框来解决这个问题,所以可以纠正,但有40个网站,所以它不是很优雅,也不是任何人都期望的行为。

为了尝试绕过它,我决定尝试构建我自己的访问导航控件版本,并最终(在stackoverflow的前一个问题上提供了很多帮助)我成功了,在表单的底部你可以去到第一条记录,上一条记录,下一条记录,最后一条记录,添加一条新记录(保留FK参考),甚至搜索记录集中已加载的记录。

然而,当我关闭导航控件时,一切都变得毫无用处。一旦我将其设置为off,无论出于何种原因,访问仅加载记录集中的第一条记录。因此,如果站点A有10个房间,你只看到房间1,我制作的控件(完全与导航控件一起工作)停止工作,此外我设置的文本框模仿10' 1记录号码指示符变为1' 1明确表示没有其他记录可以访问。

这实在令人沮丧,因为这意味着我只能通过启用Access来使用我的自定义导航控件。我不希望打开访问权限,因为每次创建新记录时都会产生问题。

所以,经过长时间的介绍,我的问题是:为什么访问只加载导航控件关闭的第一条记录,有没有办法阻止这种情况发生,如果没有,我可以只禁用新的记录位导航控制?

这里的任何帮助将不胜感激。我确信这是一个非常简单的事情,但谷歌搜索没有发现任何东西,实际上从我所读到的,我甚至不确定禁用导航控件通常这样做会使整个事情变得更加令人沮丧,因为这是字面上是我不想要的唯一形式。

谢谢,

迪安

1 个答案:

答案 0 :(得分:0)

如果您添加自己的导航控件的唯一理由是您的房间表格中没有填写FK,我会保留访问导航控件并在房间的Form_BeforeInsert()触发器中设置FK形式有这样的东西:

Private Sub Form_BeforeInsert(Cancel As Integer)
    Me!FK = forms!Sites!PK
End Sub

如果您想保留自己的导航控件,看看您的代码能够回答您的问题会很有帮助。