2012-02-21 55 views
1

我有一个带有几个绑定字段和一些“自定义”复选框的表单,它为每个vba设置值。当我现在用'DoCmd.GoToRecord,acNewRec'开始一条新记录时,Access将清除我的表单,但不会创建一个新的ID,直到将值输入到其中一个绑定字段中。由于我的复选框字段没有绑定,所以在编辑绑定字段之前的任何更改都不会被保存。我尝试通过sql语句添加值,但是在我更改另一个字段,指出当前记录集已更改后,访问会引发错误,因此我怀疑这是要走的路。如何强制访问以开始新记录

我的表单基于查询和女巫vba我设置复选框,如[value_x] = true(当我第一次输入数据到一个绑定的字段,从而创建一个新的记录时,它工作正常)。

(另一种方式来避免,这将是在onload事件的值时设置任何绑定字段事后删除的价值。但是,这不是很干净,我想..)

+1

这是通过设计......如果您想在此提前强制使用新的ID,则需要执行创建/编辑循环。为什么你的复选框没有绑定? – 2012-02-21 23:52:00

+0

正常的复选框对于我的编程器来说很小,所以我使用labelfields和onclick事件以及里面的'X'。他们看起来更好,可以更大,但不能被束缚(据我所知?)。我知道activex复选框可调整大小,但我还没有测试过它们。 – Christian 2012-02-22 00:02:24

+1

我之前解决了这个问题,但我不再有权访问原始代码。我相信我所做的是将一个'OnClick'事件连接到我的自定义复选框,并用它来更改绑定到底层记录集的隐藏复选框的值。 – 2012-02-22 00:04:44

回答

1

测试几种方法后我发现我早先所说的想法是最简单的方法。这意味着我在form_load事件中设置了绑定字段的值,并在需要时使用me.dirty。

当然,我必须删除空的记录集(如果有人只打开和关闭表单),但这可以很容易地处理。

另一个伟大的想法是罗伯特哈维给我的。他建议将点击事件添加到我的未绑定自定义复选框中,并使用它来更改隐藏边界复选框字段,这也很有用。