Access 2013:Попытка написать макрос для обновления полей формы из результата запроса

Access 2013:Попытка написать макрос для обновления полей формы из результата запроса

Я пытаюсь создать макрос для обновления значения поля в форме на основе результатов запроса.

Я новичок в работе с VBA в Access, поэтому прошу прощения, если задаю простой вопрос.

Стоит отметить, что запрос "test" возвращает ровно один результат. По сути, он используется аналогично VLookup.

На данный момент мой код выглядит следующим образом:

Private Sub UpdateBasic_Click()
  Dim bucket As String
  DoCmd.OpenQuery "test", acViewNormal, acReadOnly
  'this line is meant to record the result of the query into a variable. It is not working but I haven’t found the right command to get it to pick up the data yet.
  bucket = A1
  DoCmd.Close acQuery, "test", acSaveNo
  DoCmd.OpenForm "BasicData", acNormal, , , acFormEdit, acWindowNormal, "Global_ID = 'sdkfa'"
  'this line is meant to update the value of the field on the form.
  DoCmd.SetProperty testfield, acPropertyValue, bucket
End Sub

Мне никак не удаётся заставить команду SetProperty работать. Она постоянно сообщает мне, что у меня несоответствие типов данных, независимо от того, пытаюсь ли я дать ей переменную вроде bucket или значение вроде 10. Сообщение об ошибке следующее:

Ошибка выполнения «2948»: введенное вами выражение имеет неверный тип данных для одного из аргументов.

Любая помощь будет оценена по достоинству.

решение1

DoCmd.SetProperty testfield, acPropertyValue, bucket

Используя приведенный выше код, вы пытаетесь установитьpropertyдля контроля, не менятьvalue. Свойством может быть цвет фона, высота, ширина и т. д.

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

me.testfield = bucket

Это сообщает Access о необходимости заполнить элемент управления формы testfieldс именем значением, хранящимся в переменной bucket.

Примечание: Возможно, вам придется добавить me.refreshпосле этой команды команду, чтобы форма обновила поля.

Связанный контент