Ms access 2016 Access Form Events-使用什么控件动态执行代码
我已经创建了一个表格来参加培训活动。 我在表单顶部有一个未绑定的计算控件,它反映了培训的状态。计算控制源:Ms access 2016 Access Form Events-使用什么控件动态执行代码,ms-access-2016,Ms Access 2016,我已经创建了一个表格来参加培训活动。 我在表单顶部有一个未绑定的计算控件,它反映了培训的状态。计算控制源: =IIf(IsNull([Txt_TrainComm]),“新建”,IIf(IsNull([Txt_TrainComp]),“开始”,IIf(IsNull([txtAssNom]),“需要评估”,IIf(IsNull([txtAssComp]),“评估-提名”,“评估”)) 我的表单有几个关键日期(文本框名称:txt_TrainComm、txt_TrainComp、txtAssNom和tx
=IIf(IsNull([Txt_TrainComm]),“新建”,IIf(IsNull([Txt_TrainComp]),“开始”,IIf(IsNull([txtAssNom]),“需要评估”,IIf(IsNull([txtAssComp]),“评估-提名”,“评估”))
我的表单有几个关键日期(文本框名称:txt_TrainComm、txt_TrainComp、txtAssNom和txtAssComp)要按顺序输入。我希望在输入日期时启用其他表单控件,使页脚可见等。我编写了一个代码,当将当前事件放置在表单中时,从一条记录切换到下一条记录时,该代码可以正常工作。请参阅下面我的代码:
Private Sub Form_Current()
If Me.StatusName = "NEW" Then
Me.StatusName.Width = 1418
Me.Txt_TrainComp.Enabled = False
Me.Txt_TrainComm.Enabled = True
Me.Page_Assessment.Enabled = False
If Me.FormFooter.Visible = True Then
Me.FormFooter.Visible = False
Me.cmdShowdetails__.Caption = "Show Assessment <<"
Dim WindowHeightNEW As Long
WindowHeightNEW = Me.WindowHeight - Me.FormFooter.Height
Me.Move Left:=Me.WindowLeft, Top:=Me.WindowTop, Height:=WindowHeightNEW
End If
End If
If Me.StatusName = "COMMENCED" Then
Me.StatusName.Width = 2552
Me.Txt_TrainComp.Enabled = True
Me.Txt_TrainComm.Enabled = True
Me.Page_Assessment.Enabled = False
If Me.FormFooter.Visible = True Then
Me.FormFooter.Visible = False
Me.cmdShowdetails__.Caption = "Show Assessment <<"
Dim WindowHeightCOMM As Long
WindowHeightCOMM = Me.WindowHeight - Me.FormFooter.Height
Me.Move Left:=Me.WindowLeft, Top:=Me.WindowTop, Height:=WindowHeightCOMM
End If
End If
If Me.StatusName = "ASSESSMENT REQUIRED" Then
Me.StatusName.Width = 4253
Me.Txt_TrainComp.Enabled = True
Me.Txt_TrainComm.Enabled = True
Me.Page_Assessment.Enabled = True
If Me.FormFooter.Visible = False Then
Me.FormFooter.Visible = True
Me.cmdShowdetails__.Caption = "Hide Assessment <<"
Dim WindowHeightASSREQ As Long
WindowHeightASSREQ = Me.WindowHeight + Me.FormFooter.Height
Me.Move Left:=Me.WindowLeft, Top:=Me.WindowTop, Height:=WindowHeightASSREQ
End If
End If'
If Me.StatusName = "ASSESSMENT - NOMINATED" Then
Me.StatusName.Width = 4925
Me.Txt_TrainComp.Enabled = False
Me.Txt_TrainComm.Enabled = False
Me.Page_Assessment.Enabled = True
If Me.FormFooter.Visible = False Then
Me.FormFooter.Visible = True
Me.cmdShowdetails__.Caption = "Hide Assessment <<"
Dim WindowHeightASSNOM As Long
WindowHeightASSNOM = Me.WindowHeight + Me.FormFooter.Height
Me.Move Left:=Me.WindowLeft, Top:=Me.WindowTop, Height:=WindowHeightASSNOM
End If
End If
If Me.StatusName = "ASSESSED" Then
Me.StatusName.Width = 1985
Me.Txt_TrainComp.Enabled = False
Me.Txt_TrainComm.Enabled = False
Me.Page_Assessment.Enabled = True
If Me.FormFooter.Visible = False Then
Me.FormFooter.Visible = True
Me.cmdShowdetails__.Caption = "Hide Assessment <<"
Dim WindowHeightASSD As Long
WindowHeightASSD = Me.WindowHeight + Me.FormFooter.Height
Me.Move Left:=Me.WindowLeft, Top:=Me.WindowTop, Height:=WindowHeightASSD
End If
End If
End Sub
Private子表单_Current()
如果Me.StatusName=“新建”,则
Me.StatusName.Width=1418
Me.Txt\u TrainComp.Enabled=False
Me.Txt\u TrainComm.Enabled=真
Me.Page_Assessment.Enabled=错误
如果Me.FormFooter.Visible=True,则
Me.FormFooter.Visible=False
Me.cmdShowdetails\uuuuu.Caption=“Show Assessment FormObject\u LostFocus()Hello@RetiredGeek。感谢您的回复。这似乎起到了作用。我创建了一个未绑定到名为FormUpdate()的事件中的子项然后将代码复制到其中。然后我为每个控件创建了一个LostFocus事件,然后调用该子控件。这可能不是最优雅的解决方案,但它似乎完全按照我的预期工作。非常感谢。