Hallo zusammen,
ich nutze um eine Exceltabelle auszulesen die OLED Technologie:
var excelFile = verbindung_zu_definitionen.getPfad();
var hdr = "Yes"; //hasHeaders ? "Yes" : "No";
var binding_excel = new BindingSource();
string connectionString;
//Prüfen welches Excel OLEDB geladen werden soll
if (excelFile.Substring(excelFile.LastIndexOf('.')).ToLower() == ".xlsx")
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile +
";Extended Properties=\"Excel 12.0 Macro;HDR=" + hdr + ";IMEX=1\"";
else
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile +
";Extended Properties=\"Excel 8.0;HDR=" + hdr + ";IMEX=1\"";
Sämtliche Kollegen nutzen mein Tool ohne Probleme
(Win7 64bit Office 2007)
Nun hat ein Kollege einen neuen PC bekommen mit
Win7 64bit Office 2013
und bei ihm funktioniert der Aufruf nicht mehr,
es kommt der Fehler:> Fehlermeldung:
Microsoft.ACE.OLEDB.12.0 Provider ist nicht auf dem lokalen Computer regisitriert.
Nach meiner Recherche fand ich sämtliche Angaben, dass er folgendes installieren soll:
https://www.microsoft.com/de-de/download/confirmation.aspx?id=23734
Meine Frage,
kann ich da auch irgendwas in mein Programm über den VS2015 einbinden (Verweis o.Ä.), so dass nicht jeder der nun ein neues Office bekommt selbstständig etwas installieren muss?
Wollte schon den Verweis
Microsoft Office 12.0 Access Database Engine Object Library
hinzufügen, das nimmt er allerdings nicht.
Danke im Voraus.
Gruß Frank
ich kenns mit Office-Interop, dasses (auch) drauf ankommt, wie kompiliert ist.
Kompiliert man für 32 bit (x86), dann kennt er Jet-OleDb, kompiliert man für x64, dann kennt er ACE-OleDb.
Kompiliert man "AnyCpu", dann hängts vonne Entwickler-Maschine ab.
Vlt. hat das ja mit deim Prob zu tun, probier mal damit herum.
Der frühe Apfel fängt den Wurm.
ok danke, dann versuch ich das mal.
Irgendeinen Verweis gibt es nicht, den ich einbinden könnte?
Nein.
Du musst den entsprechenden Treiber ( hier die AccessEngine ) installieren.
Es gibt keinen Weg drum herum.
ok schade,
dann müßen die Kollegen, welche ein neues Office bekommen eben die Datei nachinstallieren.
Auch doof gelöst von Microsoft.
Danke für eure Hilfe.
Gruß Frank
Dafür kann Microsoft recht wenig.
Es wäre viel eher einfach doof alles auf einer Maschine zu installieren, was vielleicht 0,01% der Office Benutzer benötigt.
Du als Entwickler musst dafür sorgen, dass die Dependencies vorhanden sind; nicht Microsoft.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code