Здравствуйте, пожалуйста, помогите со следующим:
Я пытаюсь запретить конечным пользователям возможность ввода значения в поле txtPlantUsedGrams (PlantAmountUsed), которое больше суммы в поле txtExtractionAmountAvailable (ExtractionAvailable), но разрешает ввод, когда значение txtPlantUsedGrams меньше суммы в поле txtExtractionAmountAvailable.
Код работает в случае, когда PlantAmountUsed больше, чем ExtractionAvailable, так как он вызывает msgbox, а затем устанавливает поле txtPlantAmountUsed в ноль. В случае, когда PlantAmountUsed меньше чем ExtractionAvailable, это позволяет введенному значению закрепиться (не меняет его на 0), но только после того, как будет запущен msgbox, и я нажму ok. Код "sub sub", который я вставил после первого If, не работает. Помогите мне, чтобы следующий код не вызывал msgbox и вместо этого выходил из подпрограммы в случае, когда значение PlantAmountUsed меньше значения ExtractionAvailable. Я открыт для любых / всех способов сделать это. Спасибо за любую помощь:)
Расположение кода VBA:
Событие запускается в форме (frmMedMaking) как событие AfterUpdate в поле txtPlantUsedGrams.
**VBA Code:**
Private Sub txtPlantUsedGrams_AfterUpdate()
Dim PlantAmountUsed As Integer
Dim ExtractionAvailable As Integer
Dim LResponse As Integer
PlantAmountUsed = Me.txtPlantUsedGrams
ExtractionAvailable = Me.txtExtractAmountAvailable.Value
LResponse = MsgBox("Plant Amount Used must be less than Extraction
Available", vbOKOnly + vbCritical, "Available Extraction Amount Exceeded")
If PlantAmountUsed < ExtractionAvailable Then Exit Sub
If PlantAmountUsed > ExtractionAvailable Then
If LResponse = vbOK Then Me.PlantAmountUsed.Value = 0
End If
End Sub