Microsoft Excel

Herbers Excel/VBA-Archiv

Create Table Problem

Betrifft: Create Table Problem von: JoKu
Geschrieben am: 30.10.2014 17:00:11

Hallo

ich will eine Nested Sets Struktur in einer DB über Excel-VBA aufbauen.
Hierzu habe ich ein "einfaches" SQL Statement, dass nicht über VBA funktioniert.
Immer bei dem Execute Kommando bekomme ich eine Syntax-Fehlermeldung.

Wer kann mir helfen, die Syntax für das SQL Statement zu korrigieren?

Private Sub CreateDatabase()

    Dim dbConnectStr As String
    Dim Catalog As Object
    Dim cnt As ADODB.Connection
    Dim dbPath As String

    'Set database name here
    UniqueName = "Test"
    
    dbPath = "J:\Tree " & UniqueName & ".mdb"
    dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";"

    'Create new database
    Set Catalog = CreateObject("ADOX.Catalog")
    Catalog.Create dbConnectStr
    Set Catalog = Nothing

    'Connect to database and insert a new table
    Set cnt = New ADODB.Connection
    With cnt
        .Open dbConnectStr
        
    SQLStr = "CREATE TABLE tree ( " & _
            "[id]    INT(12)      UNSIGNED NOT NULL AUTO_INCREMENT, " & _
            "[name]  VARCHAR(50)  NOT NULL, " & _
            "[lft]   INT(12)      UNSIGNED NOT NULL, " & _
            "[rgt]   INT(12)      UNSIGNED NOT NULL, " & _
            "PRIMARY KEY (id), " & _
            "key [lft] (lft), " & _
            "key [rgt] (rgt) " & _
            ")"
            
    .Execute SQLStr

    End With
    Set cnt = Nothing
End Sub

  

Betrifft: AW: Create Table Problem von: Luschi
Geschrieben am: 30.10.2014 21:20:20

Hallo Joku,

der 'CREATE TABLE...' wird für Access ziehmlich stiefmütterlich von M$ behandelt. So gibt es kein:
- UNSIGNED,
- AUTO_INCREMENT,
- KEY bzw. FOREIGN KEY

siehe http://office.microsoft.com/de-de/access-help/create-table-anweisung-HA001231441.aspx

Aber wenn Du sowieso schon im ADOC.Catalog bist, dann kannst Du das doch weiter mit ADOX machen
siehe dazu:
http://www.vbarchiv.net/tipps/tipp_1306-datenbanken-und-tabellen-mit-adox-erstellen-ado.html
http://allenbrowne.com/func-adox.html

Gruß von Luschi
aus klein-Paris


 

Beiträge aus den Excel-Beispielen zum Thema "Create Table Problem"