2014-12-25 71 views
0

我必须创建一个关闭工作项目的数据库,并且每个人都决定使用访问,因为它已经安装在每台机器上。现在我是新来的,对于数据库来说是新手,所以这已经有点困难了。尽管如此,我仍然设法完成所有的表格,建立它们之间的关系并创建基本上所有的表格,但似乎在最后一个障碍中陷入困境。MS Access:禁用导航按钮

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

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

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

但是,当我关闭导航控件时,这一切都变得毫无用处。只要我将其设置为关闭,无论出于何种原因,访问只会加载记录集中的第一条记录。因此,如果网站A有10个房间,您只能看到房间1,并且我制作的控件(与导航控件完美配合)停止工作,此外,我设置的文本框模仿“1的10”记录号指示符更改为“1的1”清楚地表明其他记录都不可访问。

这实在令人沮丧,因为这意味着我只能通过保持Access的打开状态来使用我的自定义导航控件。我不希望打开访问权限,因为每次创建新记录时都会产生问题。因此,在长时间的介绍之后,我的问题是:为什么访问只加载导航控件关闭的第一条记录,是否有办法阻止这种情况发生,如果没有,我可以禁用新的记录位导航控件?

在这里的任何帮助将不胜感激。我相信这是一件非常简单的事情,但是使用谷歌搜索没有任何结果,实际上从我读过的内容来看,我甚至不确定禁用导航控件通常会导致整个事情更加令人沮丧,因为这实际上是只有形式我不希望他们。

感谢,

院长

回答

0

如果添加自己的导航控件唯一原因是,你不能有FK在你的房间制作填充,我会继续访问导航控件并设置FK在Form_BeforeInsert()你的房间触发的是这样的形式:

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

如果您想保留自己的导航控制,这将是有帮助的,就看你的代码才能够回答你的问题。