2014-02-11 72 views
0

我有一个表“Members”和一个表“Books”。对一个成员可以属于许多书籍,但一本书只能属于一个成员,所以我创建了多对一的关系。我创建了一个中间表“Owners”。ms access 2007查找列选择仍然可用的记录

我会以“f_Members”的形式放置子表单“f_Books”,并且在此我希望为字段提供一个包含所有书籍列表的查找列。现在,对于第一个成员,我会选择让我们说book1和book2,然后对于查找列中的子表单中的第二个成员列出所有书籍,但book1和book2变灰并且无法再选择它们。

访问2007年可能吗?先谢谢你。

回答

0

首先,作为多对一关系,您不需要中间表,而是在Books表中添加一个外键,引用成员的主键。

这可能会为你做到这一点更多的代码,但我会考虑以下几点:

在f_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]以识别书籍的所有者。

所有这一切,因为你选择消除额外的表。如果你的逻辑不一样,你只需要使用更复杂的条件来获得相同的结果。

希望我帮了忙。

相关问题