复选框设置日期,但在表单加载时未选中:需要加载事件吗?

Posted

技术标签:

【中文标题】复选框设置日期,但在表单加载时未选中:需要加载事件吗?【英文标题】:Checkbox sets Date but on Form load appears unchecked: On Load event needed? 【发布时间】:2019-01-11 15:31:22 【问题描述】:

我在表单中设置了一个未绑定的复选框,如果选中,则使用 Now() 设置日期字段,如果未选中,它还会清空关联的日期字段,两者都使用 On Click 事件:

Private Sub DXF_Chk_Click()
Me.dxfLimits = IIf(Me.DXF_Chk, Now(), Null)
End Sub

这非常有效,但是,当我关闭并重新打开表单并检查相同的记录时,复选框显示为空。我理解为什么会发生这种情况 - 复选框没有直接绑定到 Date 字段 - 但我需要更正它。我的想法是使用 On Load 或 On Current (两者?)事件来查看相应的日期字段是否为非空,并使复选框显示为选中......但我不确定哪个是更好的选择,也不是什么会实现的。

我试图在 Form Current 事件中反转 On Click IIF:

Private Sub Form_Current()
Me.DXF_Chk = IIf(Me.dxflimits, Now(), Null)
End Sub

得到一个错误。

【问题讨论】:

你遇到了什么错误? 无法在 Null 函数上编译。但是,我使用了与下面 Gustav 类似的功能,我让它工作了! 【参考方案1】:

不知道你在做什么,但是一个复选框必须传递一个布尔值,所以试试:

Private Sub Form_Current()
    Me!DXF_Chk.Value = Not IsNull(Me!dxflimits.Value)
End Sub

【讨论】:

以上是关于复选框设置日期,但在表单加载时未选中:需要加载事件吗?的主要内容,如果未能解决你的问题,请参考以下文章

重力形式:AJAX 加载的复选框在错误验证时未选中

如果提交表单时未选中复选框,如何将布尔值更新为 0

在 Vue.js 中加载时未检查复选框

使用useState(Reactjs)时未选中材料表复选框

TreeView 检测节点选择,但在选中或取消选中时不检测

表单更改时触发的事件