Einzelnen Beitrag anzeigen

Master_BB

Registriert seit: 17. Mai 2003
285 Beiträge
 
Delphi 7 Professional
 
#1

ADO ausgelesene Exceldaten nur teilweise sichtbar

  Alt 11. Jul 2007, 18:23
Hallo,
ich hab mit Delphi7 einen Import von Exceldaten geschrieben.
Dazu verwende ich TADOConnection und TADOTable.

Mein Problem
Es werden nur alle Zelleninhalte von meiner Routine ausgegeben die Strings sind,
oder wo im OpenOffice der Zelleninhalt so angegeben wird das 'zahl da steht.
Normale Zahlen kommen nicht bei mir an, Feld ist leer.
Also Zellen mit Inhalt "'3" geben bei der Routine "3" zurück (alles ohne ", ' ist beabsichtigt).
Bei diesen Zellen zeit mir OpenOffice unten rechts auch SUMME=0 an.
Bei Zellen wo mir OpenOffice SUMME=4433345 anzeigt wo der Zelleninhalt "4433345" ist
kommt bei mir nichts im Delphi an, es wird nicht ausgelesen.

Weiß jemand woran das liegt?
Hier noch der Code, ist nur nen Testapp ergo überseht den schlechten Stil bitte g:

Delphi-Quellcode:
var
  ACon : TADOConnection;
  ATable : TADOTable;
  AList : TStringList;
  AStr : String;
  i : integer;
  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=D:\368113-368163_51.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;
//Table langlatschen
    while not ATable.Eof do
    begin
      v := ATable.FieldValues['F1'];
      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;
Für jeden Tip wäre ich dankbar,
an dem AutoCalcFields von ADOTable liegts nicht, habs mir true und false probiert.

Gruß
Wenn das Meer unruhig ist und der Wind die Wellen treibt, erfreut es, vom Strand aus die Mühen eines Anderen zu beobachten.
  Mit Zitat antworten Zitat