MS Access - 表单尝试创建关于连续表单的打开和记录跳转的新记录

时间:2015-01-23 14:01:21

标签: vba ms-access access-vba ms-access-2010

所以我的数据库存在两个问题,我认为这些问题已经链接在一起。

首先,如果tblDeliveries为空且frmMainView已打开,则会出现"您必须在' tblDeliveries.deliverySlot'中输入值。字段"但表格不应该试图创建一个记录,我也看不出它为什么会这样做。打开frmDailyView(这是frmMainView的子表单)并不显示此行为,但它是具有连续表单的行为...

其次,如果tblDeliveries有一行(或多行),表格的第一行将会跳转...例如,如果第一条记录的日期设置为23/01,则在frmMainView中/ 2015并导航到2015年1月24日并单击子窗体上的任意位置,然后按F5刷新记录将跳转到该日期,日期甚至在tblDeliveries中更改。

我不知道为什么要这样做,我甚至删除了表单的所有VBA代码来阻止它,但无论如何它都会发生。

如果有人之前遇到过这样的事情,请告诉我你是如何修理它的,或者非常欢迎任何建议。谢谢!

编辑:如果您下载数据库,请将您的计算机登录名添加到tblUsers。该日期也是英国格式,因此可能需要调整才能使用美国日期。

The offending database (1.5MB)

3 个答案:

答案 0 :(得分:0)

看看您的数据库,正在发生几个问题。

您可以通过进入表格 tblDeliveries 的设计视图解决第一个问题,选择 deliverySlot 字段并将所需(在底部面板中)从是更改为否

您的第二个问题是多方面的,但存在许多问题,但关键问题是子表单的记录源中缺少主表单和子表单之间的父子链接字段 deliveryDate 并且字段的表原点不在查询的连接语句中。对我来说,我甚至无法更新子窗体中的任何内容(所有框都显示为灰色)。

基本上,您正在尝试规范交付日期和交付时间(一对多),但左连接查询( qryDeliveryIncBlanks )设置未与此效果对齐。您的用户登录也无法顺利集成到frmMainView中。我的最终建议是修改数据库设计关系模型,然后使用表单作为相关表的可视化表示。

答案 1 :(得分:0)

我没有重复@Parfait的观点。

访问表单具有属性DataEntry。如果将其设置为Yes(或VBA中的True),则表单将自行打开,指向新的空数据记录。将此属性设置为No(VBA中为False)。

如果您想让用户手动输入新记录,请将属性AllowAdditions设置为Yes,否则设置为NoYes显示标有星号*的空记录以及数据表或连续表单的结尾。

答案 2 :(得分:0)

我已经解决了这个问题,感谢我发现的一些评论,我可以给deliverySlot字段一个默认值,其数字超出它想要的范围,我将其设置为99,但它只寻找1-20。日期仍然会跳转,但由于它不在查询的范围内,所以它是隐藏的。它解决了这两个问题。