Просмотр недавно добавленных записей в таблице назначения - PullRequest
0 голосов
/ 29 октября 2019

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

Я попытался создать запрос на выборку, связывающий оригинал с таблицей назначения. , но это вызывает у меня проблемы из-за несоответствия пустых или пустых полей и возможности того, что одно из единственно определенных заполненных полей (имя) может соответствовать более ранней записи (т. е. это таблица контрактов, а контракт может иметьто же имя, расторгнуть, а затем создать новый контракт с тем же именем).

Есть ли способ, возможно, с помощью VBA, посмотреть на максимальный номер идентификатора в таблице назначения, выполнить запрос на добавление, а затем отобразить все записи в таблице назначения с идентификатором выше, чем предыдущий максимум? Я знаю, как выполнить запрос на добавление с помощью VBA, но возникают проблемы с просмотром недавно добавленных записей.

Получение ошибки компиляции (неверное количество аргументов или неправильное назначение свойств) - я все еще довольно новичок в VBA, поэтомувозможно я делаю это неправильно. Вот мой код:

Private Sub Ctl310_apqry_Click()
Dim lngID As Long
lngID = Nz(DMax("ContractID", "Contracts"), 0)
CurrentDb.Execute "310 apqry Add New Contract Records"
DoCmd.OpenTable "Contracts", acViewNormal, acEdit, "ContractID>" & lngID
End Sub

1 Ответ

0 голосов
/ 29 октября 2019

Да, VBA может искать максимальный идентификатор (DMax () может делать это), запускать запрос на добавление, открывать запрос / форму / отчет записей, отфильтрованных по идентификатору, превышающему прежний максимальный идентификатор. Это предполагает, что идентификатор автонумера положительный и увеличивается, что не должно быть гарантией, хотя я никогда не видел иначе.

Очень простой пример кода:

Dim lngID As Long
lngID = Nz(DMax("ID", "tablename"), 0)
DoCmd.OpenQuery "queryname"
DoCmd.OpenForm "formname", , , "ID>" & lngID

Если вы предпочитаете открыть отфильтрованный запрос, параметры:

  1. динамический параметр в запросе - установитьнесвязанное текстовое поле в форме с максимальным идентификатором, а затем запрос может ссылаться на это текстовое поле или код, который устанавливает TempVar и ссылки на запрос, которые

  2. используют QueryDefs в VBA для изменения объекта запроса с критериями фильтра

...