Получить текстовое значение из формы в Access с помощью модуля VBA

в настоящее время я хочу получить значение из формы, чтобы установить его в SQL-запросе, который я делаю в модуле под Access с помощью VBA. Я пытался использовать

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....."

он делает ошибку (2450), говоря, что не может найти указанную форму. Как я могу получить значение этого текстового поля, чтобы использовать его в своем модуле?

Thx

1 ответов


измените код VBA, чтобы убедиться, что форма открыта.

DoCmd.OpenForm "NameOfForm"

это должно предотвратить ошибку #2450.

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

sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';"

или вставить ссылку на само текстовое поле (вместо значения текстового поля) в запрос.

sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];"

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

однако, если вы продолжите свой оригинальный подход (сохранение значения текстового поля в переменную), Не называйте переменную "значение", потому что значение можно спутать со свойством многих объектов.