我想生成一份报告,向我展示某年级别的所有课程。我的数据从第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')。
谢谢!
答案 0 :(得分:1)
在Access SQL中,?
是单个字符的通配符,而不是_
。
所以 -
SELECT [form classes].[Form Class]
FROM [form classes]
WHERE [form classes].[Form Class] LIKE
Forms![navigation form]![navigationsubform].Form!txtYearLevel & "?";