Datenbankobjekte per VBA kopierenIm Datenbankfenster können 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 kopierenWenn Sie eine Sicherheitskopie von einem Datenbankobjekt anlegen oder eine Kopie eines bestehenden Objekts als Grundlage für ein neues Objekt verwenden möchten (das kann beispielsweise bei Formularen oder Berichten viel Zeit sparen), tun Sie das in drei Schritten: - Markieren des zu kopierenden Objekts
- Kopieren per Strg + c
- Einfügen per Strg + v und Angeben des neuen Objektnamens

Objekt per VBA kopierenZum Kopieren von Objekten per VBA gibt es zwei Möglichkeiten. 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 Anführungszeichen. Den Objektnamen hingegen müssen Sie in Anführungszeichen setzen.
In einer Prozedur sähe das folgendermaßen 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 anschließend 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 |