26. april 2004 - 09:30Der er
4 kommentarer og 1 løsning
Sammenligning af tabeller
Tja, hvordan kan man bedst sikre sig at en tabel "overført" fra en database til en anden database, vha. en tabeloprettelsesforespørgsel, er gået godt og at de 2 tabeller er identiske?
Hvis du vil sikre dig, at de er 100% identiske, kan du bare lave en ny forespørgsel, hvor du joiner de 2 tabeller på samtlige felter. Brug herefter en If DCount("*", "DinForespørgsel") = DCount("*", "Den ene tabel") then 'alt ok
ok, der er ikke en indbygget funktion i Access som kan verificere at overførslen gik godt? (selvfølgelig kan man jo lave en On Error, så hvis der opstår en fejl, brydes ud af koden, så tabellen ikke bliver slettet af min kode længere nede!)
Du kan godt spørge på hvormange poster der blev påvirket i en forespørgsel. Og i dette tilfælde med Tabeloprettelse, vil det også være det samme. Men hvis det f.eks. havde været en opdateringsforespørgsel eller en tilføjelsesforespørgsel, så er det ikke ensbetydende med, at de 2 tabeller er helt ens:
Dim db as database Set db = Currentdb db.Execute "Din Tabeloprettelsesforespørgsel" If db.recordsaffected <> DCount("*", "Din oprindelige tabel") then 'fejl
I dit tilfælde vil jeg dog nok bare spørge på om Dcount er den samme for tabel1 og tabel2 (altså UDEN den forespørgsel, som jeg snakkede om først). Det burde være nok!
Ja, men ved en tabeloprettelse, så har jeg nu aldrig oplevet, at den skulle lave om på data undervejs. Dog kan indekser, primærnøgler og selvfølgelig relationer ikke kopieres med, når du bruger tabeloprettelsesforespørgsel.
Jeg plejer selv at oprette tabellen præcist som jeg vil have det med indekser osv. Derefter bruger jeg Tilføjelsesforespørgsler i stedet (og sletteforespørgsel forinden, hvis den skal køres ofte). Derved er det mere relevant at benytte metoden med forespørgslen hvor du joiner på alle felter.
Endnu et sikkerhedscheck kan foretages ved at db.Execute kan sættes til at afbryde hvis ikke alle poster går godt: Dim db as database Set db = Currentdb db.Execute "Din Tabeloprettelsesforespørgsel", dbFailOnError If db.recordsaffected = 0 then 'fejl
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.