Probleme beim Umstieg auf Access 2013 / Access 2013RT
thaenhusen
Gesendet: 18.09.15 09:37
Betreff: RE: Probleme beim Umstieg auf Access 2013 / Access 2013RT


Member

Beiträge: 5

Ort: Thänhusen
Hallo Karl.

Karl Donaubauer - 15.09.15 13:35

thaenhusen - 08.09.15

Wir haben vor auf Access 2013 / Access 2013 Runtime umzusteigen und sind da gerade am Testen.
Dabei habe ich ein Problem mit Formularen, wenn ich hinten rum (VBA-Klasse oder Function) mit einem SQL-Passthorugh
gebauten Recordset die Datenherkunft im Formular tausche.

Funktioniert alles, aber der Fokus ist komplett weg. Ich muss erst mit der Maus in das Formular klicken, damit alles funktioniert.

In Access 2003 funktioniert der Code ohne Probleme.

Ich habe keine Erfahrung mit dem konkreten Problem (ich ändere Datenherkünfte immer vornerum ;-) . Das beste wäre natürlich vermeiden, aber für ob und wie müsste ich in der Anwendung herumtesten. Also beheben/wegtricksen:

Wenn ich richtig verstehe, liegt der "Wndows-Fokus" nicht mehr in Access bzw. in der aktuellen Anwendung.

Wenn dem so ist, könnte es zumindest mit einem kurzen Zwinkern abgehen, wenn ihr den Fokus per API wieder auf die aktuelle Access-Instanz oder auf das aktuelle Formular legt. Code dafür gibt's hier:
http://www.activevb.de/tipps/vb6tipps/tipp0214.html

Also Code in ein Standardmodul kopieren und dann z.B. mit dem aktuellen Formular versuchen (falls der Code im Formular-Klassenmodul steht):

ActivateWindow Me.hwnd


Ich habe jetzt nochmal geforscht. Das Verhalten ist scheinbar seit Access2010 vorhanden. Wenn man aus einem Recordset, dass man per Passtrough gefüllt hat das Recordset des aktuellen (im Fokus liegenden) Formulars ändert,
so ist der Fokus zwar noch auf diesem Formular, sogar auf dem letzten Control, aber nichts reagiert mehr. Es scheint, als würde der Fockus auf dem Rand des letzten Controls liegen.

Da diese Funktionalität für uns in einem zentralen Filterklassenmodul benötigt wird, da ohne Passthrough Recordsets riesige Datenmengen nicht gehandelt werden können habe ich eine Krücke gebaut.

Ich habe ein Formular ohne Inhalt und einer Größe von 0,0011 cm gebaut.

Diese wird bei der Initalisierung der Klasse geöffnet und der Fokus wieder auf das Suchformular gelegt.

Beim ändern des Recordsets setze ich den Fokus auf dieses "Doof"-Formular und wieder zurück.

Beim aufräumen der Klasse wird dann das "Doof"-Formular geschlossen. Das blinken ist für User nicht wahrnehmbar, da die Daten geändert werden.

Vieleicht hilft das ja noch jemandem.

PS: Den Fokus einfach auf ein beliebiges Control zu setzen hilft nicht.

Schöne Grüße
Martin Köster
Top of the page Bottom of the page