#vba #character
#vba #символ
Вопрос:
У меня есть запрос, который отображает более 255 символов в поле, и я хочу поместить эти данные в переменную, которую я могу обработать. К сожалению, MS Access сокращает возвращаемое значение поля до 255 символов.
(По крайней мере, при использовании этого метода:)
MyVar = Nz(rst.Fields("myfield").Value)
Большинство обходных путей, которые я нашел в Интернете, предлагают создать таблицу, изменить желаемую настройку поля на длинный текст, а затем перенести данные из запроса в таблицу, но я получаю те же результаты. Длинное текстовое поле все еще усекается во время выполнения DoCmd.
(По крайней мере, когда я делаю это таким образом:)
CurrentDB.Execute "Insert Into target_table Select myquery.* From myquery"
В других предложениях упоминается изменение поля на группирование по «Первому», но при запуске поле возвращается к «Выражению», поскольку определение поля включает функцию, которая выполняется во время запроса для обработки результатов.
Запрос также не мой и довольно сложный, с использованием других выражений полей, которые вызывают другие функции в таблицах. Я хотел бы избежать обратного проектирования всего этого, просто чтобы обновить таблицу, если это вообще возможно. Данные уже на моем экране, смотрят на меня — я просто хочу иметь возможность их использовать.
Это очень Microsoft-решение для продукта MS отображать некоторые данные, а затем сообщать вам, что он не может найти материал, который он вам только что дал (я смотрю на вас, file Explorer), но я надеюсь, что у кого-то здесь может быть жизнеспособное предложение. Возможно, какие-то другие методы запроса к таблице, которые не усекают? Какой-либо другой параметр запроса или метод извлечения поля?
Ответ №1:
Попробуйте это:
Dim MyVar As String
Dim Value As Variant
Value = rst.Fields("myfield").Value
MyVar = Nz(Value)
В любом случае это работает:
MyVar = Nz(DLookup("myfield", "myquery", "Id = " amp; someId amp; ""))
Однако, скорее всего, ваш myquery является ограничивающим фактором. Это должен быть прямой запрос select, чтобы не усекать поля memo.
Комментарии:
1. Ах, DLookup! Ты находка, спасибо! Очень признателен.