|
Member
Beiträge: 17
| Hallo,
am besten schildern wir erstmal unser Szenario und was wir bisher versucht haben:
Wie im ersten Beitrag geschrieben haben wir eine C#-Anwendung, die ein Access-Frontend "steuert" also verschiedene Formulare, Berichte von außen ansteuert. Dies ist ein Auszug von dem "Steuern":
using objAccApp = Microsoft.Office.Interop.Access;
[...anderer Code...]
objAccApp.Application app = new objAccApp.Application();
app.UserControl = false;
app.Visible = false;
app.OpenCurrentDatabase(tpAutoPath, false, "");
app.DoCmd.RunSQL("UPDATE Nicht_Geliefert_Datum SET Nicht_Geliefert_Datum.[Touren-Datum] = '" + tourenDatum.Date.ToString() + "'");
app.DoCmd.OpenForm("Datum_Nicht_Geliefert", objAccApp.AcFormView.acNormal, Type.Missing, Type.Missing, objAccApp.AcFormOpenDataMode.acFormEdit, objAccApp.AcWindowMode.acHidden);
oder beispeilsweise auch direkte SQL-Abfragen die gegen die Access-Datenbank laufen:
public string SetAusgeliefertSingle(Lieferschein ls)
{
string conString = $"Provider=Microsoft.ACE.OLEDB.15.0;data source={tpPtvBePath}";
using (OleDbConnection con = new OleDbConnection(conString))
{
con.Open();
try
{
OleDbCommand cmd = new OleDbCommand("UPDATE Touren SET Ausgeliefert = true WHERE AuftragAH = " + ls.LSNr, con);
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
return ex.Message;
}
}
return string.Empty;
}
Dies funktionierte unter Office 2013 (32bit) fehlerfrei.
Über Microsoft (https://config.office.com/deploymentsettings) haben wir uns den Installer für Office 2019 (32bit) erstellt und auf den Systemen installiert.
Danach funktionierte sowohl das externe Steuern der Access-Anwendung aus der C#-Anwendung als auch die SQL-Abfragen nicht mehr.
Mit der Provider-Version "Microsoft.ACE.OLEDB.16.0" hatten wir ursprnglich als erstes getestet, kamen aber auch damit zu keinem Ergebnis unter Office 2019.
Es wurde also vermutlich irgendein Teil den es unter Office 2013 gab unter Office 2019 nicht mehr mit installiert (für beide Fälle).
Wir haben dann versucht die neueste Database Engine 2016 zu installieren, hier sagt der 32bit-Installer uns aber,
dass wir diesen nicht installieren können, da die Meldung sagt wir haben 64bit-Office Programmteile installiert (ClickToRun - was sich nicht deinstallieren lässt und auch wohl für Office 2019 Installation benötigt wird).
Versuchen wir dann den Database Engine 2016 in der 64bit Version zu instalieren, schlägt dies auch fehl, da wir Office 2019 in 32bit verwenden(und weiterhin verwenden "müssen").
Nur mit der Database Engine 2010 32bit haben wir die Konstellation zum Laufen gebracht, wobei wir das Steuern jetzt schon rausgenommen und anders gelöst haben (einfache Updates auf die Datenbank funktionieren aber trotzdem nur mit der Engine 2010). Für die SQL-Abfragen haben wir dann natürlich die ACE.OLEDB.12.0 genutzt, damit diese funktionieren.
Edited by BMAJ 31.03.23 09:06
| |
|