Thema: Delphi Excel Zugriff mit ADO

Einzelnen Beitrag anzeigen

Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

Excel Zugriff mit ADO

  Alt 5. Aug 2008, 11:07
Hallo zusammen,

ich habe mir hier im Forum folgenden Code zum Zugriff auf Exceldateien mittels ADO kopiert und das funktioniert zum Teil auch ganz gut. Das Problem ist nur, das ich auf die einzelnen Zellen (im Beispiel die Anweisung: "ATable.FieldValues['A1']") einfach nicht zugreifen kann, dann kommt immer "Feld A1 nicht gefunden". Kann hier jemand weiterhelfen?


Delphi-Quellcode:
var
  ACon : TADOConnection;
  ATable : TADOTable;
  AList : TStringList;
  AStr : String;
  v : Variant;
begin
   //Connection öffnen
    ACon := TADOConnection.Create(Self);
    ACon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
        'Provider=Microsoft.Jet.OLEDB.4.0; ' +
        'Data Source=F:\Entwickler-Projekte\HSH\Database\Testmappe.xls;' +
        'Extended Properties=Excel 8.0; ' +
        'Persist Security Info=False';
    ACon.LoginPrompt := False;
    ACon.Open;

    AList := TStringList.Create;
    ACon.GetTableNames(AList);
    ShowMessage(AList.Text);
    //Table öffnen
    ATable := TADOTable.Create(Self);
    ATable.Close;
    ATable.Connection := ACon;
    AStr := Copy(AList[0], 2, Length(AList[0]) - 2);
    ATable.TableName := AList[0];
    ATable.TableDirect := True;
    ATable.Open;
    ATable.First;
    ShowMessage(IntToStr(ATable.RecordCount));
    //Table langlatschen
    while not ATable.Eof do
    begin
      v := ATable.FieldValues['A1'];
      if not VarIsNull(v) then //wert nicht leer mach string draus
      begin
        v := VarAsType(v, varString);
        ShowMessage(v);
      end;
      ATable.Next;
    end;
    FreeAndNil(ATable);
    FreeAndNil(AList);
    ACon.Close;
    FreeAndNil(ACon);
  Mit Zitat antworten Zitat