Excel Mappe via ADOConnection öffnen bzw. via ADOCommand erstellen



  • Hi,

    kann mir bitte jemand verraten, wie ich via ADO eine Mappe/Tabelle erstellen kann?

    Auf eine bestehende Mappe kann ich via Access Database 2010 "Treiber" (OleDB 12.0) zugreifen. Die Tabelle wird im DBGrid angezeigt (ADOTable -> DataSource -> DBGrid), das scheint wohl schon mal zu funktionieren.

    Woran ich scheitere ist, eine Mappe zu erstellen.

    Wenn ich die ADOCOnnection aktiviere, wird die Datei zwar erstellt, aber sobald das Programm wieder geschlossen wird, wieder gelöscht.Bei delphi-praxis.net habe ich gelesen, dass man eine Tabelle mit ADOCommand erstellen kann.

    Wenn ich also ADOCommand benutze, bleibt die Datei beim beenden bestehen, aber: In der ersten Zelle steht dann 123 drin und ein Freund sagt, der Excel die Meldung anzeigt

    Mein bisheriger Code:

    ADOConnection1->Connected = false;
    ADOTable1->Active = false;
    
    AnsiString Provider, Extended, Persist;
    
    AnsiString FileName = "F:\\test.xls";
    
    AnsiString DataSource = "Data Source=" + FileName + ";";
    
    Provider = "Provider=Microsoft.Jet.OLEDB.4.0;";
    Extended = "Excel 8.0;HDR=Yes;";
    Persist = "Persist Security Info=False;Jet OLEDB:Engine Type=35;";
    
    AnsiString ConnectionString = Provider + DataSource + Extended + Persist;
    
    ADOConnection1->ConnectionString = Provider + DataSource + Extended + Persist;
    ADOConnection1->Connected = true;
    
    ADOCommand1->CommandText = "Create Table Tabelle1(id integer, name char(80))";
    
    ADOCommand1->Execute( );
    
    ADOTable1->TableName = "Tabelle1$";
    ADOTable1->Active = true;
    lblCount2->Caption = "Record Count: " + IntToStr( ADOTable1->RecordCount );
    

    "Create Table Tabelle1(id integer, name char(80))"; funktioniert zwar, aber eigentlich möchte ich keine Header. Ich möchte nur, dass die Datei sowie Tabelle1 erzeugt wird, sonst nichts.

    Allerdings gibt es ein weiteres Problem: Wenn ich den Code oben so ausführe und den ADOTable aktiviere, steht im DBGrid nichts drin. Erst wenn ich das Programm beende und die Datei lade, gibt es die beiden Spalten id und name.

    Danke im voraus!


Log in to reply