使用" V"在SQL中表示用户输入中的元音

时间:2015-06-20 13:42:43

标签: sql ms-access access-vba

我需要运行一个查询,用户输入一个字符串,然后查询返回任何记录,其中数据的任何部分都与字符串匹配。例如,参数" w"会回来" wa"," ew"等我可以轻松地做到这一点:

SELECT 
    getSourceID.Title, getSourceID.Author, 
    word.form, word.gloss, word.pageNumber, 
    getSourceID.Publication
FROM 
    getSourceID 
INNER JOIN 
    word ON getSourceID.[ID] = word.[source]
WHERE 
    (((word.form) LIKE "*" & Forms!FsearchByForm!contains & "*") 
    AND ((getSourceID.Publication) Between Forms!FsearchByForm!minYear And Forms!FsearchByForm!maxYear));

但是我的SQL并不是很好。我需要对此进行扩展,以便V和C分别代表元音或辅音,即参数" Vw"将返回记录中包含" aw"," ow"等的任何实例。

有没有办法将其实现为WHERE子句?

1 个答案:

答案 0 :(得分:2)

您可以使用Like模式中的字符范围...

SELECT
    "abc" Like "*[aeiouy]*" AS test_true,
    "bcd" Like "*[aeiouy]*" AS test_false

同样的技术适用于WHERE子句。但我不确定当模式来自文本框(Forms!FsearchByForm!contains)时如何应用它。

也许你可以对文本框值进行Replace(),并找出一种方法来区分 V 是什么意思是一个元音占位符,什么时候它应该只是字母 V