Dlookup одно поле определяет другое - PullRequest
0 голосов
/ 20 июня 2019

У меня есть форма с двумя полями «Категория отправки» и «Аккаунт».Существует таблица с именем PacingCategories, в которой есть столбец «Категория» (отправка категории извлекается из этого списка) и столбец «Учетная запись».Я пытаюсь сделать Dlookup.Когда «категория отправки» заполнена, мне нужно поле «Аккаунт» для автозаполнения соответствующей учетной записи.Я потратил 2 часа на изучение и попытки заставить его работать, но по какой-то причине он не обновляется.

Я пытался смотреть видео и читать онлайн.Я до сих пор не уверен, что происходит не так.

Private Sub Sending_Category_AfterUpdate()

Me.Account = DLookup("Account", "PacingCategories", "[Sending Category]=" & "Category")

End Sub

Я не получаю сообщений об ошибках.Он просто не заполняет номер счета после категории отправки.Я знаю, что это должно быть легко.Спасибо за поиск.Matt

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Когда это просто Lookup, вместо использования vba, я обычно помещаю Dlookup в ControlSource элемента управления. У меня есть очень простая база данных, которую я создал, чтобы контролировать свои книги, и использовал ее для примера здесь:

«Выбрать автора» - это комбинированный список, который выбирает идентификатор автора (есть таблица «Авторы» с идентификатором автора (первичный ключ), именем и фамилией). Текстовые поля «Имя автора» и «Фамилия автора» заполняются автоматически при обновлении поля «Выбрать автора».

enter image description here

В ControlSource текстовых полей LastName и GivenName поместите функцию Dlookup:

enter image description here

После этого я просто использую Macro или VBA для обновления всей формы при обновлении поля со списком «Select Author» (в моем случае я использовал макрос, потому что он действительно быстрый и простой): enter image description here

enter image description here

Мне нравится резервировать VBA для тяжелых манипуляций с данными, MS Access предоставляет ярлыки для простых вещей, и я не против их использовать.

0 голосов
/ 20 июня 2019

Категория и [Категория отправки] находятся в позиции друг друга. Кроме того, не помещайте переменную в кавычки. Включение .Value не повредит, но не нужно, потому что это по умолчанию для элементов управления данными.

Попробуйте с:

Me!Account = DLookup("Account", "PacingCategories", "Category=" & Me![Sending Category])

Если Категория является текстом, используйте разделители апострофов:

Me!Account = DLookup("Account", "PacingCategories", "Category='" & Me![Sending Category] & "'")
...