Verwendung von ADOX mit Excel-Daten von Visual Basic oder VBA

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 303814 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

ActiveX Data Objects Extensions für Datendefinitionssprache und Sicherheit (ADOX) bietet (ActiveX Data Objects) Entwicklern, das die Funktionen, die in Datenzugriffsobjekte (DAO) programmgesteuert Bearbeiten von Datenbanken, Tabellen, Felder und andere Datenbankobjekte vorhanden sind. Seit der Veröffentlichung des Microsoft OLE DB-Providers für Jet Version 4.0, die ISAM-Treiber unterstützt, die die Jet-Datenbankmodul mit desktop Datenbanken als Microsoft Access verwendet wurden ADO-Entwickler können ADO und ADOX mit Microsoft Excel-Arbeitsmappen und Arbeitsblätter verwenden.

Da ein Excel-Arbeitsblatt keiner herkömmlichen Datenbank ist, hat jedoch ADO einige Einschränkungen bei Verwendung mit Excel. im insbesondere viele ADOX-Methoden entweder nicht funktioniert oder geben unerwartete Ergebnisse, wenn Sie mit Excel verwendet werden Dieser Artikel beschreibt viele der Einschränkungen von ADOX und Excel. Weitere Informationen zum Verwenden von ADO mit Excel finden Sie die Artikel der Microsoft Knowledge Base:
257819Verwendung von ADO mit Excel-Daten von Visual Basic oder VBA
Dieser Artikel ist in die folgenden Abschnitte unterteilt:

Hinweis : die Tests für diesen Artikel auf Microsoft Windows 2000 Server Service Pack 2 (SP2) mit Microsoft Data Access Components (MDAC) 2.6 SP1, Microsoft Visual Basic 6 SP5 und Microsoft Excel 2002 (XP) durchgeführt wurde. Dieser Artikel kann nicht bestätigen oder Unterschiede im Verhalten, die Benutzer mit unterschiedlichen Versionen von Windows, MDAC, Visual Basic oder Excel möglicherweise erläutern.

Weitere Informationen

ADOX-Kataloge

Im ADOX-Objektmodell, das Katalog -Objekt stellt eine Datenbank oder im Falle von Excel, einer Arbeitsmappe.
  • Sie können ein ADO- Connection -Objekt oder die Verbindungszeichenfolge erstellen oder öffnen Sie ein Catalog -Objekt. Im folgenden Codebeispiel wird veranschaulicht, wie Book1.xls als ein ADOX Katalog geöffnet:
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    					
  • Das Catalog -Objekt verfügt über eine Methode Erstellen , jedoch keine Delete -Methode.

Erstellen eines Katalogs

Die Create -Methode der ADOX Catalog -Objekt können Sie eine neue Excel-Arbeitsmappe erstellen. Wenn Sie versuchen, dies tun, wird sinngemäß folgende Fehlermeldung:
Vorgang ist für diesen Objekttyp nicht unterstützt.
Sie können jedoch eine neue Arbeitsmappe erstellen, durch angeben einen neuen Arbeitsmappe Dateinamen für Ihren Katalog und mindestens eine Tabelle anfügen, an den neuen Katalog mit den unten beschriebenen Techniken. Diese Methode erstellt eine neue Arbeitsmappe mit nur den Arbeitsblättern, die Sie als ADOX Tabellen erstellt haben, mit anderen Worten, die Standardanzahl von leeren Blättern, die für eine neue Excel-Arbeitsmappe über das Excel- Optionen -Dialogfeld angegebene nicht hinzugefügt werden.

ADOX-Tabellen

ADOX- Table -Objekts entspricht eines der Excel-Objekten (d. h., ein Arbeitsblatt oder einem Bereich) aus, die als Container für Daten dienen können.

Erstellen einer Tabelle

