Avatar billede puppetmaster Nybegynder
29. juni 2004 - 11:03 Der er 6 kommentarer og
1 løsning

Verificere at data er blevet kopieret

Jeg overfører nogle data fra en tabel i en database til en anden tabel i en anden database. Herefter slettes dataene fra den første tabel (det hele sker via VBA).
Hvordan kan jeg bedst/nemmest verificere at dataene i de 2 tabeller er identiske, inden VBA sletter tabellen?
29. juni 2004 - 11:07 #1
Hvis tabellen er tom til at starte med og antallet af poster er det samme i de to tabeller efter overførslen, burde de vel overført alle sammen?

Men der er flere måder at kontrollere på.

Én måde er at køre tilføjelsesforespørgslen vha DAO.Database-objektet

Dim db as database
Set db = Currentdb
db.Execute "Din appendquery", dbfailonerror
If db.recordsaffected = 0 then
  msgbox "Fejl!"
else
  'alt gik godt
endif
Avatar billede puppetmaster Nybegynder
29. juni 2004 - 12:27 #2
Ja, hvis de betingelser du der stiller op er opfyldt, så går alt vel godt, men hvis nu netværksforbindelsen ryger undervejs i overførslen, så er "fanden løs i Laksegade"!

Kan man ikke checke på 2 tabeller i 2 forskellige databaser er identiske eller ej?
(der er måske ikke en funktion i VBA der kan, f.eks. IsIdentical(Tabel1, Tabel2))
29. juni 2004 - 12:50 #3
Jamen, i begge tilfælde vil en røget netværksforbindelse blive opfanget som en fejl

Hvis du skal checke om 2 tabeller er identiske, kan du nemmest gøre det ved at joine dem sammen i en forespørgsel. Hvis du joiner på alle felter og stadig får samme antal records, som i én af dem, så er de identiske.
Avatar billede puppetmaster Nybegynder
29. juni 2004 - 13:12 #4
ok, det er jeg nød til at acceptere. Takker for hjælpen
29. juni 2004 - 13:16 #5
Du er skam ikke NØDT til noget :o)

Jeg er ikke helt med på, hvor du ser problemerne?
Avatar billede puppetmaster Nybegynder
30. juni 2004 - 11:52 #6
Problemet er hvis der f.eks. går noget galt i overførslen som ikke bliver fanget, så dataene IKKE bliver overført til den anden database og min VBA kode derefter sletter den oprindelige tabel, så eksisterer dataene INGEN steder!
Og de bliver sgu nok lidt sure i firmaet hvis de skal til at hente 350 paller frem igen for at indtaste dataene i systemet! :(
30. juni 2004 - 12:02 #7
Jamen, hvis du f.eks. bruger mit eks. med db.Execute og efterfølgende spørger på db.recordsaffected, så kan du være 100% sikker på, at du får det rigtige resultat. db.recordsaffected tildeles først en værdi når alle poster er kommet sikkert på plads!

Hvis du bruger den anden metode med at lave en forespørgsel som joiner på alle felter, så er den også 100% sikker, da den også først vil blive eksekveret efter at alle data er overførst.

Der kan IKKE gå noget galt, hvis du bruger en af disse 2 metoder til at kontrollere med :o)
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