Du kan oprette en tabel ven VBA-procedüre, og hvis det anførte tabelnabvn eksisterer afbryder dun blot handlingen. Testdb i Access97 kan sendes hvis du lægger din e-mail.
Har en db, med x antal tabller. Jeg vil gerne køre en tjek på om alle tabeller er der, hvis ikke oprettes tabeller (ligesom i dit eksempel. Hvordan laver men en check af tabeller kode.
Sendt til faroe. schoesler -> "tjek på om alle tabeller er der"? Så skal du jo have en liste med alle tabeller som du kan holde din kode op imod. Hvis du navngiver den nye tabel med et i forvejen eksisterende navn, skal du få en fejlmeddelelse, og tabellen vil ikke blive oprettet. Hvis du ikke får en fejl, kan det skyldes, at du et andet sted i applikationen har valgt at slå systemets fejlmeddelelser fra, uden i slutningen af koden at have slået dem til igen. Evgt. kan du indlægge en errorhandler, der afbryder funktionen.
Public Function DoesTableExist(TableName As String) As Boolean
Dim tmp As Boolean Dim tbl As TableDef tmp = False For Each tbl In CurrentDb.TableDefs If tbl.Name = TableName Then tmp = True End If Next tbl DoesTableExist = tmp
End Function
Public Function DoesTableReallyExist(TableName As String) As Boolean
arne_v -> Det er det da også - men hvorfor alle disse koder? Når man opretter en tabel ved VBA, får man en "protest" hvis tabelnavnet eksisterer, og så er det jo blot at afbryde oprettelsen, eller køre procedüren forfra!
arne_v -> Enig. Hvis du prøver at oprette et tabelnavn hvor navnet i forvejen eksisterer, får du en fejlmelding. Jeg plejer så at lave en fejlhåndtering med en MsgBox der fortæller om mulige fejl.
'problemet' er vel kun tilstede hvis der er tale om linkede tabeller og i så fald ligger der en eksempeldatabase på www.access.hugopedersen.dk (managejet.zip) som du kunne prøve at tage et kig på. Den er ikke perfekt, men kan give dig nogle ideer om hvordan dette 'problem' kan løses. Jeg bruger selv en modificeret udgave i alle de applikationer jeg har kørende ved kunder hvor jeg ikke er i direkte forbindelse med datafilen.
Hugopedersen -> Problemet eksisterer jo også hvis du f.eks skal eksportere data til Excel. Hvis du har en tabel med x antal poster, og du kun vil eksportere udvalgte data der opfylder et eller flere kriterier, kan det være nødvendigt at sende data til en temporær tabel, der oprettes udelukkende til dette formål, for efter eksporten at slette tabellen igen. Det er derfor jeg har lavet eksemplet (som du for øvrigt også har).
mugs> jamen et eller andet sted har du jo sådan set ret :-) dog gør jeg aldrig det at jeg opretter og sletter tabeller sådan hele tiden og igen. Jeg plejer altid at oprette selv midlertidige tabeller by hand og så tømmer jeg dem bare. Det gør jeg af den simple grund at jeg i de tidlige version 1.1 dage jævnligt oplevede at selv om man oprettede en tabel on the fly og refreshede alt det man kunne, så var tabellen ikke tilgængelig før db'en havde været lukket og åbnet igen. Når man har prøvet det et par gange, så........ ( i øvrigt kan man opleve det samme fænomen på en SQL server med views ! )
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.