AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Excel mit ADO auslesen klappt nur sporadisch
Thema durchsuchen
Ansicht
Themen-Optionen

Excel mit ADO auslesen klappt nur sporadisch

Ein Thema von Christian Seehase · begonnen am 23. Feb 2006 · letzter Beitrag vom 23. Feb 2006
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.120 Beiträge
 
Delphi 11 Alexandria
 
#1

Excel mit ADO auslesen klappt nur sporadisch

  Alt 23. Feb 2006, 00:35
Datenbank: Excel • Version: 2003 • Zugriff über: ADO
Moin Zusammen,

vorab:
Ich versuche mich gerade in ADO einzuarbeiten, und benötige gerade den Zugriff auf Excel-Daten, so ist es zu diesem "Einstiegsprojekt" für ADO gekommen.

Hierbei muss ich eine Tabelle einer Excel-Datei (mehrere Arbeitsblätter) über ADO auslesen.
Zum testen verwende ich hierfür eine ADOConnection und eine ADOTable.
Delphi-Quellcode:
  AdoConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                     OpenDialog1.FileName +
                                     ';Extended Properties="Excel 8.0;HDR=No";Persist Security Info=False;';
  AdoConnection1.Open;
Das funktioniert.
Delphi-Quellcode:
  AdoTable1.Connection := AdoConnection1;
  AdoTable1.TableName := '[Tabelle1$]';
  AdoTable1.Active := true;
Soweit ist noch alles gut

Dann wähle ich mir die erste für mich interessante Zeile aus.
  AdoTable1.RecNo := 23; Auch das klappt wie erwartet.
Jetzt gehe ich in einer Schleife durch die Tabelle, um mir die verschiedenen Spalten der Zeilen auszulesen.
Dazu prüfe ich erst einmal, ob die Zelle Inhalt hat
if AdoTable1.FieldByName('F'+IntToStr(i)).Value = null then begin falls ja, wird über den Datentyp die Art der Umwandlung in lesbaren Inhalt bestimmt
case AdoTable1.FieldDefList.FieldDefs[i].DataType of Wird hierbei ein von mir nicht berücksichtiger Typ gefunden, so lasse ich mir den Feldnamen und die Nummer des Typs ausgeben.
Auf diesem Wege konnte ich feststellen, dass die Zellen entweder vom Typ ftDateTime oder vom Typ ftWideString sind.

Das Problem ist:
Nur die erste Spalte (Typ ftWideString), in der Tageskürzel stehen (MO, DI ...), und die dritte (auch ftWideString) in der Zeiten stehen, werden mir korrekt ausgegeben, der Rest der Felder wird mit <leer> gefüllt
In der Datei ist die erste Spalte vom Format "Normal", die zweite hat das Format Datum (tt.mm.jj), und alle restlichen das gleiche Benutzerdefinierte Format ([h]:mm;@), auch die, deren Inhalt in Spalte drei angezeigt werden

Mit D7 und D2006 erhalte ich jeweils das gleiche Ergebnis.

Hat jemand einen Tip für mich, woran das liegen könnte?

Vielen Dank im Voraus.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz