1

Я хочу знать, возможно ли создать форму с доступом на чтение / запись к очень специфическому (отфильтрованному) набору записей таблицы.

Для этого я: 1. Создайте запрос, который фильтрует записи таблицы. 2. Создайте форму с этим запросом в качестве источника записи.

Тем не менее, запросы не могут быть обновлены, и я не могу обновить содержимое исходной таблицы из формы. Кто-нибудь знает, как это обойти?

Вот связанная статья: http://www.fmsinc.com/Microsoftaccess/query/non-updateable/index.html

Благодарю.

2 ответа2

1

Когда я был сильно вовлечен в разработку Access, я несколько раз сталкивался с этой проблемой. Большинство простых запросов являются обновляемыми, а другие нет. Вы можете сказать, пытаясь редактировать значения в наборе результатов. Я бы попробовал ваш запрос, прежде чем предположить, что вы не можете это сделать.

Есть одна техника, которую я использовал, которая достаточно хорошо справляется с этой проблемой, если все остальное терпит неудачу, но это немного затрудняет настройку и поддержку. Что вы делаете, это превращаете ваш запрос select в запрос на добавление и сохраняете идентификаторы записей только во временную таблицу. Вы можете сделать это как часть события открытия формы (из памяти - может потребоваться использовать me.requery) или, что еще лучше, как часть кода из меню / кнопки, которая привела вас к форме. Затем вы используете НАМНОГО более простой запрос в качестве источника записей форм, просто временную таблицу, присоединенную к исходной таблице через идентификатор.

Это должно работать, но теперь у вас также есть некоторые другие задачи, такие как очистка временной таблицы каждый раз перед / после ее использования, и она не очень удобна для нескольких пользователей. Если вам нужно, чтобы несколько пользователей использовали его, вам нужно добавить в таблицу своего рода USERID. Я надеюсь это имеет смысл!

1

В качестве альтернативы можно использовать таблицу в качестве источника, а затем установить значение фильтра, чтобы сделать его поднабором, который вы ищете.

Как упомянул @Saulysw, запрос select должен позволить вам обновить. Можете ли вы опубликовать SQL-запрос, который вы используете в качестве источника?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .