MS Access查询中的通配符

时间:2019-02-25 01:53:01

标签: ms-access access-vba wildcard

我有两个表需要查询我的报告。

第一个表为Test_Cap_Model_1,第二个表为Router

我已经在查询中添加了两个表,我想根据条件进行查询:

if [Test_Cap_Model1].[Modell] Like [Router].[TestModel]*  

这意味着,如果Model1表中的字段Test_Cap_Model_1包含一个以testmodel表中的Router开头的值。我已经尝试插入条件,但是它说无效的运算符。

query

我这样写标准部分:

[Test_Cap_Model1].[Model] Like [TestModel]% 

有人可以帮我吗?

谢谢

2 个答案:

答案 0 :(得分:0)

这对我有用:

[Test_Cap_Model1].[Model] Like [TestModel] & '%'

答案 1 :(得分:0)

您需要将通配符运算符与字段值(假设当然是字符串值的字段)连接起来:

Test_Cap_Model1.Model like Router.[Test Model] & "*"

仅当数据库设置为使用ANSI-92语法(通常不是默认语法)时,才将百分号(%)用作通配符运算符。

仅当字段名称包含空格或您使用的是不带表限定符的保留字时,才需要在字段名称周围加上方括号。

我不确定该字段应为Test Model还是TestModel,因为您的问题描述和屏幕截图有所不同。

除了在每个屏幕截图中使用交叉联接外,您还可以将通配符匹配应用于联接条件,例如:

select 
    t.model,
    t.1st_pass,
    t.prime,
    r.route
from
    test_cap_model1 t inner join router r on t.model like r.[test model] & "*"
where
    t.retest = 2 and
    t.test_flow = 'Cummulative Yield'

尽管请注意,MS Access将无法在查询设计器中显示此类联接,因此您需要保留SQL视图以确保联接不会被MS Access破坏。

请注意屏幕截图中可能出现的错字:

'Cummulative Yield'

也许应该是:

'Cumulative Yield'