访问SQL:单字符通配符以下文本框

时间:2015-10-13 10:59:01

标签: sql ms-access report

我想生成一份报告,向我展示某年级别的所有课程。我的数据从第1年到第12年,类从A到H.所以,例如,它从1A开始到12H结束。

我编写了以下SQL代码,以便返回某一年级别的所有类,但我遇到了一个我知道会遇到的问题。我的代码如下:(注意,txtYearLevel是一个文本框,用户输入他们希望查看类的年级)

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 个答案:

答案 0 :(得分:1)

在Access SQL中,?是单个字符的通配符,而不是_

所以 -

SELECT [form classes].[Form Class]
FROM [form classes]
WHERE [form classes].[Form Class] LIKE 
    Forms![navigation form]![navigationsubform].Form!txtYearLevel & "?";
相关问题