Добавление флажка к каждой записи в непрерывной форме в Access 2007

Я новичок в VBA и Access. Мне нужно создать форму кредита инвентаря, которая позволяет пользователям просматривать и обновлять детали кредита пользователя. Я создал непрерывную форму, которая показывает результаты записей запроса (My RecordSource формы - этот запрос).

В настоящее время у меня есть таблица с именем «Сведения о кредите» с логическим столбцом с именем «Статус возврата». Я использовал этот столбец, чтобы привязать к нему флажок и поместил флажок вместе с записями. Я хотел создать такое, чтобы пользователи могли установить флажок для определенных записей, и после нажатия кнопки «обновить статус возврата» есть коды vba, которые используют запрос, чтобы снова изменить «статус возврата» на «Истина».

Однако флажок не позволяет мне выбрать (я думаю, это потому, что флажок отображает только значение «Статус возврата»), и я не слишком уверен, как это сделать.

Я знаю, что это распространенный вопрос, но я пытался искать в Интернете и не нашел ничего, что могло бы решить мою проблему.

Извините, если я не ясно!


person user1140240    schedule 11.05.2012    source источник
comment
Опубликуйте источник записи для формы и источник управления для флажка.   -  person Fionnuala    schedule 11.05.2012
comment
Источником записи является запрос: SELECT * from items, (SELECT [Pdt ID] FROM [Loan Detail] WHERE [Loan Detail].[EmpID] = Forms![Update Form]![IDText]) AS pdtList WHERE pdtList.[ Pdt ID] = элементы.ID. В таблице элементов есть столбец «Статус возврата», и я сослался на него в источнике управления флажка.   -  person user1140240    schedule 14.05.2012


Ответы (1)


Этот запрос не выглядит обновляемым. Чтобы проверить, попробуйте изменить текстовое поле и посмотрите на строку состояния в нижней части окна MS Access. Он изменится с чего-то вроде «Просмотр формы» на «Этот набор записей не подлежит обновлению». Простой переход от неявного к явному соединению, вероятно, поможет.

Явное присоединение

 SELECT * 
 FROM items
 INNER JOIN (
    SELECT [Pdt ID] 
    FROM [Loan Detail] 
    WHERE [Loan Detail].[EmpID] = Forms![Update Form]![IDText]) AS pdtList 
 ON pdtList.[Pdt ID] = items.ID

Кстати * почти всегда плохая идея, вы должны перечислить поля (столбцы), которые вам нужны.

person Fionnuala    schedule 14.05.2012
comment
Спасибо! Теперь это работает! Хотя бы уточнить. Когда вы говорите неявное явному, вы имеете в виду использование INNER JOIN и OUTER JOIN вместо простого использования предложения WHERE для обновления таблиц (если в запросе используются 2 таблицы)? Извините за мое ограниченное владение операторами sql. - person user1140240; 15.05.2012
comment
Да. Язык может быть проблемой, вот ссылка en.wikipedia.org/wiki/Join_( SQL) - person Fionnuala; 15.05.2012