某些访问表单上的2007年编程问题

某些访问表单上的2007年编程问题

问题描述:

我正在设计一个带SQL Server表的小型Access 2007 UI。某些访问表单上的2007年编程问题

我在我的页面上有一个子表单,它是一个数据表。对于表单视图中选择的每个父记录(比如表A,表B有一个表A的外键),我想写出数据表中的每个相关记录。

有5位顾客。每个都有几个订单。您可以浏览表格中的客户。但是对于下一个按钮的点击,我想在数据表中显示所有相关的命令(数据表也会允许我写新的记录)。

此外,在数据表中(想象它是订单),我可以将PK ID值设置为与当前显示的客户记录中的ID相同吗?

感谢

如果我正确地读这篇文章,你说你有主父表的形式的主要部分,而您希望您浏览周围的孩子记录在子窗体显示。 Access默认以这种方式工作,你不需要编写任何代码。

此外,如果您将子记录添加到子窗体中,则会为您正确设置外键值。再次不需要代码。

因此,建立一个基于主父表的标准表格。然后,你可以建立一个连续的表格基于子表并将其放到上面的主表单中。

然后打开设计模式中的主窗体并设置子窗体属性表。在该属性表中,只需设置链接主链接和链接子字段即可。链接主设备将被设置为主窗体中的主键,并且链接子设置将被设置为子窗体中表的外键字段。

一旦完成上述工作,那么整个事情应该没有任何编码和所有工作。


至于孩子将错误信息:

假设你有一个主要客户的形式,则该用户不能直到他们浏览到一个新的客户记录添加顺序。如果他们没有导航到新的客户记录,那么他们将以这种主要形式编辑现有客户。因此,在所有情况下,主客户记录将始终添加,然后才能输入客户订单。

我想用户可以导航到一个空白的客户记录,然后将光标(焦点)跳转到订单所在的子表单并开始输入。即使在这种情况下,当焦点从主要客户形式转到订单子表单时,将添加空白客户记录。 (所以当你使用经典的主表单+子表单设置时,访问用户界面处理父记录的添加)

所以从用户界面的角度来看,用户不可能实现输入没有主客户记录的订单。因此,您不会收到有关父客户记录不存在的错误消息。只有当人员将订单表单打开为非子表单时,才会出现此类错误,然后尝试添加新的订单记录。在这种情况下,你会得到一个错误消息。所以我真的没有看到需要捕获这个错误信息。我不会允许用户单独打开子表单。如果出于某种奇怪的原因,您确实允许将子表单与主表单分开打开,那么请打开表单并允许additons = false(并且再次避免出现错误消息)。

我想如果因为某些原因允许用户单独打开子窗体或订单窗体并且您没有关闭允许的添加项,那么他们将能够导航到新的空白记录,意味着客户记录的FK不能正确设置。如果有这个命令的规定构成来选择客户,那么你可以肯定把下面的代码在这个命令形式的更新事件之前进行:

If isnull(foreign key field name goes here) = true then 
    Msgbox “ you must select a customer before you can enter an order” 
    Cancel = true 
End if 

再次在某种意义上并没有真正捕获错误消息在没有父记录的情况下即将添加子记录。我们只是简单地使用UI界面来告诉用户执行一些操作,以防止首先出现错误信息。

+0

谢谢!我之前做过这个工作,但需要一些练习。有没有办法阻止用户添加记录,在这种情况下,订单,当没有一个客户行? Access会抛出一个错误(不记得详细信息),我能否用自己的错误信息/框覆盖Access的错误? – dotnetdev 2009-07-09 20:46:23