访问一对一关系的表单 UI。不想级联删除



正在访问数据库上管理比赛。 赛车手需要成为组织的成员才能参加比赛。 他们可以是现有成员,也可以在比赛当天注册成为该组织的成员。 赛车手有时会进入,然后从注册和比赛之间的比赛中刮擦......在本例中,我们希望从 Racer 表中删除该条目。

我有一个会员表,其中包括:会员ID,姓名,地址。 这是从另一个数据库预填充的。 基本上是所有成员的下载。 我有一个赛车手表,其中包括:会员ID,号码布#,班级 这是一对一的关系。 您不能让赛车手多次参加比赛。

我希望能够以一个连续的形式:
1.通过键入成员ID,Bib#和类在窗体上创建比赛条目,但在输入成员ID后,窗体中会显示成员的名称。
2. 允许删除赛车手表中的成员 ID,但不允许删除成员表中的条目。
3. 允许输入新的会员 ID(当他们注册时,他们可以成为会员(和关联的名称和地址以及 Bib# 和班级,并让会员 ID、Bib# 和班级更新赛车手和会员 ID、姓名和地址更新成员。 成员表具有具有成员 ID 的条目的附加要求...我不想强制验证赛车表中的成员 ID 与成员表中的成员 ID 。

我尝试只在表中查找成员#。 此级联将删除成员条目。

我尝试使用1:1的关系,同样的事情。

尝试了窗体和子窗体,但不允许在连续窗体上。

我可以编写 VBA 代码,并且足够熟练地编写基于事件数据的数据验证或操作代码。 我只需要一些关于如何实现这一目标的指导......

如果您不想要表单/子表单排列,请使用绑定到带有组合框的赛车手的表单来选择成员。

  1. 使用在 RowSource 查询中包含成员名称字段的多列组合框。然后,文本框可以引用组合框列以显示成员名称:=cbxMember.Column(1)

  2. 赛车手表应该是依赖的,删除记录不会导致成员记录被删除 - 关系设置有问题。

  3. 使用组合框 NotInList 事件在赛车手数据输入期间"即时"创建新的成员记录。

或者使用一种技术来同步两个相关的子窗体 https://www.fmsinc.com/MicrosoftAccess/Forms/Synchronize/LinkedSubforms.asp
总结:

在主窗体上为链接大师创建一个中间文本框 价值。这将引用主子窗体中的当前记录,然后 详细信息子窗体可以链接到该值。通过进行此控制 不可见,您的用户将看不到此链接。 引用 子窗体中,对文本框的控件源使用以下语法 属性:=[subFormName].[Form]![ControlName]其中子窗体名称 是主子窗体控件的名称,控件名称是 筛选详细记录的控件的名称。 在 示例数据库,这变为:现在=[subMaster].[Form]![txtID]主值被公开,我们称之为"txtMasterID" 并将其用作第二个子窗体的链接母版字段。 它 最好在设计和测试窗体时保持此文本框可见。 工作后,将其"可见"属性设置为"否",以便用户不会 看看你创造的魔法!

最新更新