【发布时间】:2019-04-05 09:15:27
【问题描述】:
您好,请协助解决以下问题:
我试图阻止最终用户在 txtPlantUsedGrams (PlantAmountUsed) 字段中输入大于 txtExtractionAmountAvailable (ExtractionAvailable) 字段中的金额的值,但允许在 txtPlantUsedGrams 值小于金额时输入在 txtExtractionAmountAvailable 字段中。
代码在 PlantAmountUsed 大于 ExtractionAvailable 的情况下工作,因为它会触发 msgbox,然后将 txtPlantAmountUsed 字段设置为零。在 PlantAmountUsed 小于 ExtractionAvailable 的情况下,它允许输入的值保持不变(不会将其更改为 0),但仅在触发 msgbox 并单击确定之后。我在第一个 If 之后插入的“退出子”代码不起作用。请帮助我,以便以下代码不会触发 msgbox,而是在 PlantAmountUsed 小于 ExtractionAvailable 的情况下退出子程序。我愿意接受任何/所有方法来实现这一点。谢谢你的帮助:)
VBA 代码的位置:
事件正在表单 (frmMedMaking) 中作为 txtPlantUsedGrams 字段中的 AfterUpdate 事件运行。
**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
【问题讨论】:
标签: vba ms-access if-statement msgbox