![]() |
Excel: Workbooks.Open schlägt fehl
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich verwende eine TExcelApplication (ExcelApplication), um eine Excel-Tabelle mit Delphi 7 zu öffnen und Daten zu extrahieren. Auf meinem Rechner (Entwicklungsumgebung, Excel XP installiert) funktioniert auch alles einwandfrei. Auf einem zweiten Rechner (keine Entwicklungsumgebung, Excel 2000) gibt es mit dem Verbinden zu Excel per XLApp.Connect; kein Problem, erst das Öffnen mit XLApp.Workbooks.Open(...) bricht mit einer Fehlermeldung "Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000 fehlgeschlagen." ab bzw. bleibt im try-except-Block hängen. Hier der verwendete Code:
Delphi-Quellcode:
Ich würde mich freuen, wenn ihr Hinweise zur Fehlersuche habt!
try
XLApp.Connect; except MessageDlg('Excel konnte nicht gestartet werden!', mtError, [mbOK], 0); Application.Terminate; end; try XLApp.Workbooks.Open(XLDialog.FileName, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, GetUserDefaultLCID()); except MessageDlg('Die Datei konnte nicht geöffnet werden!', mtError, [mbOK], 0); Application.Terminate; end; XLApp.Quit; XLApp.Disconnect; MessageDlg('Datei wurde geöffnet!', mtInformation, [mbOK], 0); Vielen Dank und viele Grüße, Mamphil PS: Da ich keinen direkten Zugriff auf den Problemrechner habe, habe ich den problembehafteten Code aus dem eigentlichen Programm herauskopiert und hoffe, dass der Fehler auf dem Gerät trotzdem auftreten würde... |
Re: Excel: Workbooks.Open schlägt fehl
Moin Mamphil,
ich denke mal, dass das Problem Execl 2000 ist, denn Excel XP ist eigentlich Excel 2002, also aktueller. Das ist so erstmal das einzige, was mir auffällt. |
Re: Excel: Workbooks.Open schlägt fehl
Hallo,
vielen Dank für deine Antwort. Ich habe jetzt folgenden Grund für das Problem ermitteln können: Die verwendete TExcelApplication aus dem Server-Register heißt dort "ExcelApplication (ExcelXP)", sie ist also scheinbar nur für Excel XP (und hoffentlich höhere) funktionstüchtig. Ich habe ![]() Zitat:
Wenn ja, habe ich mich wahrscheinlich bei der Installation für XP entschieden. Wisst ihr, wie ich meine Delphi-Installation auf Office 2000-Support downgraden kann? Beim Einlegen der Installations-CD konnte ich unter dem Menüpunkt "Installation modifizieren" nichts geeignetes aus- / umwählen. Vielen Dank für eure Hilfe! Mamphil Nachtrag: Laut ![]() |
Re: Excel: Workbooks.Open schlägt fehl
Moin Mamphil,
also ich hab' das mit D7 zuletzt so gemacht, dass ich die entsprechenden Objekte zur Laufzeit erstellt, und nicht auf das Formular gelegt habe (bzw. einmal, um die benötigten Units eingebunden zu bekommen ;-)). So ist es recht einfach statt ExcelXP Excel2000 (oder gar Excel97) einzubinden. |
Re: Excel: Workbooks.Open schlägt fehl
Hi,
vielen Dank für deinen Tipp! Damit konnte ich das Problem lösen: Falls jemand irgendwann einmal dasselbe Problem hat: Ich habe das ExcelApplication-Element aus dem Formular gelöscht, im uses-Block "ExcelXP" in "Excel2000" geändert, eine globale Variable XLApp: TExcelApplication; definiert und vorm "XLApp.Connect;"-try-except-Block folgenden Block eingebaut:
Delphi-Quellcode:
Mamphil
try
XLApp := TExcelApplication.Create(self); except MessageDlg('Excel-Application konnte nicht erzeugt werden!', mtError, [mbOK], 0); Application.Terminate; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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 by Thomas Breitkreuz