Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access查询中的通配符_Ms Access_Vba_Wildcard - Fatal编程技术网

Ms access MS Access查询中的通配符

Ms access MS Access查询中的通配符,ms-access,vba,wildcard,Ms Access,Vba,Wildcard,我需要查询两个表以获取报告 第一个表是Test\u Cap\u Model\u 1,第二个表是Router 我已经在查询中添加了两个表,我想根据条件进行查询: if [Test_Cap_Model1].[Modell] Like [Router].[TestModel]* 这意味着如果Test\u Cap\u Model\u 1表中的字段Model1包含一个以Router表中的testmodel开头的值。我已经尝试插入条件,但它说运算符无效 我这样写了标准部分: [Test_Cap_Mo

我需要查询两个表以获取报告

第一个表是
Test\u Cap\u Model\u 1
,第二个表是
Router

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

if [Test_Cap_Model1].[Modell] Like [Router].[TestModel]*  
这意味着如果
Test\u Cap\u Model\u 1
表中的字段
Model1
包含一个以
Router
表中的
testmodel
开头的值。我已经尝试插入条件,但它说运算符无效

我这样写了标准部分:

[Test_Cap_Model1].[Model] Like [TestModel]% 
有人能帮我吗

谢谢

这对我很有用:

[Test_Cap_Model1].[Model] Like [TestModel] & '%'
这对我很有用:

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

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

Test\u Cap\u Model 1.类似路由器的模型。[测试模型]&“*”
仅当数据库设置为使用ANSI-92语法(通常不是默认语法)时,使用百分号(
%
)作为通配符运算符才有效

仅当字段名包含空格或使用不带表限定符的保留字时,才需要使用围绕字段名的方括号

我不确定该字段应该是
TestModel
还是
TestModel
,因为这与您的问题描述和屏幕截图不同

您也可以将通配符匹配应用于连接条件,而不是根据屏幕截图使用交叉连接,例如:

选择
t、 模型,
t、 第一关,
t、 总理,
r、 路线
从…起
test_cap_model1 t内部连接路由器r在t.model上,如r.[测试模型]&“*”
哪里
t、 重新测试=2和
t、 测试流量=‘累积产量’
但是请注意,MS Access将无法在查询设计器中显示此类联接,因此您需要保留SQL视图,以确保MS Access不会破坏联接

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

'Cummulative Yield'
或许应该是:

'Cumulative Yield'

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

Test\u Cap\u Model 1.类似路由器的模型。[测试模型]&“*”
仅当数据库设置为使用ANSI-92语法(通常不是默认语法)时,使用百分号(
%
)作为通配符运算符才有效

仅当字段名包含空格或使用不带表限定符的保留字时,才需要使用围绕字段名的方括号

我不确定该字段应该是
TestModel
还是
TestModel
,因为这与您的问题描述和屏幕截图不同

您也可以将通配符匹配应用于连接条件,而不是根据屏幕截图使用交叉连接,例如:

选择
t、 模型,
t、 第一关,
t、 总理,
r、 路线
从…起
test_cap_model1 t内部连接路由器r在t.model上,如r.[测试模型]&“*”
哪里
t、 重新测试=2和
t、 测试流量=‘累积产量’
但是请注意,MS Access将无法在查询设计器中显示此类联接,因此您需要保留SQL视图,以确保MS Access不会破坏联接

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

'Cummulative Yield'
或许应该是:

'Cumulative Yield'

它没有显示任何值:(我已经尝试更改表的位置,但它也无法检索。它没有显示任何值:(我已经尝试更改表的位置,但它也无法检索。我已经尝试了你的建议,但为什么我的记录会变得这么多?它应该是200+但现在变成了45890?它就像数据被复制一样。我已经编辑了代码“on t.model like…”在r.test model t.model上,我得到了正确的答案。但它仍然会复制某些数据。我只希望每个模型只出现一次。你知道怎么做吗?我是否需要应用“distinct”?在不知道数据结构的情况下很难给出建议;表中的记录之间可能存在一对多的关系,以便使用联接。我已经尝试过了你的建议,但为什么我的记录会变得这么多?它应该是200多,但现在它变成了45890?它就像数据被复制了一样。我已经编辑了代码“on t.model like…”在r.test model t.model上,我得到了正确的答案。但它仍然会复制某些数据。我只希望每个模型只出现一次。您知道怎么做吗?我是否需要应用“distinct”?在不了解数据结构的情况下很难给出建议;对于所使用的联接,表中的记录之间可能存在一对多的关系。