Мой код работает, но я просто хочу знать, есть ли более эффективный способ достижения того же эффекта.
У меня есть этот макет в форме:
В целях защиты от ошибок процесса создания записи мне бы хотелось, чтобы кнопка «Сохранить и очистить поля» была включена только после того, как текстовое поле / поле со списком «Комментарий» содержит некоторые действительные данные.
Текстовые / комбинированные поля называются txtBatteryID, cmbModelNumber, cmbChemistryType, txtSpecVoltage, txtSpecCapacity.
Мой код выглядит следующим образом
Private Sub EnableSaveBtnCheck()
'this checks if the required fields contains valid data, if so, enables the save button.
If Me.btnSaveAndCLear.Enabled = False Then
If IsNull(txtBatteryID) = False And IsNull(cmbModelNumber) = False And IsNull(cmbChemistryType) = False And IsNull(txtSpecVoltage) = False And IsNull(txtSpecCapacity) = False Then
Me.btnSaveAndCLear.Enabled = True
End If
End If
End Sub
Как видите, я сделал самый простой способиспользования AND для объединения всех обязательных условий в выражении IF.Эта подпрограмма вызывается в событии After_Update () каждого текстового поля или поля со списком.Вот так:
Private Sub cmbChemistryType_AfterUpdate()
Call EnableSaveBtnCheck
End Sub
В конце концов, мой вопрос: есть ли более эффективный способ установить условие «в каждом текстовом / комбинированном окне должно быть что-то допустимое»?И есть ли более сложный способ проверить, выполняется ли условие (что-то вроде события в самой форме)?