我有三个表:一个父表和两个子表。两个子表与父表具有一对一的关系。这种结构的原因是因为两个子表共享一些特征,但它们也有不同之处。我想要完成的是避免直接进入父表并为子表提供表单,然后这些表也会填充父表中的字段(不在子表中的字段)。
P.S。我是Access 2010的新手。
答案 0 :(得分:1)
这很容易做到。 我将展示一个孩子的案例。然后你可以多次复制它 让我们假设这个结构
父表
子表
通过IDParent - > Parent_ID。
在父和子之间创建关系所以这是管理记录添加的代码。 在子窗体的AfterInsert事件中,您可以放置像这样的代码
Private Sub Form_AfterInsert()
Dim rsParent As DAO.Recordset
Dim lngParentID As Long
'
' Creates a recordset from Parent table
'
set rsParent = CurrentDb.OpenRecordset("SELECT * FROM tbParent",dbOpenDynaset)
' Creates a new record in parent table
With rsParent
.AddNew
.Fields("PField1") = ... ' Populate fields here
.Fields("PField2") = ...
.Update
End With
rsParent.MoveLast
lngParentID = rs.Fields("IDParent) ' Get IDParent of recently added parent record
rsParent.Close ' Close recordset
Me.Parent_ID = lngParentID ' Assign to current record inserted in child table the link to parent record just created
Me.Requery ' Refresh recordset under child form
End Sub
如果您正在寻找,请告诉我。
再见 WIZ
答案 1 :(得分:0)
您可以通过VBA代码执行此操作,也可以设置正确的关系(数据库关系),以便自动更新信息。
您需要确保所有表都具有将表相互关联的主键,否则没有用于更新表的参考点。
您可能需要查看the MS KB article,并密切关注有关强制执行参照完整性的部分。