Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0623: Eine neue Datenbank anlegen

 von 

Beschreibung 

Das nächste Beispiel zeigt, wie man einen neue Datenbank anlegt. Weitere Beschreibungen stehen im SourceCode.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,51 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
' Es muss ein Verweis auf 'Microsoft DAO 3.6 Object Library' gesetzt werden.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"



'Zunächst muss man unter Extras -> Verweise die Microsoft DAO 3.6
'Object Library aktivieren.

'Nachdem Dimensionieren der Variablen wird zunächst mit dem Workspace,
'der Ausgangspunkt zum Anlegen einer Access-Datenbank gelegt.
'Mit der Methode CreateDatabase wird eine leere Datenbank mit dem Titel
'Test.mdb erstellt. Da eine leere Datenbank einen nicht sonderlich weiter
'bringt, folgt das Erstellen einer Tabelle mit der Methode CreateTableDef.
'In diesem Beispiel ist es die Tabelle Artikel. Nun kommt der wichtigste
'Bestandteil einer Tabelle, die Felder.

'Mit CreateField können die wichtigsten Spaltenoptionen eingestellt werden.
'[Name, Typ, Größe] Kleiner Tipp von mir: Die Namen meiner Datafelder
'beginnen immer mit einem Kürzel des Tabellennamens. So kann man später
'sofort erkennen, aus welcher Tabelle die Datenfelder stammen.

'Die so erzeugten Felder können mit tdf.Fields.Append fld der Tabelle
'hinzugefügt und die Tabelle mit dbs.TableDefs.Append tdf in der Datenbank
'gespeichert werden. Nach dem Schließen mit dbs.Close ist die neue Datenbank
'angelegt.

'Datentyp   -  Konstante
'Text          dbText
'Memo          dbMemo
'Byte          dbByte
'Integer       dbInteger
'Long          dbLong
'Single        dbSingle
'Double        dbDouble
'Datum/Uhrzeit dbDate
'Währung       dbCurrency
'Ja/Nein       dbBoolean
'OLE-Objekt    dbLongBinary

Option Explicit

Private Sub Command1_Click()
    Dim wsp As Workspace
    Dim dbs As Database
    Dim rst As Recordset
    
    Dim tdf As TableDef
    Dim fld As Field
    
    Set wsp = DBEngine.Workspaces(0)
    Set dbs = wsp.CreateDatabase(App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & _
        "Test.mdb", dbLangGeneral)
    
    Set tdf = dbs.CreateTableDef("Artikel")
    Set fld = tdf.CreateField("AR_Nr", dbText, 6)
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("AR_Bezeichnung1", dbText, 50)
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("AR_Bezeichnung2", dbText, 50)
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("AR_Einkaufspreis", dbSingle)
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("AR_Verkaufspreis", dbSingle)
    tdf.Fields.Append fld
    
    Set fld = tdf.CreateField("AR_Lieferant", dbText, 50)
    tdf.Fields.Append fld
    
    dbs.TableDefs.Append tdf
    
    dbs.Close
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 8 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von uwe am 09.10.2010 um 22:19

es ist ja schön euer forum aber nicht eines der datenbank beispile die ich mir ge downloadet habe konnte ich starten
in vb 2008 wartet ihr oder flägt ihr eure seite nicht

ist schade


uwe

Kommentar von Frank Bruch am 05.05.2010 um 13:52

Hallo,
Die Beschreibung zum anlegen einer Tabelle ist ok, jedoch
suche ich nach einer Beschreibung Feld double- mit festgelegten 2 Nachkommastellen. Wie mache ich dieses ??

mit freundlichen Grüßen
Frank Bruch

Kommentar von jdm am 06.05.2008 um 09:25

  Dim wsp As Workspace
Dim dbs As Database
Dim rst As Recordset

Dim tdf As TableDef
Dim fld As Field

Private Sub Command1_Click()


Set wsp = DBEngine.Workspaces(0)
Set dbs = wsp.CreateDatabase(Application.CurrentProject.Path & IIf(Right(Application.CurrentProject.Path, 1) = "\", "", "\") & _
"Test.mdb", dbLangGeneral)

Set tdf = dbs.CreateTableDef("Interpret")
tdf.Fields.Append fld

Set fld = tdf.CreateField("Titel", dbText, 50)
tdf.Fields.Append fld

Set fld = tdf.CreateField("Album", dbText, 50)
tdf.Fields.Append fld

Set fld = tdf.CreateField("Jahr", dbSingle)
tdf.Fields.Append fld


dbs.TableDefs.Append tdf
dbs.Close


End Sub


Ich finde den Fehler nicht
Fehlermeldeung "Laufzeitfehler 424" objekt erforderlich

welches object fehlt und wie kann ich es berichtigen..
danke schonmal für hilfe

Kommentar von Matthias Ehlert am 10.08.2006 um 08:45

Bei mir funktioniert

App.Path
nicht.
Ich verwende dafür
Application.CurrentProject.Path


Kommentar von Albert Unger am 13.10.2005 um 17:19

Vielen Dank, hat mir SEHR GEHOLFEN!!
Einfach und schnell richtig zu programmieren!

Kommentar von Patrick am 05.09.2005 um 16:27

dbDecimal geht nicht mit DAO

Kommentar von psyK am 01.05.2005 um 23:05

hm...funktioniert top..

nur wenn ich den code in meinen copier kommt in der zeile.:

Set fld = tdf.CreateField("AR_Nr", dbText, 6)

der fehler "type mismatch"...file wurde noch erstellt o0

Kommentar von lexmind am 16.02.2005 um 20:32

Was mache ich wenn der Datentyp dbDecimal(für Prozente) sein soll... Fehlermedldung Err.Number 3259