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.
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.
Ich fange das Ereignis des Registerkartenwechsels ab und führe dann einen Refresh durch.
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
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 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
Kommentar veröffentlichen