Access SQL:文本框后的单字符通配符
Posted
技术标签:
【中文标题】Access SQL:文本框后的单字符通配符【英文标题】:Access SQL: Single Character Wildcard Following Textbox 【发布时间】:2015-10-13 10:59:00 【问题描述】:我想生成一份报告,显示某个年级的所有班级。我的数据从第 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】:在 Access SQL 中,?
是单个字符的通配符,而不是 _
。
所以——
SELECT [form classes].[Form Class]
FROM [form classes]
WHERE [form classes].[Form Class] LIKE
Forms![navigation form]![navigationsubform].Form!txtYearLevel & "?";
【讨论】:
以上是关于Access SQL:文本框后的单字符通配符的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django ORM 中进行单字符替换( _ )的通配符搜索?
09 SQL语言——通配符(模糊查询),转义字符(使用escape)
SQL Server:SQL Like 通配符特殊用法:Escape