1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Für 32Bit und 64Bit Office Versionen

Problemstellung:

Wie kann ich eine Tabelle mittels DAO erstellen?


Verweis auf die Microsoft DAO 3.X Object Library erforderlich

Sub NewCreateTable(strNewTabName As String, strNewFldName As String, _
            strNewFldTyp As String, _
            intNewFldSize As Integer, lngAttributes As Long, _
            Optional boolNewZeroL As Boolean = False, _
            Optional strNewDefaultV As String = "", _
            Optional boolNewReq As Boolean = False, _
            Optional strNewVRule As String = "", _
            Optional strNewVTxt As String = "")
'*******************************************
'Name:      NewCreateTable (Sub)
'Purpose:   Erstellt eine neue Tabelle in der aktuellen Datenbank
'Author:    Thomas Keßler
'Date:      Dezember 01, 2002, 10:00:15
'Inputs:    NewTabName = Name der neuen Tabelle,
'           NewFldName = Name des neuen Feldes
'           NewFldTyp = Typ des neuen Feldes, NewFldSize = Grösse des neuen Feldes,
'           NewZeroL=Null Zeichenfolge zulässig
'           NewDefaultV = Standardwert, NewReq = Eingabe erforderlich ?,
'           NewVRule = Gültigkeitsregel, NewVTxt = Gültigkeitsmeldung
'           VarAttributes=Eigenschaftseinstellungen
'           Attribute:
'           dbBoolean,dbByte,dbInteger,dbCurrency,dbSingle,dbDouble,dbDate,dbLong = 1
'           Autowert=17 (Feld muss aber vom Typ dbLong sein)
'           dbText,dbLongBinary,dbMemo = 2
'           Hyperlink=32770 (Feld muss aber vom Typ dbMemo sein)
'Output:
'*******************************************
On Error GoTo Err_NewTable
    Dim db As DAO.Database
    Dim tblNew As DAO.TableDef
    Dim Fld As DAO.Field
    '   Erstellen Tabelle und ein Feld
    Set db = CurrentDb
    Set tblNew = db.CreateTableDef(strNewTabName)
    Set Fld = tblNew.CreateField(strNewFldName, strNewFldTyp, intNewFldSize)
    '   Anfügen Feld an Auflistung
    tblNew.Fields.Append Fld
    
    '   Einstellen Feldeigenschaften
    Fld.AllowZeroLength = boolNewZeroL
    Fld.DefaultValue = strNewDefaultV
    Fld.Required = boolNewReq
    Fld.ValidationRule = strNewVRule
    Fld.ValidationText = strNewVTxt
    Fld.Attributes = lngAttributes
    
    
    '   Anfügen Tabelle an Auflistung
    db.TableDefs.Append tblNew
  Set db = Nothing
    
Err_NewTable_Exit:
    Exit Sub
Err_NewTable:
    Dim strErrString As String
    strErrString = "Error Information..." & vbCrLf
    strErrString = strErrString & "Error#: " & Err.Number & vbCrLf
    strErrString = strErrString & "Description: " & Err.Description & vbCrLf
    MsgBox strErrString, vbCritical + vbOKOnly, "Error in Sub: NewCreateTable"
    Resume Err_NewTable_Exit
End Sub

Es muss bei der Erstellung einer Tabelle gleichzeitig ein Feld mit erstellt werden!

Aufruf:

Call NewCreateTable("tblNeu", "NeuFeld", dbText, 50, 2, , "Neu")


würde eine Tabelle "tblNeu" mit einem Feld "NeuFeld" vom Typ Text mit einer Größe von 50
und dem Standardwert "Neu" erstellen.

 

Ähnliche Artikel