ADOX können Sie neue Tabellen in Excel erstellen. Da Sie eine Tabelle erstellen können, ohne auch Spalten erstellen, wird der Beispielcode im Abschnitt "ADOX Columns" angezeigt.
  • Erstellen einer neuen ADOX-Tabelle erstellt ein neues Arbeitsblatt und eines neuen benannten Bereichs auf dem neuen Arbeitsblatt mit dem angegebenen Namen. Die neuen benannten Bereichs umfasst nur die Spaltenüberschriften. Wenn Sie eine Tabelle (Arbeitsblatt) mit dem Namen MyTable mit zwei Spalten, einen benannten Bereich MyTable, definiert als MyTable erstellen, z. B.! $ A $ 1: $ B $ 1, wird ebenfalls erstellt.
  • Sie können ein Tabellenname, der ein Leerzeichen enthält angeben; ADOX ersetzt jedoch den Platz mit einem Unterstrich im Arbeitsblatt und Bereich Feldnamen, die Sie erstellen.
  • Das neue Arbeitsblatt wird erstellt, als das letzte Blatt in der Arbeitsmappe, folgt die Standardanzahl von leeren Seiten, die für eine neue Arbeitsmappe in Excel-Optionen angegeben sind.
  • Wenn Sie versuchen, eine neue Tabelle zu erstellen, wenn die Arbeitsmappe in Excel geöffnet ist, wird sinngemäß die folgende Fehlermeldung:
    Nicht spezifizierter Fehler.
  • Wenn Sie versuchen, eine Tabelle erstellen, die keine Spalten definiert wurde, scheint erfolgreich, aber tatsächlich nichts erstellt.
  • Wenn Sie versuchen, den Namen einer vorhandenen Tabelle ändern, wird sinngemäß die folgende Fehlermeldung:
    Vorgang ist für diesen Objekttyp nicht unterstützt.

Löschen einer Tabelle

Sie können ADOX Löschen einer Tabelle (Arbeitsblatt) oder benannten Bereich in Excel, unabhängig davon, ob ADOX erstellt.
  • Wenn Sie versuchen, das Arbeitsblatt (MyTable $) löschen, scheint erfolgreich ohne Fehler ausgeführt, das Arbeitsblatt bleibt jedoch in der Arbeitsmappe. Sie können die Delete -Methode wiederholt ohne Fehler aufrufen, aber es hat keine Auswirkungen.
  • Wenn Sie versuchen, löschen Sie den Bereich (MyTable) scheint erfolgreich ohne Fehler ausgeführt, der Bereich bleibt jedoch in der Arbeitsmappe. Wenn Sie versuchen, den Bereich ein zweites Mal zu löschen, wird jedoch Fehler 3265:
    Element kann nicht entsprechenden auf den angeforderten Namen oder Ordinalzahl in der Auflistung gefunden werden.
  • Wenn Sie versuchen, einen benannten Bereich zu löschen, die benannten Bereichsdefinition bleiben intakt, aber alle Daten in dem Bereich gelöscht.

ADOX-Spalten

ADOX-Spalten die Spalten oder Felder in einer Datenbank entsprechen und übersichtlich entsprechen den Spalten für ein Excel-Arbeitsblatt.

Mit Excel verwendete ADO-Datentypen

ADO erkennt sechs Datentypen in einer Excel-Datenquelle, die Sie zum Erstellen von Spalten verwenden können:

  • AdDouble, geben Sie 5
  • AdDate, geben Sie 7
  • AdCurrency, geben Sie 6
  • AdBoolean, geben Sie 11
  • AdVarWChar, geben Sie 202
  • AdLongVarWChar ("Memo"), geben Sie 203

