Moin zusammen!
Nachdem ich jetzt länger schon am Fliegenfänger hänge, hier mein aktuelles Problem für Euch Experten.
-
Eine .ADP/.ADE Applikation läuft seit etwa 2004 auf Basis von diversen SQL-Servern und MS-Access-Versionen als Frontend-Backend-System ohne Probleme, zuletzt editiert mit Access 2010
-
soll aber jetzt "umgemodelt" werden auf SQL Server "2012" und MS-Access 365 MSO 16.0. 32bit.
-
Auf dem gleichen Server laufen andere Backends unserer Firma ohne bekannte Probleme; allerdings noch im .ADP Format...
-
Verbindung auf die Tabellen mit "ODBC Driver 17 for SQL Server"
-
Umzug der Tabelleninhalte habe ich auf der Reihe; diverse Key's, Constraints etc. sind "eingebaut"; das grundsätzliche Zugreifen funktioniert soweit
-
Von einem Profi wurde die Menüsteuerung auf die Ribbon-Geschichte umgebaut und funktioniert ebenfalls.
-
Die aktuelle Verweis-Lage:

Die Excel etc. Verweise brauchen wir um entsprechende Exporte, Berichte etc. programmgesteuert zu bauen.
-
ADO wird (bis auf eine Prozedur), eingesetzt um die Daten aus den Tabellen zu holen und ggf. zu upzudaten.
-
Es werden mehrere Recordsets und die dazugehörigen Connections global definiert und die Daten-Abrufe aus einem separaten Modul über jeweilige eigene Subroutinen gestartet; diese Routinen haben alle die gleiche Struktur, unterscheiden sich intern nur in den entsprechenden Objekt-Namen der Recordsets und der Connections:
1 2 3 4 5 6 7 8 9 10 11 12 | Public Sub SUB_DBConnectWrite(TabellenName As String )
Dim strFehler As String
Set mRec = New ADODB.Recordset
Set mConn = New ADODB.Connection
Set mConn = CurrentProject.Connection
mRec.Open TabellenName, mConn, adOpenKeyset, adLockOptimistic
On Error GoTo 0: Exit Sub
|
-
Sämtliche Recordset-Objekte und dazugehörigen Connections im gesamten Code der Anwendung werden nach Gebrauch mit ".close" geschlossen und mit "= Nothing" vernichtet; das habe ich lange geprüft. ;-)
-
Die unterschiedlichen Recordsets können parallel aktiv sein, da mehrere Formulare und/oder Dialoge geöffnet sein können.
-
(Ich hoffe, das ist das Wichtigste...)
Jetzt zum Problem:
Dieser hier gezeigte "Haupt-Recordset" wird beim Start der Applikation problemlos mit Änderungen an diversen Feldern zurück auf die jeweilige Tabelle geschrieben. Ein weiteres Recordset, wie gesagt mit gleicher Code-Systematik, wird geöffnet, ein ".AddNew" funktioniert ohne Fehler, Felder können beschrieben werden, aber das folgende ".Update" bringt eine Fehlermeldung "ODBC-Aufruf fehlgeschlagen".
Ich habe diverse im Netz auffindbare Varianten zum Erzeugen von ADO Recordsets getestet, aber entweder handle ich mir damit andere Fehlermeldungen ein, oder es gibt keine Veränderung/Verbesserung.
Frage(n): Auf welche Parameter muss ich noch schauen? Welche "Spezialitäten" sind erforderlich im Gegenastz zur "alten Welt" mit Access 2010? Gibt es eventuell Probleme wenn die Verbindung zum Server mit Performance-Problemen zu kämpfen hat, wie leider bei uns an der Tagesordnung? (Aber das Fehlerbild bleibt immer das Gleiche, egal wann am Tag ich teste...) Was habe ich übersehen?
Vielen Dank im Voraus für Eure Mühe und Rückmeldungen!
Und gute Zeit!
Christoph
|