根据复选框状态将子窗体隐藏字段设置为可见

时间:2018-10-13 22:56:30

标签: vba ms-access

C,谢谢您的投入和鼓励!我已经稍微改变了形式和脚本,恐怕我保留了if语句,因为我对格式很满意。现在,脚本在“打开时”事件运行时起作用。

Private Sub Form_Open(Cancel As Integer)
Me.ChkAlbumNotes.SetFocus

If Me.ChkAlbumNotes.Value = False Then
    Me.lblAlbumNotes.Visible = False
    Me.txtAlbumNotes.Visible = False
    Me.btnAlbumNotes.Visible = True
Else
    Me.lblAlbumNotes.Visible = True
    Me.txtAlbumNotes.Visible = True
    Me.btnAlbumNotes.Visible = False
End If
Me.TrackName.SetFocus
If Me.TrackName = " " Then
    Me.btnAddRecord.SetFocus
Else
Me.btnNextRecord.SetFocus
End If
End Sub

第一次打开表单时很好,但是我有一组导航按钮,这些按钮由应用程序安装为宏。单击按钮后,我无法将脚本添加到On_Click事件中,因为On_Click已链接到宏。有没有一种方法可以将脚本从On_Load进程合并到预定义的宏中?还是可以建议一种更整洁的方式来达到我的要求;

  1. 打开表单时,将检查复选框中是否存在错误值 如果该复选框设置为false,则“注释文本”框和标签将被隐藏,并且注释按钮可见。

  2. 如果该复选框的值为真,则“注释”文本框和标签将变为可见,并且该按钮将被隐藏。

  3. 测试完成后,我检查“轨道名称”字段 如果为空,则假定我在最后一条记录上,并为“添加新记录”按钮赋予焦点

  4. 如果“轨道名称”不为空,则将焦点设置为“下一条记录”按钮

单击此按钮时,将打开下一个记录页面,并且该过程再次开始。

非常感谢

迈克

1 个答案:

答案 0 :(得分:1)

您应该使用Form_Current事件而不是Form_Open。在启动表单(两次)和每次您移至另一条记录时触发。

Private Sub Form_Current()
Me.lblAlbumNotes.Visible = Me.ChkAlbumNotes.Value
Me.txtAlbumNotes.Visible = Me.ChkAlbumNotes.Value
Me.btnAlbumNotes.Visible = Not Me.ChkAlbumNotes.Value

If Me.TrackName = "" Then ' I suggest If Me.TrackName = " " being a typo and you want to check if empty ( that's why you should use vbNullString instead of "")
  Me.btnAddRecord.SetFocus
Else
  Me.btnNextRecord.SetFocus
End If
End Sub