PTA Tab Erstellen

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Du willst eine Tabelle in einer MySQL Datenbank erstellen. Dazu benutzt du am einfachsten eine Pass-Through Abfrage. Das folgende Beispiel erstellt mit Hilfe von VBA eine temporäre Abfrage.

Die Werte, die zum Erstellen der Tabelle notwendig sind, werden im Beispiel als Konstanten angegeben. Natürlich können diese auch variabel gestaltet werden.

Die Optionen des Verbindungsstrings sind MySQL-spezifische Einstellungen, die bevorzugt benutzt werden sollten mit Access.

Lösung

Den folgenden Code in ein Standardmodul kopieren:

Option Compare Database
Option Explicit
 
Private Const con  As String = "ODBC;DRIVER={MySQL ODBC 3.51 Driver};" _
                             & "SERVER=localhost;" _
                             & "DATABASE=Name_Datenbank;" _
                             & "UID=root;" _
                             & "DSN=DSN_Bezeichnung;" _
                             & "PWD=Passwort;" _
                             & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
Private Const MSQL As String = "CREATE TABLE t (c CHAR(20)" & _
                               "CHARACTER SET utf8 COLLATE utf8_bin);"
 
Public Function CreateTableMySQL(strSQL As String, _
                                 ConnectString As String) As Boolean
   On Error GoTo Er
 
   With CurrentDb.CreateQueryDef(vbNullString)
      .Connect = ConnectString 'Die ODBC Verbindung
      .SQL = strSQL            'Das SQL Statement muss MySQL konform sein
      .ReturnsRecords = False  'Wichtig, da keine Daten zurück gegeben werden
      .Execute dbSQLPassThrough
   End With
   CreateTableMySQL = True
 
Er:
End Function
 
Public Sub test()
   If Not CreateTableMySQL(MSQL, con) Then
      MsgBox "Abfrage kann nicht erstellt werden"
      Exit Sub
   End If
End Sub

Aufruf

   Call test