2014-02-11 1 views
0

У меня есть таблица «Участники» и таблица «Книги». Один член может принадлежать многим книгам, но одна книга может принадлежать только одному члену, поэтому я создаю много-одно отношение. Я создал промежуточную таблицу «Владельцы».ms доступ 2007 столбец поиска выберите только доступные записи

Я поставлю в форме «f_Members» подформу «f_Books», и в этом я хочу иметь для поля столбец поиска со списком всех книг. Теперь, для первого члена, я выберу, скажем, book1 и book2, а затем для второго члена я хочу, чтобы в подформе в столбце поиска были перечислены все книги, но с book1 и book2 greyed out и их невозможно было выбрать.

Возможно ли это в доступе 2007 года? Заранее спасибо.

ответ

0

Прежде всего, как отношения «много-к-одному», вам не нужна промежуточная таблица, скорее добавьте внешний ключ в таблицу «Книги», ссылаясь на первичный ключ членов.

Это может быть немного больше коды для Вас, чтобы сделать это, но я хотел бы рассмотреть следующие вопросы:

В f_Books назначьте записи быть [Книга] таблицей. Если вы хотите показать уже отобранные книги, выделенные серым цветом, это будет легко сделать с Условным форматированием (see here) с выражением типа Nz([books_fk_member_id]) <> ''.

Вы можете добавить второе условие, чтобы покрасить книги, уже выбранные этим членом, с выражением типа Nz([books_fk_member_id]) = [Forms]![f_Members]![control_showing_member_id].

Чтобы сделать их непригодными, я думаю, что кнопка [Enabled] может сделать трюк для вас, или вы можете написать код в vba, ссылаясь на [Forms]![f_Members]![Form]![f_Books]![books_fk_member_id], чтобы идентифицировать владельца книги.

Все это, учитывая тот факт, что вы решили исключить эту дополнительную таблицу. Если вы не придерживаетесь логики, то вам нужно будет использовать более сложные условия для получения того же результата.

Надеюсь, я помог.

Смежные вопросы