Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

neue Access-DB aus vorhandener heraus erstellen





Frage

Ich möchte Tabellen in eine neue Access-Datenbank exportieren. Die Ziel-Datenbank soll jedesmal komplett neu erstellt werden. Wie kann ich das unter VB erreichen?

Antwort 1 von DatenKay

Hi Mike,

im Prinzip: zuerst Datenbank löschen (wenn schon existert), dann neue DB anlegen, dann Daten expotieren.
Genaueres kannst Du in der VB-Hilfe unter "CreateDatabase" (dort auch im Beispiel)und TransferDatabase" finden.
Gruß,
Datenkay

Antwort 2 von Mike Hinz

Könntest du den Hilfe-Text hier posten. Bin in der Firma und meine Hilfe-Funktion ist nicht richtig installiert worden. Hilfe zu createdatabase wird erst gar nicht angezeigt.

Antwort 3 von DatenKay

Hi Mike,

entschuldigung, dass ich so spät antworte, ich wurde aufgehalten.

Der Hilfetext stamm aus AccessXP, ich weiß nicht, ob das so auch in anderen Versionen geht.
Gruß,
DatenKay

[Quote]
CreateDatabase-Methode


Erstellt ein neues Database-Objekt, speichert die Datenbank auf der Festplatte und gibt ein geöffnetes Database-Objekt (nur Microsoft Jet-Arbeitsbereich) zurück.

Syntax

Set Datenbank = Arbeitsbereich.CreateDatabase (Name, Gebietsschema, Optionen)

Die Syntax der CreateDatabase-Methode besteht aus folgenden Teilen.

Teil Beschreibung
Datenbank Eine Objektvariable, die das zu erstellende Database-Objekt darstellt.
Arbeitsbereich Eine Objektvariable, die das bestehende Workspace-Objekt darstellt, das die Datenbank aufnehmen wird. Wenn Sie Arbeitsbereich nicht angeben, verwendet CreateDatabase das voreingestellte Workspace-Objekt.
Name Ein String, der bis zu 255 Zeichen lang sein kann, der den Namen der zu erstellenden Datenbankdatei angibt. Es kann der vollständige Pfad und Dateiname sein, wie z.B. "C:\db1.mdb". Wenn Sie nicht die Dateinamenerweiterung angeben, wird .mdb angefügt. Sie können auch einen Netzwerkpfad wie "\\Server1\Freigabe1\Verz1\Db1" angeben. Mit dieser Methode können nur .mdb-Datenbankdateien erstellt werden.
Gebietsschema Ein Zeichenfolgenausdruck, der die Sortierreihenfolge zum Erstellen der Datenbank, wie in den Einstellungen angegeben, angibt. Sie müssen dieses Argument angeben, da sonst ein Fehler auftritt.
Sie können für das neue Database-Objekt auch ein Kennwort erstellen, indem Sie die Kennwortzeichenfolgen (beginnend mit ";pwd=") mit einer Konstanten des Gebietsschema-Arguments verketten, z.B.:
dbLangSpanish & ";pwd=NewPassword"
Wenn Sie die Standardeinstellung Gebietsschema verwenden wollen, aber ein Kennwort eingeben möchten, geben Sie einfach die Kennwortzeichenfolge für das Gebietsschema-Argument ein:
";pwd=NewPassword"
Optionen Optional. Eine Konstante oder eine Kombination aus Konstanten, die eine oder mehrere Optionen angibt, wie unter Einstellungen beschrieben. Sie können Optionen kombinieren, indem Sie die entsprechenden Konstanten aufsummieren.


Einstellungen

Sie können die folgenden Konstanten für das Argument Gebietsschema verwenden, um die mit der CollatingOrder-Eigenschaft festgelegte Sortierreihenfolge von Text für Zeichenfolgenvergleiche anzugeben.

Konstante Sortierreihenfolge
dbLangGeneral Englisch, Deutsch, Französisch, Portugiesisch, Italienisch und Spanisch (Modern)

dbLangArabic Arabisch

dbLangChineseSimplified Vereinfachtes Chinesisch
dbLangChineseTraditional Traditionelles Chinesisch
dbLangCyrillic Russisch
dbLangCzech Tschechisch
dbLangDutch Holländisch
dbLangGreek Griechisch
dbLangHebrew Hebräisch
dbLangHungarian Ungarisch
dbLangIcelandic Isländisch
dbLangJapanese Japanisch
dbLangKorean Koreanisch
dbLangNordic Skandinavische Sprachen (Nur Microsoft Jet-Datenbankmodul, Version 1.0)
dbLangNorwDan Norwegisch und Dänisch
dbLangPolish Polnisch
dbLangSlovenian Slowenisch
dbLangSpanish Traditionelles Spanisch
dbLangSwedFin Schwedisch und Finnisch
dbLangThai Thailändisch
dbLangTurkish Türkisch


Sie können eine der folgenden Konstanten im Argument Optionen verwenden, um anzugeben, welche Version das Datenformat haben soll, und ob die Datenbank verschlüsselt werden soll oder nicht.

