Функция Dsum не работает с текстовым полем - PullRequest
1 голос
/ 28 апреля 2020

Я перепробовал почти все, что мог придумать, почему я получил эту ошибку, но мне не повезло. Я написал аналогичный код, который ссылается на ту же таблицу с числовыми значениями, которая отлично работает, но при поиске текста у него есть проблемы. Код ошибки говорит, что здесь отсутствует пропущенный оператор: [ExpendetureStore] = 'Lowe's

TotalCostTextBox = DSum("[ExpendetureCost]", "ProjectExpendetures", "[ExpendetureStore] = '" & Me.StoreNameCombo & "'")

1 Ответ

1 голос
/ 28 апреля 2020

Lowe's имеет апостроф в названии. Механизм запросов доступа считывает этот апостроф как специальный символ (разделитель текста) в скомпилированной строке поиска. Если ваши данные содержат апострофы, один из способов справиться с ними - «экранировать» символ - удвоить его в данных с помощью функции Replace (). Это заставляет Access обрабатывать символ как обычный текст.

TotalCostTextBox = DSum("[ExpendetureCost]", "ProjectExpendetures", "[ExpendetureStore] = '" & Replace(Me.StoreNameCombo, "'", "''") & "'")

То же самое произойдет с кавычками, и с ним сложнее разобраться. Обратите внимание на экранирование кавычек между кавычками.
Replace("somevalue", """", """" & """")
Или может быть проще понять с помощью функции Chr ().
Replace("somevalue", Chr(34), Chr(34) & Chr(34))

Примечание: Expendeture - это неправильное написание Expenditure. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...