Ms access 比较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] =
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个值都相等,则查询将只返回“是”,其他所有内容都将返回“否”。我以为这就是你想要的行为?