15. december 2004 - 13:02Der er
6 kommentarer og 1 løsning
Formular der skriver til 4 tabeller
Hej Er det muligt at lave en formular der skriver til fire tabeller med hver sit navn, men med samme indhold i tabellen. Hvorfor ? Har kædet fire tabeller sammen i Access fra fire forskellige databaser, og så ville det være en let måde at ensarte data i disse tabeller ! Mvh
Det skal jeg fordi de stammer fra fire forskellige programmer og skal også kunne bruges af de fire programmer senere....jeg kan desværre ikke nøjes med en :-) Jeg kunne lave det som en knap der flyttede data fra en tabel til en anden, men jeg synes det andet kunne være smartere at bruge, da der også er andre dele i programmerne der med fordel kunne "ensrettes" Mvh
Forudsat at feltnavnene er de samme i de fire tabeller vil nedenstående sikkert kunne hjælpe:
Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim rs3 As DAO.Recordset If Me.NewRecord Then Set rs1 = CurrentDb.OpenRecordset("kopi1") Set rs2 = CurrentDb.OpenRecordset("kopi2") Set rs3 = CurrentDb.OpenRecordset("kopi3") Me.RecordsetClone.MoveLast rs1.AddNew rs2.AddNew rs3.AddNew Else Me.RecordsetClone.Bookmark = Me.Bookmark Set rs1 = CurrentDb.OpenRecordset("SELECT * FROM kopi1 WHERE ID=" & Me.RecordsetClone.Fields("ID"), dbOpenDynaset) Set rs2 = CurrentDb.OpenRecordset("SELECT * FROM kopi2 WHERE ID=" & Me.RecordsetClone.Fields("ID"), dbOpenDynaset) Set rs3 = CurrentDb.OpenRecordset("SELECT * FROM kopi3 WHERE ID=" & Me.RecordsetClone.Fields("ID"), dbOpenDynaset) rs1.MoveFirst rs2.MoveFirst rs3.MoveFirst rs1.Edit rs2.Edit rs3.Edit End If Stop For Each Field In Me.RecordsetClone.Fields If (rs1.Fields(Field.Name).Attributes And dbUpdatableField) = dbUpdatableField And _ (rs1.Fields(Field.Name).Attributes And dbAutoIncrField) <> dbAutoIncrField Then rs1.Fields(Field.Name).Value = Me.RecordsetClone.Fields(Field.Name).Value End If If (rs2.Fields(Field.Name).Attributes And dbUpdatableField) = dbUpdatableField And _ (rs2.Fields(Field.Name).Attributes And dbAutoIncrField) <> dbAutoIncrField Then rs2.Fields(Field.Name).Value = Me.RecordsetClone.Fields(Field.Name).Value End If If (rs3.Fields(Field.Name).Attributes And dbUpdatableField) = dbUpdatableField And _ (rs3.Fields(Field.Name).Attributes And dbAutoIncrField) <> dbAutoIncrField Then rs3.Fields(Field.Name).Value = Me.RecordsetClone.Fields(Field.Name).Value End If Next rs1.Update rs2.Update rs3.Update End Sub
Vær opmærksom på, at det i nyere Access versioner (der bruger ADODB som standard) kræver, at du inkluderer DAO under referencer.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.