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
Weiterlesen...