Я пытаюсь использовать поле со списком для фильтрации отчета. Мои значения "типа журнала" сохраняются в таблице как 1, 2 (числовой тип данных). Однако я хочу, чтобы поле со списком заполнялось буквами «a», «b» вместо 1, 2.
Я пробовал следующие операторы SQL в поле «Источник строки» на вкладке «Данные» для поля со списком:
SELECT [qryLog].[log_type], CASE WHEN [qryLog].[log_type] = 1 THEN 'a' ELSE 'b' END FROM [qryLog]
Это дает следующую ошибку: "Синтаксическая ошибка (отсутствует оператор) в выражении запроса" CASE WHEN [log_type] = 1 THEN "a 'ELSE' b 'END'
Я тоже пробовал это:
SELECT [qryLog].[log_type], REPLACE([log_type],1,'a') FROM qryLog;
Это вообще ничего не делает, выпадающие варианты по-прежнему 1, 2 (я ожидал, что это будут «а» и 2).
Что-то не так с моими выражениями SQL или Access не разрешает этот тип или операцию. Я использую Access 2013.
Спасибо!
Похоже, вы на правильном пути, возможно, вы даже уже решили ее.
Но наиболее вероятная проблема, с которой вы столкнулись, заключается в том, что ваше поле со списком ссылается на неправильный столбец после изменения вашего запроса.
Например:
Для Combo1 на вкладке данных источник строки выглядит так:
SELECT [qryLog].[log_type], REPLACE([log_type],1,'a') FROM qryLog;
Но поскольку эта ссылка больше не то, что вы ищете, вам нужно заменить значение. Вы, наверное, ищете это:
SELECT REPLACE([log_type],1,'a') AS [log_type] FROM qryLog;
Очевидно, это касается только ваших единиц, но вы, вероятно, поняли идею.
Обновлять:
SELECT Replace(Replace([qryLog].[log_type],1,'a'),2,'b') AS Whatever FROM qryLog
Это предполагает, что вы используете источник строк, а не источник управления в качестве метода заполнения поля со списком. Крышка экрана ниже:
Надеюсь, это поможет.
Спасибо за ваш ответ, я думаю, мы приближаемся, как я могу изменить значение, на которое ссылается поле со списком. Если я попробую ваш приведенный выше код, он выдаст мне ошибку «круговой ссылки», я думаю, мне нужно иметь AS New_Column, но каким-то образом указать этот New_Column в поле со списком как источник данных вместо log_type.