Konstante Beschreibung
dbEncrypt Erstellt eine verschlüsselte Datenbank.
dbVersion10 Erstellt eine Datenbank, die das Dateiformat des Microsoft Jet-Datenbankmoduls, Version 1.0, verwendet.
dbVersion11 Erstellt eine Datenbank, die das Dateiformat des Microsoft Jet-Datenbankmoduls, Version 1.1, verwendet.
dbVersion20 Erstellt eine Datenbank, die das Dateiformat des Microsoft Jet-Datenbankmoduls, Version 2.0, verwendet.
dbVersion30 (Voreinstellung) Erstellt eine Datenbank, die das Dateiformat des Microsoft Jet-Datenbankmoduls, Version 3.0, verwendet (kompatibel mit Version 3.5).


Wenn Sie die Verschlüsselungskonstante nicht angeben, erstellt die CreateDatabase-Methode eine unverschlüsselte Datenbank. Sie können nur eine Versionskonstante angeben. Wenn Sie keine Versionskonstante angeben, erstellt CreateDatabase eine Datenbank, die das Dateiformat des Microsoft Jet-Datenbankmoduls, Version 3.0 , verwendet.

Bemerkungen

Die CreateDatabase-Methode erstellt und öffnet eine neue, leere Datenbank und gibt das Database-Objekt zurück. Sie müssen die Struktur und den Inhalt mit weiteren DAO-Objekten ausfüllen. Wenn Sie eine teilweise oder vollständige Kopie einer bestehenden Datenbank erstellen möchten, können Sie die CompactDatabase-Methode verwenden, um eine Kopie zu erstellen, die angepaßt werden kann.
[/Quote]

Antwort 4 von DatenKay

Hi Mike,
Hier Beispiele zu CreateDatabase
Gruß,
DatenKay

[Quote]
CreateDatabase-Methode (Beispiel)

Dieses Beispiel erstellt mit der CreateDatabase-Methode ein neues, verschlüsseltes Database-Objekt.

Sub CreateDatabaseX()

Dim wrkDefault As Workspace
Dim dbsNew As DATABASE
Dim prpLoop As Property

' Standardarbeitsbereich bestimmen.
Set wrkDefault = DBEngine.Workspaces(0)

' Stellen Sie sicher, daß nicht bereits eine Datei
' mit dem Namen der neuen Datenbank existiert.
If Dir("NeueDB.mdb") <> "" Then Kill "NeueDB.mdb"

' Eine neue verschlüsselte Datenbank mit der
' angegebenen Sortierreihenfolge erstellen.
Set dbsNew = wrkDefault.CreateDatabase("NeueDB.mdb", _
dbLangGeneral, dbEncrypt)

With dbsNew
Debug.Print "Eigenschaften von" & .Name
' Properties-Auflistung des neuen Database-
' Objekts enumerieren.
For Each prpLoop In .Properties
If prpLoop <> "" Then Debug.Print " " & _
prpLoop.Name & " = " & prpLoop
Next prpLoop
End With

dbsNew.Close

End Sub
[/Quote]


Antwort 5 von DatenKay

... und hier noch "TransferDatabase"

[Quote]
TransferDatabase-Methode
Siehe auch Betrifft Beispiele Besonderheiten
Die TransferDatabase-Methode führt die TransferDatenbank-Aktion in Visual Basic aus.

Ausdruck.TransferDatabase(Transfertyp, Datenbanktyp, Datenbankname, Objekttyp, Quelle, Ziel, NurStruktur, AnmeldungSpeichern)

Ausdruck Erforderlich. Ein Ausdruck, der eines der Objekte in der Liste Betrifft zurückgibt.

Transfertyp Optionaler AcDataTransferType-Wert.

AcDataTransferType kann einer der folgenden AcDataTransferType-Konstanten entsprechen.
acExport
acImport Standard
acLink
Wenn Sie dieses Argument nicht angeben, wird die Standardkonstante (acImport) verwendet.

Anmerkung Der Transfertyp acLink wird für Microsoft Access-Projekte (ADP) nicht unterstützt.


Datenbanktyp Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen eines der Datenbanktypen angibt, die zum Importieren, Exportieren oder Verknüpfen von Daten verwendet werden können.

Datenbanktypen
Microsoft Access (Standardwert)
Jet 2.x
Jet 3.x
dBase III
dBase IV
dBase 5.0
Paradox 3.x
Paradox 4.x
Paradox 5.x
Paradox 7.x
ODBC-Datenbanken
Die Datenbankformate werden im Makrofenster in der Liste des Aktionsarguments Datenbankformat der TransferDatenbank-Aktion angezeigt.



Datenbankname Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den vollständigen Namen und Pfad der Datenbank angibt, die zum Importieren, Exportieren oder Verknüpfen von Daten verwendet werden soll.

Objekttyp Optionaler AcObjectType-Wert.

