![]() |
Meldung "Interface not supported" Woher?
Hallo allerseits,
ich bekomme beim Ausführen, oder beim Zugriff auf eine Excel - Datei über Delphi diese Fehlermeldung: "Interface not supported" Allerdings taucht das Problem nur vereinzelt auf. Also nicht auf jedem Rechner! Und blöderweise nicht auf meinem, so dass ich nicht weiß an welcher Stelle der Fehler ist. Wo muss ich anfangen zu suchen? Was bedeutet die Meldung? Vielen Dank. |
Re: Meldung "Interface not supported" Woher?
Hallo!
meine Vermutung: Wenn du die Excel-Datei über die COM-Schnittstelle öffnest, wird dafür ja eine installierte Version von Excel bzw. den Lesekomponenten benötigt. Um eine korrekte Verbindung aufbauen zu können, muss die Schnittstelle ja die "interfaces" vorweisen, über die dein Programm kommunizieren will. Vielleicht liegt es an unterschiedlichen Excel-Versionen, bei denen sich die Schnittstelle ein wenig geändert hat... Es gibt bei ![]() die ohne COM deine Excel-Datei lesen kann. Unterstützt dann natürlich nicht jede Feinheit der Datei... Gruß Pfoto |
Re: Meldung "Interface not supported" Woher?
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Antwort.
Ich weiß leider nicht was du mit COM-Schnittstelle meinst. Ich zeige mal wie ich das mache. So öffne ich Excel: (Das funktioniert noch)
Delphi-Quellcode:
So greife ich auf die Dateien zu: (Hier kommt der Fehler)
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, UMain, StdCtrls, ComCtrls,IniFiles,ExcelXP, ExtCtrls,Contnrs,Systeme,StrUtils, Menus; ... form1.ExcelApplication1.Workbooks.Open(dateiname,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,lcid); form1.ExcelWorkbook1.ConnectTo(form1.ExcelApplication1.Workbooks.Item[ExtractFileName(edit1.Text)]); form1.ExcelWorksheet1.ConnectTo(form1.ExcelWorkbook1.Sheets.Item['Schnittstelle'] as _WorkSheet);
Delphi-Quellcode:
Und so sieht die Fehlermeldung aus: siehe Anhang
uses Windows,Dialogs,SysUtils,Maus,ExcelXP,ComCtrls, Forms;
... Excelapplication1.Workbooks.Item[1].Activate(GetUserDefaultLCID); if ExcelWorksheet1.Range['B3', 'B3'].Value2 = 1 then begin ExcelWorksheet1.Range['B3', 'B3'].Value2 := 0; ExcelWorksheet1.Range['B2', 'B2'].Value2 := aktzahl; ExcelApplication1.Run('makro1'); .... |
Re: Meldung "Interface not supported" Woher?
versuche doch mal, im Detail herauszufinden,
wo der Fehler auftritt... vielleicht bei der Ausführung des Macros
Delphi-Quellcode:
Und wie gesagt, du nutzt ja hier das COM-Prinzip. d.h.
ExcelApplication1.Run('makro1');
Excel dient in diesem Fall als Server, der angesprochen wird. Wenn du deine Software auf beliebigen Rechnern zum Laufen bringen willst, würde ich nicht die Installation von Excel voraussetzen... Schau dir doch mal die von mir empfohlene Komponente an, vielleicht erfüllt sie Deinen Zweck (auch wenn dort natürlich keine Excel-Makros (VBasic?) ausgeführt werden können. Gruß Pfoto |
Re: Meldung "Interface not supported" Woher?
Ok ich werd das versuchen. Danke.
Kannst du mir evtl. noch sagen was für eine Komponente das dann ist? "TmxNativeExcel" ist das die richtige? Vielen Dank. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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