VBA/Access: ungebundenes Formularfeld und Dirty-Flag

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • VBA/Access: ungebundenes Formularfeld und Dirty-Flag

    Moin!

    Ich habe folgende Tabellen:

    TAB_A (1:n) TAB_B (1:1) TAB_C (1:n) TAB_D

    Aufgrund spezieller Anforderungen sind nun Datensätze in einem Formular zu verwalten die auf diese vier Tabellen verteilt sind und folgende Relationen haben:

    TAB_A (1:1) TAB_B (1:1) TAB_C (1:1) TAB_D

    Soll heißen: EIN Datensatz im Formular entspricht (zwingend) je einem Datensatz in jeder der vier Tabellen.

    Aus diesem Grund habe ich das Formular mit der TAB_A verbunden (ermöglicht mir das Navigieren, Anzeigen und Erzeugen in TAB_A)

    Die Formularfelder für die Daten der anderen drei Tabellen sind ungebunden.

    Nun zu meinem Problem:

    Wenn ich Daten der (an TAB_A) gebundenen Felder ändere wird das Dirty-Flag des Formulares gesetzt und später somit die Insert- bzw. Update-Events des Formulares ausgelöst. Das ist beim Ändern der Daten in den ungebundenen Formularfeldern allerdings nicht der Fall.

    Klein-Marcus ist nicht blöd und denkt sich, daß es ausreichen sollte dieses (laut Doku schreibbare) Flag in den Events zu setzen die ausgelöst werden wenn die Daten der ungebundenen Felder verändert werden.

    Nur mußte ich dann feststellen, daß das Setzen dieses Flags nicht erlaubt ist, wenn der Fokus auf einem ungebundenen Formularfeld liegt. Die genaue Fehlermeldung habe ich leider im Moment nicht parat.

    Auch das temporäre Setzen des Fokus auf ein gebundenes Formularfeld (natürlich mit Zurücksetzen nach Ändern des Flags) funktioniert nicht, da dann die Änderung des Wertes im ungebundenen Formularfeld nicht mehr funktioniert (seltsames Verhalten!!!).

    Hat da jemand eine Idee???
  • Re: VBA/Access: ungebundenes Formularfeld und Dirty-Flag

    "Marcus Gnaß" schrieb:

    Nur mußte ich dann feststellen, daß das Setzen dieses Flags nicht erlaubt ist, wenn der Fokus auf einem ungebundenen Formularfeld liegt. Die genaue Fehlermeldung habe ich leider im Moment nicht parat.


    Die genaue Fehlermeldung lautet:

    Laufzeitfehler '7768':

    Damit Daten mithilfe dieses Formulares geändert werden können, muss sich der Fokus in einem gebundenen Feld befinden, das geändert werden kann.
  • Ist schon ne Weile her, aber wie hast du dein Problem gelöst?

    Ich habe mir gedacht, da ich vom ungebundene Feld kein Dirty Flag setzen kann, werd ich in der Tablelle ein sekundengenaues Aktualierungsdatum hinzufügen.
    Dieses verstecke ich auf dem Formular und ändere dieses wenn das ungebundene Feld verändert worden ist. Dadurch wird automatisch das Dirty Flag gesetzt.

    Gruß Rahan
  • Fast zwei Jahre ... aber wie es der Zufall will arbeite ich im Moment wieder genau an dieser Anwendung. Ich werde nachher mal nachsehen wie ich das jetzt gelöst hatte.
    Ich glaube ich habe den Versuch das Formular an die Tabelle A zu binden aufgegeben.
    Stattdessen habe ich eine Liste mit den Namen aller Datensätze (eine überschaubare Anzahl!) zur Auswahl eines Datensatzes erstellt.