AcObjectType kann einer der folgenden AcObjectType-Konstanten entsprechen.
acDataAccessPage
acDefault
acDiagram
acForm
acFunction
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcedure
acTable Standard
Dieses Argument gibt den Typ des Objekts an, dessen Daten importiert, exportiert oder verknüpft werden sollen. Sie können für dieses Argument nur dann einen anderen Wert als acTable angeben, wenn Sie Daten zwischen zwei Microsoft Access-Datenbanken im- oder exportieren. Wenn Sie das Ergebnis einer Auswahlabfrage in Microsoft Access in ein anderes Datenbankformat exportieren, geben Sie acTable an.

Wenn Sie dieses Argument nicht angeben, wird die Standardkonstante (acTable) verwendet.

Anmerkung Die Konstante acDefault, die in der Liste Elemente automatisch auflisten für dieses Argument angezeigt wird, ist für dieses Argument ungültig. Wählen Sie eine der oben aufgeführten Konstanten aus.


Quelle Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen des Objekts angibt, dessen Daten importiert, exportiert oder verknüpft werden sollen.

Ziel Optionaler Variant-Wert. Ein Zeichenfolgenausdruck, der den Namen des importierten, exportierten oder verknüpften Objekts in der Zieldatenbank angibt.

NurStruktur Optionaler Variant-Wert. Verwenden Sie True (–1), um nur die Struktur einer Datenbanktabelle zu importieren oder zu exportieren. Verwenden Sie False (0), um die Struktur der Tabelle sowie deren Daten zu importieren oder zu exportieren. Wenn Sie dieses Argument nicht angeben, wird der Standardwert (False) verwendet.

AnmeldungSpeichern Optionaler Variant-Wert. Verwenden Sie True, um in der Verbindungszeichenfolge einer verknüpften Tabelle den Benutzernamen (ID) und das Kennwort für eine ODBC-Datenbank zu speichern, zu der die Tabelle gehört. Auf diese Weise entfällt die Anmeldung beim Öffnen der Tabelle. Verwenden Sie False, wenn Sie den Benutzernamen und das Kennwort nicht speichern möchten. Wenn Sie dieses Argument nicht angeben, wird der Standardwert (False) verwendet. Dieses Argument ist nur in Visual Basic verfügbar.

Hinweise
Weitere Informationen zur Funktionsweise dieser Aktion und ihrer Argumente finden Sie unter dem Thema zur jeweiligen Aktion.

Sie können optionale Argumente in der Syntax weglassen, müssen jedoch in jedem Fall das zum Argument gehörende Komma angeben. Wenn Sie Argumente am Anweisungsende weglassen, entfällt auch das Komma nach dem letzten angegebenen Argument.

Der Administrator einer ODBC-Datenbank kann die Funktion des Arguments Anmeldename speichern deaktivieren, so dass alle Benutzer beim Herstellen einer Verbindung zu einer ODBC-Datenbank ihren Anmeldenamen und ihr Kennwort jedesmal neu eingeben.

Anmerkung Sie können eine Verknüpfung auch unter Verwendung von ActiveX-Datenobjekten (ADO-Objekten) erstellen. Sie verwenden dazu die ActiveConnection-Eigenschaft des RecordSet-Objekts.

Beispiel
Dieses Beispiel importiert den Bericht NW-Umsätze für April aus der Microsoft Access-Datenbank NWVERKÄUFE.MDB in den Bericht Gesamtumsätze für April in die aktuelle Datenbank.

DoCmd.TransferDatabase acImport, "Microsoft Access", _
"C:\My Documents\NWSales.mdb", acReport, "NW Sales for April", _
"Corporate Sales for April"
Dieses Beispiel bindet die Tabelle Authors einer ODBC-Datenbank in die aktuelle Datenbank ein.

DoCmd.TransferDatabase acLink, "ODBC Database", _
"ODBC;DSN=DataSource1;UID=User2;PWD=www;LANGUAGE=us_english;" _
& "DATABASE=pubs", acTable, "Authors", "dboAuthors"
[/Quote]

Antwort 6 von Mike Hinz

Danke für die ausführlichen Postings. Werde mich jetzt mal ranmachen und versuchen es mit dieser Hilfe hinzubekommen!

Antwort 7 von Mike Hinz

Hast du das Beispiel mal ausprobiert?

Ich bekomme schon eine Fehlermeldung bei

Dim wrkDefault As Workspace

Könntest du mal schauen, welche Verweise bei deinem VBA-Editor aktiv sind? Ich werde den Verdacht nicht los, das meine Office-Installation in der Firma der letzte Sch... ist.



Antwort 8 von DatenKay

Bei mir (AccessXP)geht das Beispiel, ich habe es in eine Public Funktion umgewandelt, die ich über einen Formularbutton aufrufe. Allerdings gibt's beim Enumerieren einen Fehler
"Operation wird für diesen Ojekttyp nicht unterstützt", was sich wohl nur auf ein Element in der Property-Auflistung bezieht, denn andere Properties werden ausgegeben.
Scheint bei Dir wirklich an der Office-Installation zu liegen.

In meinen Verweisen steht nur "Verweis auf Utility.mda".

Gruß,
Datenkay

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: