Operation muss eine aktualisierbare Abfrage verwenden
-
Hi@all
// Importfunktion Datenfile (Excel-Datei) laden if(OpenDialog1->Execute()) { ADOTable1->Active=false; ADOConnection1->Connected=false; String connstr="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source="; connstr += OpenDialog1->FileName; connstr +=";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;ReadOnly=False'"; //HDR erste Zeile mit Spaltennamen ja/nein ADOConnection1->ConnectionString = connstr; ADOConnection1->Connected=true; ADOConnection1->Mode=cmReadWrite; TStringList *TableList = new TStringList; // verfügbare Tabellen ermitteln ADOConnection1->GetTableNames(TableList); // for ( int i=0; i<TableList->Count; i++ ) ShowMessage( TablelIst->Strings[i] ); // Anzeige der verfügbaren Tabellen // Erste verfügbare Tabelle setzen ADOTable1->TableName = TableList->Strings[0]; ADOTable1->ConnectionString = connstr; ADOTable1->Open(); ADOTable1->ReadOnly=false; ADOTable1->Active=true; ADOTable1->Edit(); // verfügbare Spalten in der Tabelle ermitteln TStringList *ItemList = new TStringList; //ListBox1->Visible=true; for (int i=0; i<ADOTable1->FieldCount; i++) ListBox1->Items->Add(ADOTable1->Fields->Fields[i]->FieldName); // Anzeige der verfügbaren Spalten Label14->Caption=""; // MAX/MIN Wert ermitteln und Zellen farblich markieren lastData = ADOTable1->RecNo; MinMax(ADOTable1, 5); }
Beim bearbeiten der Tabelle erhalte ich folgende Fehlermeldung:
EOleException mit der Meldung 'Operation muss eine aktualisierbare Abfrage verwenden'
Thx@all
-
ich schon wieder
Versuch mal folgendes als ConnectionString
Provider=MSDASQL;Persist Security Info=False;Data Source=Excel-Dateien;Initial Catalog=c:\Mappe2.xls
Den Pfad für den Initial Catalog mußt du wieder anpassen.
-
--------------------------- Microsoft Datenverknüpfungsfehler --------------------------- Fehler beim Testen der Verbindung durch einen Fehler beim Initialisieren des Providers. [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben --------------------------- OK ---------------------------
-
hmm, klick mal doppelt auf die ADOConnection, dann dort den unteren Punkt anklicken und auf "Aufbauen...". Dort dann bei "Provider" den mit ODBC nehmen und auf "Weiter". In dem oberen Auswahlfeld (Datenquellenname verwenden) sollte dann unter anderem "Excel-Dateien" stehen, das mußt du auswählen. In der untersten Auswahlbox mußt du mal den Pfad zu deiner Datei angeben, auwählen geht hier nicht. Danach auf "Verbindung testen" und dann sollte das eigentlich gehen. Die Einstellung "Excel-Dateien" sollte normalerweise standardmäßig im Windows enthalten sein.
Wenn das so funktioniert hat, kannst du das zweimal mit "Ok" bestätigen. Danach hast du den aktuellen ConnectionString in der ADOConnection stehen. Wenn du den dort rauskopierst und in deinen Quellcode einfügst, kannst du den dann entsprechend der Pfadangabe anpassen. Aber bitte darauf achten, daß du Initial Catalog und nicht Data Source anpasst.
Wenn das allerdings nicht geht wirds komplizierter
-
In dem oberen Auswahlfeld (Datenquellenname verwenden) sollte dann unter anderem "Excel-Dateien" stehen,
Nix steht da, kann auch nichts eintragen !?
Wie gesagt, das ganze muss auch auf Fremdrechnern ohne Excel, oder ODBC oder sowas funktionieren.
Thx@all
-
es ist doch einfacher als ich dachte, der ConnectionString muß wie folgt sein:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Mappe2.xls;Extended Properties="Excel 8.0;HDR=Yes;";
das IMEX=1; muß raus
-
Kann nicht testen, bekomme auf einmal diese komische Fehlermeldung!?
--------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Turnier.exe ist eine Exception der Klasse EOleException mit der Meldung 'Das Format der Initialisierungszeichenfolge entspricht nicht den OLE DB-Angaben' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe ---------------------------
-
du mußt nur zeile 9 deines geposteten Quellcodes anpassen:
connstr +=";Extended Properties='Excel 8.0;HDR=Yes;[s]IMEX=1;[/s]ReadOnly=False'"; //HDR erste Zeile mit Spaltennamen ja/nein //also connstr +=";Extended Properties='Excel 8.0;HDR=Yes;ReadOnly=False'"; //HDR erste Zeile mit Spaltennamen ja/nein
-
Ja ist mir schon klar, aber ich kann es nicht testen, weil ich wei gesagt plötzlich andere Fehlermeldungen schon beim Start bekomme ???
--------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Turnier.exe ist eine Exception der Klasse EOleException mit der Meldung 'Das Microsoft Jet-Datenbankmodul kann die Datei '' nicht öffnen. Sie ist bereits von einem anderen Benutzer exklusiv geöffnet, oder Sie benötigen eine Berechtigung, um die Daten lesen zu können' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe ---------------------------
obwohl ich an den Programmeinstellungen jetzt nichts geändedr habe und auch die DAtei nirgends geöffnet ist.
Hab auch gerade den Rechner noch mal neu gestartet, aber trotzdem beim Start kommt die Fehlermeldung und beim Import die von oben ???Muss Schluß machen für heute.
DankeThx@all