我正在尝试编写一段快速的 VBA 代码,该代码将检查特定范围内的 2 个组合框值是否匹配,如果它们匹配,则应返回错误消息。
我发现我的代码在cboOption1.Column(0)
与cboOption1.Column(0)
进行比较时失败了。所以我在额外的行中添加了And Not Me.Controls("cboOption" & i) = Not Me.Controls("cboOption" & k)
以抵消组合框对自己所做的任何比较。但是现在我收到错误消息,MS Access无法在此行找到我的表达式中提到的字段组合框。知道出了什么问题吗?
Dim myArray As Variant
Dim x As Integer
myArray = Array(cboOption1.Column(0), cboOption2.Column(0), cboOption3.Column(0), cboOption4.Column(0))
For x = LBound(myArray) To UBound(myArray)
For i = 1 To 4
For j = 1 To 4
If Me.Controls("cboOption" & i).Column(0) = myArray(x) _
And Me.Controls("cboOption" & j).Column(0) = myArray(x) _
And Not Me.Controls("cboOption" & i) = Not Me.Controls("cboOption" & k) Then
MsgBox "You cannot select " & myArray(x) & " twice."
Exit Sub
End If
Next
Next
Next x
如果在进行值比较之前i = j
,那么基本的 chek 怎么样?
Dim myArray As Variant
Dim x As Integer
myArray = Array(cboOption1.Column(0), cboOption2.Column(0), cboOption3.Column(0), cboOption4.Column(0))
For x = LBound(myArray) To UBound(myArray)
For i = 1 To 4
For j = 1 To 4
If i <> j Then
If Me.Controls("cboOption" & i).Column(0) = myArray(x) _
And Me.Controls("cboOption" & j).Column(0) = myArray(x) Then
MsgBox "You cannot select " & myArray(x) & " twice."
Exit Sub
End If
End If
Next
Next
Next x