Получить текстовое значение из формы в 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 с одинарными кавычками в первом примере запроса. Обратите внимание, что второй пример не нуждается в кавычках, поскольку он ссылается на текстовое поле по имени, а не на его значение.
однако, если вы продолжите свой оригинальный подход (сохранение значения текстового поля в переменную), Не называйте переменную "значение", потому что значение можно спутать со свойством многих объектов.