1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

Für 32Bit und 64Bit Office Versionen

Problemstellung:

Wie kann ich ein Feld mittels ADO(X) erstellen?


Verweis auf die Microsoft ActiveX Data Objects 2.X Library erforderlich
Verweis auf die Microsoft ADO Ext. 2.X for DDL and Security Library erforderlich

Sub NewCreateFieldADOX(strTabName As String, strNewFldName As String, _
                       varNewFldTyp As Variant, _
                       Optional intNewFldSize As Integer = 50, _
                       Optional boolNewZeroL As Boolean = False, _
                       Optional strNewDefaultV As String = "", _
                       Optional boolAuto As Boolean = False)
'*******************************************
'Name:      NewCreateField (Sub)
'Purpose:   Erstellt ein neues Feld in der angegebenen Tabelle in der
'           aktuellen Datenbank mittels ADOX
'Author:    Thomas Keßler
'Date:      Januar 09, 2003, 14:05:15
'Inputs:    TabName = Name der neuen Tabelle, NewFldName = Name des neuen Feldes
'           varNewFldTyp = Typ des neuen Feldes,
'           adDate=7, adDouble=5, adInteger=3, adSingle=4, adBoolean=11, adCurrency=6
'           adVarWChar=202, weitere s. OH "DataTypeEnum;"
'           NewFldSize = Grösse des neuen Feldes (nur Textfelder),
'           NewZeroL=Null Zeichenfolge zulässig
'           NewDefaultV = Standardwert, boolAuto=Autowertfeld nur DatenTyp Integer
'Output:
'*******************************************
On Error GoTo Err_NewField
Dim cn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Dim col As New ADOX.Column
Set cn = CurrentProject.Connection
Set cat.ActiveConnection = cn
Set tbl = cat.Tables(strTabName)
Set col.ParentCatalog = cat
    With col
        .Name = strNewFldName
        .Type = varNewFldTyp
        If varNewFldTyp = 202 Or varNewFldTyp = adVarWChar Then
            If intNewFldSize > 255 Then intNewFldSize = 255
            .DefinedSize = intNewFldSize
        End If
        If boolNewZeroL = True Then .Attributes = adColNullable
        If strNewDefaultV <> "" Then .Properties("Default") = strNewDefaultV
        If boolAuto = True And (varNewFldTyp = 3 Or varNewFldTyp = adInteger) Then
            .Properties("Autoincrement") = True
        End If
        tbl.Columns.Append col
    End With
    
Set cat = Nothing
cn.Close
Err_NewField_Exit:
    Exit Sub
Err_NewField:
    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: NewCreateFieldADOX"
    Resume Err_NewField_Exit
End Sub

Aufruf:

Call NewCreateFieldADOX("tblNeu", "Auto_ID", adInteger, , , , True

würde in der Tabelle "tblNeu" ein Feld "Auto_ID" vom Typ Long als Autowert-Feld erstellen.

Call NewCreateFieldADOX("tblNeu", "fld_Bez", 202, 105, , "Test")

würde in der Tabelle "tblNeu" ein Feld "fld_Bez" vom Typ Text mit einer Länge von 105 und dem Standardwert "Test" erstellen.

 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png6.png5.png3.png8.png8.png4.png
Heute122
Gestern243
Diese Woche122
Dieser Monat2066
Total1653884

  • IP: 18.97.9.169
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

09. Dezember 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...