Avatar billede ds-zim Nybegynder
26. februar 2001 - 15:05 Der er 2 løsninger

Opdatering af Recordset(Sletning af poster) ?!?

Jeg har skrevet nedenstående funktion for at kunne validere referentiel integritet tabeller imellem.
Meningen er, at alle poster, hvis nøgle er repræsenteret i en anden tabel, slettes så kun problemposter
efterlades. Jeg tror faktisk at udvælgelsen kører, men jeg får runtime \'3020\' fejl når der skal slettes.
(\"Metoden Update eller CancelIpdate er brugt uden AddNew eller Edit\").
Hvad gør jeg forkert ? Skal man \"bruge\" RST til noget før man slette derfra ?

Cheers, Zim
---
Public Function GEEH()
Dim DB As Database
Dim RST As DAO.Recordset
Dim RST2 As DAO.Recordset
Dim Amount As Long, Counter1 As Long
Dim ID805 As Long, ID806 As Long
Set DB = CurrentDb
Set RST = DB.OpenRecordset(\"SKÆG\", dbOpenDynaset, dbSeeChanges, dbPessimistic)
Set RST2 = DB.OpenRecordset(\"BALLADE\", dbOpenDynaset, dbSeeChanges, dbPessimistic)

Amount = DCount(\"ID\", \"SKÆG\")
RST.MoveFirst
RST2.MoveFirst

For Counter1 = 0 To Amount
ID805 = RST.Fields(\"ID\")
ID806 = RST2.Fields(\"ID\")
Debug.Print ID805, ID806

While ID805 <> ID806
If Not RST2.EOF Then
  RST2.MoveNext
  ID806 = RST2.Fields(\"ID\")
Else
  MsgBox \"Reached RST2 end! Restarting!\", vbOKOnly
  RST.MoveNext
  RST2.MoveFirst
End If
Wend
Debug.Print ID805, ID806

If ID805 = ID806 Then
RST.Edit
RST.Delete
RST.Update
RST2.Edit
RST2.Delete
RST2.Update
End If

RST.MoveNext
RST2.MoveNext
Next Counter1
End Function
26. februar 2001 - 15:23 #1
Hej,

Problemet er at du bruger .Edit og .update, når du sletter.
RST.Delete skal stå alene (uden edit og update)

Avatar billede ds-zim Nybegynder
26. februar 2001 - 17:14 #2
DOH! Tak mester :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester