![]() |
Excel-Sheet in Datenbank Überführen
Hallo Forumsmitglieder,
habe ein Problem, benötige Hilfe. Habe die Ergebnisse einer umfangreichen rechnerischen Auswertung in einem Excel-Sheet abgespeichert. Ich möchte nun die Ergebnisse mittels Quickreport ausgeben, was nicht funktioniert (ich bekomme keine Verbindung zu den Daten zustande). Test mit einer Datenbank funktionieren problemlos. Was kann ich tun ? Wer kann helfen ? MfG allarich |
Re: Excel-Sheet in Datenbank Überführen
Verwende ADO als Zugriffsschicht für deine Excel-Tabelle, dann kannst du den Quickreport wie gewohnt einsetzen.
Schau dir dazu mal diesen ![]() Grüße Mikhal |
Re: Excel-Sheet in Datenbank Überführen
Hallo Mikhal,
der Tip ist sehr gut, aber das funktioniert nicht auf allen Rechnern in unserem Netz. Bei einigen Rechnern werden Werte in Text erkannt, bei anderen aber weggelassen. Wo gibt es da noch rechnerspezifische Einstellungen? Mit freundlichen Grüßen Detlef |
Re: Excel-Sheet in Datenbank Überführen
Ist auf allen Rechnern die aktuellste Version der MS Jet installiert? Es kann sein, daß eine veraltete Version nicht alles ausgeben kann, was neuere Excel-Sheets zu bieten haben. Zusätzlich sollte überprüft werden, ob auf allen Rechnern die gleiche (nach Möglichkeit die aktuellste) Version der MDAC (Microsoft Data Access Components) installiert ist.
Quellen für die Jet und die MDAC findest du z.B. auf meiner Homepage unter ![]() Grüße Mikhal |
Re: Excel-Sheet in Datenbank Überführen
Vielen Dank, das war es!
herzliche Grüße von Detlef |
Re: Excel-Sheet in Datenbank Überführen
Hallo mikhal,
danke für Deinen Tip,habe die Verbindung zwischen Excel und Quickreport generell herstellen können(Test erfolgrech verlaufen;ADOConnectionstring). Ich benötige nun aber die Daten aus Tabelle2. Wie kann ich das realisieren ? MfG allarich |
Re: Excel-Sheet in Datenbank Überführen
Wenn du eine ADOConnection verwendest, in die du den Connectionstring einsetzt, kannst du die Methoden GetTableNames und GetFieldNames verwenden, die dir die Namen der vorhandenen Tabellen (bei Excel die Arbeitsblätter) sowie die dazu gehörenden Feldnamen (Spalten) ausgeben.
Der Code-Schnipsel geht davon aus, daß eine AdoConnection conExcel exisitert, in der der gültige ConnectionString eingefügt wurde.
Code:
Grüße
var
slTabellen, slFelder: TStringList; // Stringliste zur Aufnahme der Tabellen- bzw. Feldnamen sConnectionString: String; // Der ConnectionString sTabelle: String; ... conExcel.Connected := False; conExcel.ConnectionString := sConnectionString; conExcel.Connected := True; slTabellen := TStringList.Create; try conExcel.GetTableNames(slTabellen); ... sTabelle := slTabellen[<Index>]; ... slFelder := TStringList.Create; try conExcel.GetFieldNames(sTabelle, slFelder); // alle Felder der Tabelle laden ... finally slFelder.Free; end; ... finally slTabellen.Free; end; ... Mikhal |
Re: Excel-Sheet in Datenbank Überführen
Hallo mikal,
danke für Deinen Hinweis. Leider ist dies für mich nicht konkret genug,so daß ich immer wieder scheitere. Wo ist der Quellcode einzufügen ? Wie ist conexel def ? Sind irgend welche Komponenten auf welchen Forms zu plazieren ? Für eine Antwort wäre ich sehr dankbar! MfG allarich |
Re: Excel-Sheet in Datenbank Überführen
Du hast witer oben geschrieben, daß der ADOConnectionString erfolgreich war, deshalb gehe ich davon aus, daß die ADO-Komponenten besitzt. Zu diesen ADO-Komponenten gehört auch die Komponente TADOConnection. Dieser ADOConnection kannst du den AdoConnectionString übergeben, benennst sie in conExcel um und dann stehen dir u.a. die Methoden GetTableNames und GetFieldNames zur Verfügung.
In dem Code-Schnipsel wird in der Stringliste slTabellennamen die vorhandenen Tabellennamen und in der Stringliste slFeldnamen die zur ausgewählten Tabelle vorhandenen Felnamen aufgenommen. Diese Stringlisten kannst du dir recht einfach in einem Memo-Feld anzeigen lassen (z.B. Memo1.Lines.Assign(slTabellennamen) für die Tabellennamen), um die entsprechenden Namen zu ermitteln. Beachte bitte, daß Excel bei den Tabellenamen immer ein Dollarzeichen an den Namen des Arbeitsblatts anhängt, und du dann bei einem Select-Statement den Tabellennamen in eckige Klammern setzen mußt. Grüße Mikhal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 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-2025 by Thomas Breitkreuz