使用按钮将记录添加到多个表

Adding Records to multiple tables with a button

我在表单上创建了一个按钮以添加到多个表格。所以我和下表是多对多的关系:

在表单上,​​我有两个文本框:txtComputer 和 txtHDD。当我单击按钮时,记录将添加到所有表中。如果 tblComputer 或 tblHDD 的记录存在,则它只会将其添加到 tblComputer-HDD 中。任何帮助都会很棒!我还在下面提供了数据库 link:

Add Item database

这也是我的 vba 代码:

Private Sub btnAdd_Click()
  Dim db As Database
  Dim Computer As Recordset
  Dim CompHDD As Recordset
  Dim HDD As Recordset

  Set db = CurrentDb
  Set Computer = db.OpenRecordset("Select * from [tblComputer]")
  Set CompHDD = db.OpenRecordset("Select * from [tblComputer-HDD]")
  Set HDD = db.OpenRecordset("Select * from [tblHDD]")

  If Computer.NoMatch = True Then
    Computer.AddNew
    Computer("Computer") = Me.txtComputer
    Computer.Update

  ElseIf HDD.NoMatch = True Then
    HDD.AddNew
    HDD("HDD") = Me.txtHDD
    HDD.Update

  Else
    CompHDD.AddNew
    CompHDD("Computer") = Me.txtComputer
    CompHDD("HDD") = Me.txtHDD
    CompHDD.Update
  End If

  txtComputer.Value = ""
  txtHDD.Value = ""

  Set Computer = Nothing
  Set CompHDD = Nothing
  Set HDD = Nothing
  Set db = Nothing
End Sub

如果您将主键放在所有三个 table 上,那么您可以简单地附加值。 PK 将防止添加重复项。

我将使用以下方法将计算机和 HDD 对添加到 tblComputer-HDD table。您应该能够更改语法以处理此示例中的其他两个 table 附加。

DoCmd.SetWarnings False
DoCmd.Execute "INSERT INTO [tblComputer-HDD] ([Computer], [HDD]) VALUES ('" & Me.txtComputer & "', '" & Me.txtHDD & "')"
'Other Code
DoCmd.SetWarnings True