我有以下代码:
Private Sub s1_AfterUpdate()
If s1 > 20 Then
MsgBox "Maximum is only 20"
Me.s1= 0
ElseIf s1 = 20 Then
Me.s1_8x12qtty.Enabled = False
End If
End Sub
我面临的问题是,当我把价值增加到20时,它将禁用 Me.s1_8x12qtty ,我很擅长,因为这就是我告诉它的事情......但是当我在表单中创建新记录时,它会在表单的生命周期内保持禁用...意味着如果我不关闭表单,即使我创建新记录和 s1的值为零。
为什么会发生这种情况我很困惑?
问候
答案 0 :(得分:1)
如果我不关闭表单,即使我创建新记录
,它仍将保持禁用状态
在我看来,您需要在表单的On Current
事件中使用一行代码来检查s1
的值,并可能重新启用该控件。
答案 1 :(得分:0)
尝试在创建新记录时创建另一个子运行,或将此代码放入您可能对同一事件执行的预先存在的子代码中:
Me.s1_8x12qtty.Enabled = True
答案 2 :(得分:0)
为什么会这样?在文本框中放置一个导致其被禁用的值后,您将无法再更新该值。期。您已将此代码放入After_Update事件中,无论您做什么,该事件都不会再次触发,除非您可以某种方式以某种方式重置该控件。
正如Gord所述,检查On_Current事件中的值(或者只是在On_Current事件中将Enabled属性重置为True)将允许您在每次移动到新记录时重置控件的状态。