Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Datenbankobjekte per VBA kopieren

Im Datenbankfenster knnen Objekte wie Tabellen, Abfragen, Formulare oder Berichte mit wenigen Tastenkombinationen kopiert werden. Auch das Kopieren per Code ist nicht besonders aufwendig, aber wie immer bei ausgefallen Anforderungen gilt: Gewusst wie!

Objekte im Datenbankfenster kopieren

Wenn Sie eine Sicherheitskopie von einem Datenbankobjekt anlegen oder eine Kopie eines bestehenden Objekts als Grundlage fr ein neues Objekt verwenden mchten (das kann beispielsweise bei Formularen oder Berichten viel Zeit sparen), tun Sie das in drei Schritten:

  1. Markieren des zu kopierenden Objekts
  2. Kopieren per Strg + c
  3. Einfgen per Strg + v und Angeben des neuen Objektnamens

Objekt per VBA kopieren

Zum Kopieren von Objekten per VBA gibt es zwei Mglichkeiten. Die erste verlangt noch nach dem Namen, unter dem das Objekt gespeichert werden soll und besteht aus den beiden folgenden Befehlen:

    DoCmd.SelectObject <Objektart>, <Objektname>, True

    DoCmd.RunCommand acCmdSaveAs

Dabei erwartet der Parameter Objektart einen Wert wie acTable, acQuery, acForm oder acReport - aber nicht in Anfhrungszeichen. Den Objektnamen hingegen mssen Sie in Anfhrungszeichen setzen.

In einer Prozedur she das folgendermaen aus:

Public Sub KopiereObjekt1(intObjektart As Integer, strObjektname As String)

    DoCmd.SelectObject intObjektart, strObjektname, True

    DoCmd.RunCommand acCmdSaveAs

End Sub

Die zweite Variante erfordert nicht mehr die Angabe des neuen Objektnamens:

Dabei wird das Objekt einfach in eine Textdatei gespeichert und anschlieend wieder importiert. Dabei kann einfach ein neuer Objektname angegeben werden wie in folgender Prozedur:

Public Sub KopiereObjekt2(intObjektart As Integer, strObjektname As String)

    Application.SaveAsText intObjektart, strObjektname, "temp.txt"

    Application.LoadFromText intObjektart, "Kopie von " & strObjektname, _

        "temp.txt"

    Kill ("temp.txt")

End Sub

© 2003-2015 André Minhorst Alle Rechte vorbehalten.