Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 比较Access查询中的两个以上字段_Ms Access - Fatal编程技术网

Ms access 比较Access查询中的两个以上字段

Ms access 比较Access查询中的两个以上字段,ms-access,Ms Access,在Access查询中,如果要比较两个字段,请执行以下操作:- IIf([Field1] = [Field2], "Yes", "No") AS [MATCH] 是否可以比较3个字段,如果所有3个值都不同,则结果应为是,否则结果应为否。是,您可以使用逻辑and运算符展开逻辑: IIf(([Field1]=[Field2] And [Field2]=[Field3]),"Yes","No") AS [MATCH] IIf( [Field1] = [Field2] OR [Field1] =

在Access查询中,如果要比较两个字段,请执行以下操作:-

IIf([Field1] = [Field2], "Yes", "No") AS [MATCH]

是否可以比较3个字段,如果所有3个值都不同,则结果应为是,否则结果应为否。

是,您可以使用逻辑and运算符展开逻辑:

IIf(([Field1]=[Field2] And [Field2]=[Field3]),"Yes","No") AS [MATCH]
IIf(
  [Field1] = [Field2] OR [Field1] = [Field3] OR [Field2] = [Field3], 
  "No", 
  "Yes"
) AS [MATCH]
请注意,在您的问题中,您说,“如果所有3个值都不同,则结果应为是,否则结果应为否”。这与值相等的SQL查询“是”相矛盾。切换你的“Y”和“N”以适应

这将返回:

|-------|-------|-------|-------|
|Field1 |Field2 |Field3 |Result |
|-------|-------|-------|-------|
|1234   |1234   |1234   |Y      |
|1234   |aabb   |aabb   |N      |   
|1234   |we     |1234   |N      |
|-------------------------------|

是的,您可以使用逻辑AND运算符展开逻辑:

IIf(([Field1]=[Field2] And [Field2]=[Field3]),"Yes","No") AS [MATCH]
IIf(
  [Field1] = [Field2] OR [Field1] = [Field3] OR [Field2] = [Field3], 
  "No", 
  "Yes"
) AS [MATCH]
请注意,在您的问题中,您说,“如果所有3个值都不同,则结果应为是,否则结果应为否”。这与值相等的SQL查询“是”相矛盾。切换你的“Y”和“N”以适应

这将返回:

|-------|-------|-------|-------|
|Field1 |Field2 |Field3 |Result |
|-------|-------|-------|-------|
|1234   |1234   |1234   |Y      |
|1234   |aabb   |aabb   |N      |   
|1234   |we     |1234   |N      |
|-------------------------------|

以下是两种方法:

在我的示例中,如果存在匹配项,我将其设置为“是”,因此您可能需要调整它。我不确定如果它不匹配,你是否真的希望它说“是”

使用宏生成器

如果您想使用VBA:

Private Sub Command20_Click()
If Text1.Value = Text2.Value Then
step1 = "yes"
End If

If Text1.Value <> Text2.Value Then
step1 = "no"
End If


If Text1.Value = Text3.Value Then
step2 = "yes"
End If

If Text1.Value <> Text3.Value Then
step1 = "no"
End If


If step1 = step2 Then
Label25.Caption = "yes"
End If

If step1 <> step2 Then
Label25.Caption = "no"
End If
Private子命令20_Click()
如果Text1.Value=Text2.Value,则
步骤1=“是”
如果结束
如果Text1.Value Text2.Value,则
步骤1=“否”
如果结束
如果Text1.Value=Text3.Value,则
步骤2=“是”
如果结束
如果Text1.Value Text3.Value,则
步骤1=“否”
如果结束
如果步骤1=步骤2,则
标签25.Caption=“是”
如果结束
如果是第一步第二步,那么
标签25.Caption=“否”
如果结束

这里有两种方法:

在我的示例中,如果存在匹配项,我将其设置为“是”,因此您可能需要调整它。我不确定如果它不匹配,你是否真的希望它说“是”

使用宏生成器

如果您想使用VBA:

Private Sub Command20_Click()
If Text1.Value = Text2.Value Then
step1 = "yes"
End If

If Text1.Value <> Text2.Value Then
step1 = "no"
End If


If Text1.Value = Text3.Value Then
step2 = "yes"
End If

If Text1.Value <> Text3.Value Then
step1 = "no"
End If


If step1 = step2 Then
Label25.Caption = "yes"
End If

If step1 <> step2 Then
Label25.Caption = "no"
End If
Private子命令20_Click()
如果Text1.Value=Text2.Value,则
步骤1=“是”
如果结束
如果Text1.Value Text2.Value,则
步骤1=“否”
如果结束
如果Text1.Value=Text3.Value,则
步骤2=“是”
如果结束
如果Text1.Value Text3.Value,则
步骤1=“否”
如果结束
如果步骤1=步骤2,则
标签25.Caption=“是”
如果结束
如果是第一步第二步,那么
标签25.Caption=“否”
如果结束

好的答案就在那里

IIf(([Field1]=[Field2]和[Field2]=[Field3]和[Field1]=[Field3]),“否”、“是”)作为[匹配] 这只允许所有三个字段都不同的情况

如果要接受具有2个(而不是3个)相同值的案例,则此操作将不起作用

无论如何,颠倒逻辑可能会让阅读变得更好:


IIf([Field1][Field2]和[Field2][Field3]和[Field1][Field3]),“是”、“否”)作为[MATCH]

好的答案几乎就在那里

IIf(([Field1]=[Field2]和[Field2]=[Field3]和[Field1]=[Field3]),“否”、“是”)作为[匹配] 这只允许所有三个字段都不同的情况

如果要接受具有2个(而不是3个)相同值的案例,则此操作将不起作用

无论如何,颠倒逻辑可能会让阅读变得更好:


IIf([Field1][Field2]和[Field2][Field3]以及[Field1][Field3]),“是”、“否”)作为[MATCH]

如果三个字段中的任何两个相等,您希望结果为
“否”

因此,请使用OR运算符:

IIf(([Field1]=[Field2] And [Field2]=[Field3]),"Yes","No") AS [MATCH]
IIf(
  [Field1] = [Field2] OR [Field1] = [Field3] OR [Field2] = [Field3], 
  "No", 
  "Yes"
) AS [MATCH]

如果三个字段中的任意两个相等,则希望结果为
“No”

因此,请使用OR运算符:

IIf(([Field1]=[Field2] And [Field2]=[Field3]),"Yes","No") AS [MATCH]
IIf(
  [Field1] = [Field2] OR [Field1] = [Field3] OR [Field2] = [Field3], 
  "No", 
  "Yes"
) AS [MATCH]

如果所有3个值都相同,则使用此选项返回Yes。如果我将代码中的“是/否”位置交换为“是”,并按“是”进行筛选,则字段1和字段3中的值可以相等。在我的示例中,如果所有3个值都相等,则查询将只返回“是”,其他所有内容都将返回“否”。我以为这就是你想要的行为?如果这三个值都相同,那么使用它会返回“是”。如果我将代码中的“是/否”位置交换为“是”,并按“是”进行筛选,则字段1和字段3中的值可以相等。在我的示例中,如果所有3个值都相等,则查询将只返回“是”,其他所有内容都将返回“否”。我以为这就是你想要的行为?