29. juni 2004 - 11:03Der 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?
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
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))
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.
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! :(
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)
Synes godt om
Ny brugerNybegynder
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.