Spalten im Allgemeinen

  • Sie können zusätzliche Spalten zu einer zuvor erstellten Tabelle anfügen, solange in der Tabelle keine Zeilen von Daten enthalten ist.
  • Sie können Spaltennamen angeben, die Leerzeichen enthalten.
  • ADOX erstellt immer Spaltenüberschriften, denen ein einfaches Anführungszeichen ('), z. B. "F1", SP1, vorausgeht ' SP2. Jedoch wird dies nicht angezeigt, ein Problem später verursachen, da der Name ohne die Anführungszeichen abgerufen wird.

Erstellen von Spalten beim Erstellen einer Tabelle

Erstellen von Spalten funktioniert am besten, wenn zur gleichen Zeit ausgeführt wird, die eine neue Tabelle erstellt wird, mithilfe von ADOX.

Der folgende Code erstellt eine neue Tabelle (Arbeitsblatt), die zwei Spalten (eine numerische und ein Text) enthält:
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim col As ADOX.Column
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    Set tbl = New ADOX.Table
    tbl.Name = "TestTable"
    Set col = New ADOX.Column
    With col
        .Name = "Col1"
        .Type = adDouble
    End With
    tbl.Columns.Append col
    Set col = Nothing
    Set col = New ADOX.Column
    With col
        .Name = "Col2"
        .Type = adVarWChar
    End With
    tbl.Columns.Append col
    cat.Tables.Append tbl
				

Erstellen von Spalten in ein vorhandenes Arbeitsblatt

Leeres Arbeitsblatt Spalten an eine bereits vorhandene angefügt wird, wird die ungewöhnliche Ergebnisse generiert. Wenn die erste Spalte ADOX Columns-Auflistung der Tabelle hinzugefügt wird, wird ADOX erstellt zunächst einen Spaltenheader mit dem Namen F1 in Spalte A des Arbeitsblattes und dann den neuen ADOX Spaltenheader in Spalte B des Arbeitsblattes erstellt. ADOX-Code zwei neue Spalten fügt führt daher drei Spaltenheader. Wenn Sie versuchen, diese unerwünschte gelöscht erste Spalte aus der Auflistung Spalten, bevor Sie die erste Spalte ADOX anfügen scheint erfolgreich, aber die unerwünschte Spalte ist trotzdem erstellt.

Löschen von Spalten

Sie können eine Spalte aus einer Tabelle ADOX in Excel nicht löschen.
  • Wenn die Spalte keine Daten enthält, dies ohne Fehler erfolgreich angezeigt, aber die Spalte und die Spaltenheader bleiben.
  • Wenn die Spalte Daten enthält, schlägt der Löschvorgang mit den folgenden Fehlermeldung fehl:
    Ungültiger Vorgang.

Ändern des Datentyps einer vorhandenen Spalte

Nach eine Spalte einer Tabelle angehängt wurde wenn Sie versuchen, seine .Type-Eigenschaft auf einen anderen Datentyp festlegen, wird Ihnen folgende Fehlermeldung:
Der Vorgang ist in diesem Zusammenhang nicht zugelassen.

Hinzufügen von Daten zu Excel-Tabellen und Spalten

Wenn Sie ADO-Code mit Excel in Visual Basic-Entwurfsumgebung testen, möglicherweise erstmals, die Sie einem Recordset-Vorgang ausführen folgenden Fehlermeldung angezeigt:
Die ausgewählte Sortierreihenfolge wird nicht vom Betriebssystem unterstützt.
Sie können diese Fehlermeldung ignorieren; dieser Fehler tritt nicht auf, nachdem die Anwendung kompiliert wird. Weitere Informationen finden Sie die Artikel der Microsoft Knowledge Base:
246167PRB: Sortierreihenfolge Sequenz Fehler öffnen ADODB Recordset einmal auf ein Excel-XLS

Hinzufügen von Daten in Excel Spalten von ADOX erstellte

Wenn Sie ADO, verwenden einfügen oder Ändern von Daten in den Tabellen und Spalten, die Sie in Excel mithilfe von ADOX erstellt haben, berücksichtigt ADO die Datentypen, die Sie für diese Spalten angegeben, obwohl es ist nicht klar, wo diese Informationen gespeichert ist.
  • Alle Text-Zeichenfolgenwerte befinden sich ein einfaches Anführungszeichen vorangestellt. Jedoch wird dies nicht angezeigt, ein Problem später verursachen, da der Wert, ohne die Anführungszeichen abgerufen wird.
  • Wenn Sie versuchen, eine Textzeichenfolge in eine Spalte einzufügen, die als numerische oder eine Zahl in eine Text-Spalte definiert ist, wird Fehler 80040e21:
    Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte.

Hinzufügen von Daten zu gewöhnlicher Excel Spalten

Wenn Sie ADO zum Einfügen oder Daten in Excel-Arbeitsblätter oder Bereiche, die nicht erstellt oder geändert, mithilfe von ADOX ändern, werden keine Einschränkungen für den Typ der Daten erzwungen, die Sie einfügen können.
  • Zeichenfolgen werden ohne vorherigen Anführungszeichen gespeichert.
  • Zahlen werden links ausgerichtet. In Excel 2002 werden Zahlen mit der Smart Tag gekennzeichnet, die "Als Text gespeicherte Zahlen" warnt. Dies kann ein Problem später führen beim Arbeiten mit den Daten, insbesondere dann, sofern die Daten in Excel für numerische Analysen gespeichert wurde.

Mithilfe von SQL CREATE, ALTER und DROP-Anweisungen

Für Excel-Datenbankobjekten können Sie Microsoft SQL DDL (Data Definition Language) Anweisungen wie z. B. CREATE, ALTER und DROP ausführen, über eine ADO- Verbindung ergeben die gleichen Ergebnisse wie die entsprechenden ADOX-Methoden, die oben beschrieben werden.

Schlussbemerkung

  • ADOX funktioniert am besten mit Excel, wenn eine neue Tabelle, und die Spalten werden zur gleichen Zeit erstellt.
  • ADO funktioniert am besten mit Excel-Daten, wenn die Daten in einem Arbeitsblatt gespeichert werden, die mithilfe von ADOX erstellt wird.

Eigenschaften

Artikel-ID: 303814 - Geändert am: Dienstag, 13. Juli 2004 - Version: 2.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Keywords: 
kbmt kbdatabase kbhowto kbiisam KB303814 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 303814
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com