Avatar billede blueeye97 Nybegynder
14. august 2003 - 13:04 Der er 13 kommentarer og
1 løsning

oprette ny database

Hvordan opretter man en ny tabel (.mdb) i VB. Altså i runtime...
Avatar billede kedde65 Praktikant
14. august 2003 - 13:10 #1
Du kan bruge følgende kode til at udføre det du ønsker. Du skal blot huske at sætte en reference til "Microsoft ADO Ext.2.7 for dll and security"

    Dim ad As New ADOX.Catalog
    ad.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\huji.mdb"
   
VH CK
Avatar billede blueeye97 Nybegynder
14. august 2003 - 13:11 #2
Nu har jeg fundet ud af det. Men nedenstående virker ikke med access2000 baser. Hvad gør jeg da ?

Dim rs As Recordset
Dim myStr As String

myStr = "CREATE TABLE Tablename (navn Text, alder Number);"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(App.Path & "\ordre.mdb")
    db.Execute (myStr)
Avatar billede kedde65 Praktikant
14. august 2003 - 13:13 #3
Den kode jeg gav dig, den virker både til 2000 og XP. Hvis det skal være til 97, så skal det være 3.51 istedet for 4.0 i provider egenskaben.

VH CK
Avatar billede blueeye97 Nybegynder
14. august 2003 - 13:19 #4
Jeg er muligvis dum. Men jeg får en fejl når jeg putter din kode ind.

Dim ad As New ADOX.Catalog giver følgende fejl:

user-defined type not defined
Avatar billede kedde65 Praktikant
14. august 2003 - 13:40 #5
Som jeg skrev i indlægget til at starte med, så skal du sætte en reference til "Microsoft ADO Ext.2.7 for dll and security"

Det gør du i Project menuen.

VH CK
Avatar billede blueeye97 Nybegynder
14. august 2003 - 13:46 #6
nåh ok... kigger lige påed...
Avatar billede blueeye97 Nybegynder
14. august 2003 - 14:10 #7
Nu har jeg gjort som du skrev.  Nedenstående er koden. SP.mdb er en access2000 base og den

.mdb filen bliver oprettet men der bliver da ikke oprettet en tabel deri...

Dim rs As Recordset
Dim myStr As String
Dim ad As New ADOX.Catalog

ad.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sp.mdb"


Tablename = Format(Now, "hhmmss")

myStr = "CREATE TABLE " & Tablename & " (navn Text, alder Number);"
    Set ws = DBEngine.Workspaces(0)
    Set db = ws.OpenDatabase(App.Path & "\sp.mdb")
    db.Execute (myStr)
Avatar billede kedde65 Praktikant
14. august 2003 - 14:12 #8
Nej det var heller ikke kravet jvf. det oprindelige spørgsmål. Men hefter er det blot at lave en ado connection til den nyoprettet database og lave sine tabeller deri.
Avatar billede blueeye97 Nybegynder
14. august 2003 - 14:15 #9
jeg stiller sørme ikke krav men formulerer mig nok forkert :)

Selve .mdb filen har jeg. Det jeg skal, er at oprette en tabel deri...
Avatar billede blueeye97 Nybegynder
14. august 2003 - 15:13 #10
men en ADO conn er altså ikke som jeg har lavet tidligere ?

Hvis jeg benytter ovenstående kan jeg godt lave .mdb filen. Men når jeg forsøger at lave tabellen, får jeg at vide at det er et ukendt databaseformat...
Avatar billede kedde65 Praktikant
14. august 2003 - 15:17 #11
Det er iorden, jag havde min tanker et andet sted :-) Jeg kan se at du faktisk nævner at du vil oprette en tabel, det havde jeg ikke set. Derfor er det nok påå sin plads at det er mig der undskylder lidt :-)

Jo du kan sådan set godt lave den som du har gjort, men det er med DAO som er den gamle version af ADO. Det kan give lidt prob. med nyere versioner som du også har erfaret. Jeg vender lige tilbage med hvordan ellers gør i ADo.

vH CK
Avatar billede blueeye97 Nybegynder
14. august 2003 - 15:19 #12
Fjong :)
Avatar billede kedde65 Praktikant
14. august 2003 - 15:38 #13
Følgende kode gør hvad du vil have.

Private Sub Command1_Click()
    Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
   
    conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB"
    conn.Open
    conn.Execute "CREATE TABLE Tablename (navn Text, alder Number);"
    conn.Close
    Set conn = Nothing
End Sub

Du skal blot sætte en reference til "Microsoft ActiveX data Object 2.7" eller lavere versioner.

VH CK
Avatar billede blueeye97 Nybegynder
14. august 2003 - 23:21 #14
Ok. Fino og tak :)
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging