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 eine leere Tabellen-Kopie mittels DAO erstellen?


Verweis auf die Microsoft DAO 3.X Object Library erforderlich

Public Sub TableCopyDAO(strTabname As String)
'*******************************************
'Name:      TableCopyDAO (Sub)
'Purpose:   erstellt eine leere 1:1 Kopie einer Tabelle
'Author:    Thomas Keßler, Anne Berg
'Date:      Mai 06, 2005, 07:08:57
'Inputs:    strTabName=Tabellenname
'Output:
'*******************************************
    On Error Resume Next
    Dim dbs As DAO.Database
    Dim tdfq As DAO.TableDef, tdfz As DAO.TableDef
    Dim fldq As DAO.Field, fldz As DAO.Field
    Dim idxq As DAO.Index, idxz As DAO.Index, fldIndexq As DAO.Field, fldIndexz As DAO.Field
    Dim prpq As DAO.Property, prpz As DAO.Property
    Set dbs = CurrentDb
    Set tdfq = dbs.TableDefs(strTabname)
    Set tdfz = dbs.CreateTableDef(strTabname & "_Temp000")
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    'Codeteil zum hinzufügen der Felder in der neuen
    'Tabelle und zuweisen der DAO-Eigenschaften
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    For Each fldq In tdfq.Fields
        Set fldz = tdfz.CreateField(fldq.Name, fldq.Type, fldq.Size)
        fldz.Attributes = fldq.Attributes
        If fldq.Required Then fldz.Required = True
        If fldq.AllowZeroLength Then fldz.AllowZeroLength = True
        fldz.DefaultValue = fldq.DefaultValue
        fldz.ValidationRule = fldq.ValidationRule
        fldz.ValidationText = fldq.ValidationText
        tdfz.Fields.Append fldz
        tdfz.Fields.Refresh
    Next fldq
    dbs.TableDefs.Append tdfz
    dbs.TableDefs.Refresh
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    'Codeteil zum hinzufügen der Indexes und
    'der Indexfelder und Index-Eigenschaften
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    For Each idxq In tdfq.Indexes
        Set idxz = tdfz.CreateIndex(idxq.Name)
        If idxq.Primary Then idxz.Primary = True
        If idxq.Unique Then idxz.Unique = True
        If idxq.Required Then idxz.Required = True
        If idxq.IgnoreNulls Then idxz.IgnoreNulls = True
        For Each fldIndexq In idxq.Fields
            Set fldIndexz = idxz.CreateField(fldIndexq.Name)
            fldIndexz.Attributes = fldIndexq.Attributes
            idxz.Fields.Append fldIndexz
        Next fldIndexq
        tdfz.Indexes.Append idxz
        tdfz.Indexes.Refresh
    Next idxq
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    'Codeteil zum hinzufügen der Properties der Felder
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    For Each fldq In tdfq.Fields
        Set fldz = tdfz.Fields(fldq.Name)
        For Each prpq In fldq.Properties
            Set prpz = fldz.CreateProperty(prpq.Name, prpq.Type, prpq.Value)
            fldz.Properties.Append prpz
            fldz.Properties.Refresh
        Next prpq
    Next fldq
    '­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
    Set dbs = Nothing
End Sub

Aufruf:

Call TableCopyDAO("tblNeu", "tbl_TestNeu")


würde, in der aktuellen DB, von der Tabelle "tblNeu" eine 1:1 Kopie mit dem Namen "tblTest_Neu" erstellen.
Es wurden alle Felder, Indizies und benutzerdefinierte Eigenschaften kopiert.

 

Ä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.png5.png7.png9.png4.png3.png1.png
Heute463
Gestern486
Diese Woche1780
Dieser Monat8054
Total1579431

  • IP: 54.234.6.167
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

4
Online

29. März 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...