Direkt zum Hauptbereich

Microsoft Access: Sporadische #gelöscht-Anzeige in Unterformularen

In einer Microsoft Access-Anwendung, die ich geschrieben habe, werden in einem Formular in mehreren Registerkarten unter anderem zwei Unterformulare verwendet, welche die Ergebnisse von Datenbank-Abfragen erhalten.

Beim Betätigen eines Buttons innerhalb des Formulars werden die Abfragen aufgefrischt und danach stets die erste Registerkarte, die keine Unterformulare enthält, selektiert.

Oftmals kommt es vor, dass nun in den Unterformularen einzelnen Spalten nach einer Auffrischung den Eintrag #gelöscht enthalten, während die anderen Spalten der Unterformulare korrekt aktualisiert werden. 

Da dieses Problem nicht immer auftritt, vermute ich hier eine Race Condition innerhalb von Access.
Ich habe noch nicht heraus bekommen, wie ich dieses Problems lösen kann und verwende ich mir mit folgendem Workaround, um zumindest das Symptom zu eliminieren:

Ich fange das Ereignis des Registerkartenwechsels ab und führe dann einen Refresh durch.

Private Sub Registerkarte_Change()
    Me.UF1_Abfrage.Requery
    Me.UF2_Abfrage.Requery
End Sub

Durch den erneuten, zeitversetzten Requery nach der ursprünglichen Aktualisierung tritt die Race Condition nicht mehr auf, und alle Spalten der beiden Unterformulare werden jetzt korrekt dargestellt.



#msaccess

Kommentare