MS Access Query中的通配符

问题描述 投票:1回答:2

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

第一张表是Test_Cap_Model_1,第二张表是Router

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

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

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

我写了这样的标准部分:

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

有人能帮我吗?

谢谢

ms-access access-vba wildcard
2个回答
0
投票

这对我有用:

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

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'
© www.soinside.com 2019 - 2024. All rights reserved.