21. oktober 2003 - 20:41Der er
14 kommentarer og 1 løsning
Orette en tabel i en extern db via VBA code.
Er det muligt at oprette en tabel i en ekstern db med VBA code og samtidig tjekke om den allerede eksisterer. Eksisterer den hoppes vidre til oprettelse af næste tabel.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Her er den med advarselsbox også: Dim dbs as database Dim tdf as TableDef, fld as Field Set dbs = OpenDatabase("C:\TESTdb.mdb") If Tabel1 Then Msgbox "Tabel findes oprettes Tabel2" set tdf = dbs.TableDefs!TABLE2 set fld = tdf.CreateField("JaNej",dbBoolean) tdf.Fields.Append fld Else set tdf = dbs.TableDefs!TABLE1 set fld = tdf.CreateField("JaNej",dbBoolean) tdf.Fields.Append fld End if
Du kan bruge denne kode: Public Function OpretTabel() On Error Resume Next Dim db As Database Dim tdef As TableDef Dim fld As Field Set db = OpenDatabase("C:\MinTestdb.mdb") Set tdef = db.TableDefs("Test") If Err Then Set tdef = db.CreateTableDef("Test") With tdef .Fields.Append .CreateField("NytFelt1", dbText) .Fields.Append .CreateField("NytFelt2", dbText) .Fields.Append .CreateField("NytFelt3", dbText) End With db.TableDefs.Append tdef End If End Function
Funktionen kræver at du har en reference til "microsoft DAO 3.x Object Library" (sættes VBA-editoren via menuen Tools->References)
Henrik->Jeg synes ikke, at jeg kan finde en CreateTableDef i din kode! Hvordan får du oprettet tabellen???
Surt tjomas, de var desværre opretted, derfor fik jeg ikke fejl. Men jeg syntes ikke din opretter en anden tabel som min gør. Eller skulle havde gjort. ;o)
'thomasjepsen' din kode virker fint, jeg sider bare og tænker over hvordan jeg får lagt koden sammen. Har nemlig 20 tabeller som jeg skal have oprettet, hvis de ikke findes i forvejen!. I 18 ens back-ends
Public Function OpretTabel(Backend as String, Tabel as String) On Error Resume Next Dim db As Database Dim tdef As TableDef Dim fld As Field Set db = OpenDatabase(Backend) Set tdef = db.TableDefs(Tabel) If Err Then Set tdef = db.CreateTableDef(Tabel) With tdef .Fields.Append .CreateField("NytFelt1", dbText) .Fields.Append .CreateField("NytFelt2", dbText) .Fields.Append .CreateField("NytFelt3", dbText) End With db.TableDefs.Append tdef End If End Function
Derved kan du bare kalde funktioen 18 gange således: Call OpretTabel("C:\MinTestdb.mdb", "MinTabel")
Hvis felterne også er forskellige, så må du lige sige til....
'henrik13' Er imponeret over din hurtighed og din aktivitet på eksperten. Der er mange som nyder godt af det. Meeeeeen 'thomasjepsen' kom med det rigtige svar. TAK FOR HJÆLPEN
'thomasjepsen' Ved godt at spørgsmålet er lukket, men hvis jeg har en "tabel". Hvordan ser VBA koden ud hvis jeg skal overføre denne "tabel" til en ekstern db TEST , men kun hvis den ikke eksisterer i forvejen.
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.