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_Ms Access 2010_Ms Access 2007 - Fatal编程技术网

Ms access MS Access具有不精确匹配的内部联接(通配符或类似)

Ms access MS Access具有不精确匹配的内部联接(通配符或类似),ms-access,vba,ms-access-2010,ms-access-2007,Ms Access,Vba,Ms Access 2010,Ms Access 2007,我有一个Access数据库,我目前正在处理。我有两张桌子,我想合并两张桌子。我遇到的问题是,我用于匹配两个表的字段并不总是相同的,这意味着我必须使用通配符,我不太确定如何做到这一点 我的两个表的名称是: ACW,等一下 QMT 查询将包含以下字段: 两个表上都存在的RM字段 ACW来自表ACT,保持 平均保持来自表ACT,保持 分数来自表QMT 但是,我使用的字段是“RM”,因为它是名称,其中一些字段在第一个表中是姓,在另一个表中是姓。此外,在某些场景中还有额外的字符。有没有办法做到这一点 我尝

我有一个Access数据库,我目前正在处理。我有两张桌子,我想合并两张桌子。我遇到的问题是,我用于匹配两个表的字段并不总是相同的,这意味着我必须使用通配符,我不太确定如何做到这一点

我的两个表的名称是:

ACW,等一下

QMT

查询将包含以下字段:

两个表上都存在的RM字段

ACW来自表ACT,保持

平均保持来自表ACT,保持

分数来自表QMT

但是,我使用的字段是“RM”,因为它是名称,其中一些字段在第一个表中是姓,在另一个表中是姓。此外,在某些场景中还有额外的字符。有没有办法做到这一点

我尝试了以下方法,但没有成功:

    SELECT [ACW,Hold].RM, [ACW,Hold].ACW, [ACW,Hold].[Avg Hold], QMT.Score
    FROM [ACW,Hold] INNER JOIN QMT ON [ACW,Hold].RM = QMT.RM & "*";

支持通配符的SQL运算符是
LIKE
运算符,因此您的查询应该使用它而不是
=
运算符:

选择[ACW,Hold].RM[ACW,Hold].ACW[ACW,Hold].[Avg Hold],QMT.Score
从[ACW,Hold]内部连接QMT
在[ACW,Hold].RM上,类似于QMT.RM&“*”;
我刚刚在Access 2010中尝试了一个类似的查询,它似乎如预期的那样工作

更新

如果需要执行比单一类比较更复杂的匹配,则还可以创建一个VBA函数,该函数接受两个字段值作为参数,并返回一个布尔值,指示它们是否匹配。例如,使用如下函数

选项比较数据库
选项显式
公共函数DoTheyMatch(产品作为字符串,成分作为字符串)作为布尔值
将结果设置为布尔值
如果产品类似于配料&“*”那么
结果=真
ElseIf component=“一些特殊的东西”和product=“要匹配的价值”然后
结果=真
其他的
结果=错误
如果结束
DoTheyMatch=结果
端函数
您可以使用该函数作为连接的条件:

选择i.成分、i.供应商、p.产品
从成分我内部加入产品p
ON-DoTheyMatch(p.产品,i.成分);

我刚刚在Access 2010中尝试过,它也起到了作用。

请将表格的格式设置为让参与者能够轻松理解结构是的。然而,它起作用了,它并不是拉动一切。我是否可以添加其他内容来尝试捕获所有值?顺便说一句,我很感谢你的帮助。所以用一些数据来更改“一些特殊的东西”和“要匹配的值”?是的,这就是想法。