【问题标题】:Updating a non-bound field in a form with a record source使用记录源更新表单中的非绑定字段
【发布时间】:2016-11-25 11:39:14
【问题描述】:

我有一个记录源为SELECT [AccountRunInProgress] from [AccountRunSummary] 的表单。该表单包含一个带有日期的文本框,该日期用于根据月份和年份(在 AccountRunSummary 表中定义为两个单独的字段)对上述记录源应用过滤器。

表单中的另一个字段是绑定到 AccountRunInProgress 字段的复选框。勾选后,此框的 OnClick 事件会使用当前日期和时间更新 AccountRunSummary 表中名为 RunProgressStartDate 的日期字段。

然后我在关闭表单时收到写入冲突错误 - 几乎可以肯定,因为我试图通过 OnClick 事件更新表,同时将表用作记录源,尽管不绑定日期字段。日期在表格中更新,但不是布尔值。

解决此问题的最佳做法是什么?我曾考虑将 RunProgressStartDate 添加为表单中的隐藏绑定文本框并将其添加到记录源,但我相当确定这会导致更多问题而不是更少问题。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    你在正确的轨道上。

    您不能同时通过绑定表单和更新查询(在 VBA 中)编辑记录。

    IMO 最好的解决方案确实是将RunProgressStartDate 添加到记录源并作为表单的隐藏控件。

    然后(重要!)在 OnClick 事件中设置这个控件的值,不要用 Update 查询写表:

    Me!RunProgressStartDate.Value = Date()
    

    当记录保存时,两个字段(复选框和日期)都会被保存。

    【讨论】:

    • 啊完美。起初我被这个解决方案吓到了,因为我仍然遇到同样的错误,我认为不可能更新绑定字段的值。必须在没有意识到的情况下仍然在 OnClick 事件中运行更新语句。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2018-05-25
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多