2015-10-13 38 views
0

我想生成一个报告,它将显示某年某个级别的所有类。我的数据从第1年到第12年,并且类从A到H。因此,例如,它从1A开始并在12H结束。访问SQL:文本框之后的单字符通配符

我写了下面的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

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

所以 -

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