Я установил источник строки в одну и ту же таблицу для двух разных несвязанных списков, cbo_MaxCost и cbo_MinCost, в форме. Эти комбинированные списки предназначены для указания минимума и максимума диапазона значений для каждой записи в другой таблице. Чтобы убедиться, что это так, я установил код в каждом событии AfterUpdate комбобокса, чтобы проверить,
cbo_MaxCost >= cbo_MinCost
или предупредить пользователя с ошибкой.
Проблема в том, что эта проверка выполняется беспорядочно. Например, иногда Access VBA оценивает
21> 11
как Ложь, а в других случаях как Истина. Использование обозначений точек и восклицательных знаков не имеет значения, равно как и использование «Я». или нет, или ".Value" или нет. Пройдя по нему, вы увидите, что Access во время сравнения регистрирует правильные значения в выпадающих списках. Такое поведение, кажется, происходит чаще, когда я выбираю намного более высокое или более низкое значение, чем было ранее в одном из блоков. Я не могу понять, чем это вызвано.
Это код:
Private Sub cbo_MaxCost_AfterUpdate()
If cbo_MaxCost >= cbo_MinCost Then
MsgBox ("Access is calculating correctly.")
Else
MsgBox ("The maximum cost should be higher than the minimum.")
End If
End Sub
Private Sub cbo_MinCost_AfterUpdate()
If cbo_MaxCost >= cbo_MinCost Then
MsgBox ("Access is calculating correctly.")
Else
MsgBox ("The maximum cost should be higher than the minimum.")
End If
End Sub