我有一张桌子“会员”和一张桌子“书籍”。一个成员可以属于许多书籍,但一本书只能属于一个成员,所以我创建了多对一的关系。我创建了一个中间表“Owners”。
我将以“f_Members”的形式放入一个子表单“f_Books”,在此我希望为一个字段提供一个包含所有书籍列表的查阅列。现在,对于第一个成员,我将选择让我们说book1和book2,然后在查阅列的子表单中我想要的第二个成员列出所有书籍,但book1和book2灰色,不再可以选择它们。
这可以在2007年访问吗?先感谢您。
答案 0 :(得分:0)
首先,作为多对一关系,您不需要中间表,而是在Books表中添加外键,引用成员的主键。
执行此操作可能需要更多代码,但我会考虑以下内容:
在f_Books中,将记录集指定为[Books]表。
如果您希望将已选择的图书显示为灰色,则可以使用条件格式(see here)轻松完成,其表达式为Nz([books_fk_member_id]) <> ''
。
您可以添加第二个条件,使用Nz([books_fk_member_id]) = [Forms]![f_Members]![control_showing_member_id]
这样的表达式为此成员已选择的书籍着色。
为了让他们不要可选择的,我认为[启用]检查按钮可能会为你做的伎俩,或者你可以写在VBA一些代码,指的[Forms]![f_Members]![Form]![f_Books]![books_fk_member_id]
,以确定图书的所有者。
所有这一切,鉴于您选择消除额外的表格。如果你没有逻辑是相同的,你只需要使用更复杂的条件来获得相同的结果。
希望我能帮到你。