2015-10-13 2 views
0

Я хочу создать отчет, который покажет мне все классы определенного уровня года. Мои данные идут от 1 до 12 лет, а классы идут от A до H. Так, например, начинается с 1A и заканчивается на 12H.Доступ к SQL: односимвольный подстановочный знак после текстового поля

Я написал следующий код SQL, чтобы вернуть все классы определенного уровня в год, но я столкнулся с проблемой, с которой я знал, что столкнулся. Мой код выглядит следующим образом: (примечание, txtYearLevel это текстовое поле, которое пользователь вводит уровень года они желают, чтобы просмотреть классы INTO)

SELECT [form classes].[Form Class] 
FROM [form classes] 
WHERE [form classes].[Form Class] like Forms![navigation form]![navigationsubform].Form!txtYearLevel & "_"; 

^это не возвращает никаких результатов. Я думал, что должен использовать такой подход, потому что _ указывает один символ подстановки. (Так что это будет работать для отдельных уровней цифр года и я хотел бы написать подобный код, чтобы заботиться о двойных уровнях значного года)

Я также попытался:

SELECT [form classes].[Form Class] 
FROM [form classes] 
WHERE [form classes].[Form Class] like Forms![navigation form]![navigationsubform].Form!txtYearLevel & "*"; 

^Это возвращает результаты. Однако, если бы я набирал «1», например, я бы получил все классы в году 1, 10, 11 и 12.

По сути, я хочу найти способ дифференцировать классы с одной цифрой из двузначных классов, поэтому они не отображаются в поиске, если я специально не ищу двузначный класс (например, набрав «12»).

Спасибо!

ответ

1

В Access SQL ? является подстановочным знаком для одного символа, а не _.

Так -

SELECT [form classes].[Form Class] 
FROM [form classes] 
WHERE [form classes].[Form Class] LIKE 
    Forms![navigation form]![navigationsubform].Form!txtYearLevel & "?"; 
Смежные вопросы