Announcement

Collapse
No announcement yet.

Automatische Aktualisierung einer "nachgeschlagenen" Spalte

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Automatische Aktualisierung einer "nachgeschlagenen" Spalte

    Hallo,

    ich habe zwei Tabellen (TAB1 und TAB2).
    In TAB1 gibt es die Spalten ID und NAME.
    In TAB2 gibt es die Spalten ID, TAB1_ID und NUMMER.

    Die Spalte TAB1_ID (aus TAB2) verweist auf TAB1. Unter "Nachschlagen" in den Einstellungen von TAB2 habe ich auf also auf das ID-Feld der TAB1 verwiesen. In der TAB2 soll aber in der Listenansicht des Feldes TAB1_ID das Feld NAME (aus TAB1) angezeigt werden.

    Das funktioniert soweit alles. Es wird nach Änderung des NAMEns in TAB1 auch in TAB2 der aktualisierte Wert angezeigt. Mein Problem ist aber folgendes:
    Bei Einfügen eines neuen Datensatzes in TAB1 wird dieser neue Wert NICHT in TAB2 angezeigt. (Bei gelöschten Datensätzen steht "#Geloescht" da.) Kann ich hier irgendwie eine Aktualisierung erzwingen?

    Ich bin für jeden Tipp dankbar,
    MIKE

  • #2
    Hallo Mike

    arbeitest Du direkt mit den Tabellen oder arbeitest Du mit Formularen?
    Sind beide Tabellen gleichzeitig geöffnet?

    "Bei Einfügen eines neuen Datensatzes ..."
    Heißt das, auch nach dem erneuten Öffnen der Tabelle fehlt der angefügte Datensatz?
    Oder Heißt das, das Listenfeld zeigt nur eine bestimmte Anzahl an Datensätzen?

    Wie sieht es mit Deinem Wissen bei Makro und VBA aus?
    Mit welcher Version arbeitest Du?

    Gruß Che

    Comment


    • #3
      Hallo Che,

      danke für Deine Nachfragen, die mal versuche zu beantworten.

      Ich arbeite mit Access 2007, wobei es eine mdb (und keine accdb) ist.

      Das Problem habe ich in Formularen "entdeckt", aber es tritt auch direkt bei den Tabellen auf. D.h. wenn ich beide Tabellen geöffnet habe und in TAB2 im Feld TAB1_ID die Liste öffne, sehe ich alle Einträge aus TAB1. Ändere ich dort das Feld NAME, schlägt diese Änderung direkt auf die Liste in TAB2 durch, d.h. wenn ich dann wieder in TAB2 wechsle und die Liste öffne, hat sich der NAME auch geändert.
      Wenn ich aber in TAB1 einen Datensatz hinzufüge, zu TAB2 wechsle und die Liste öffne, ist der neue Datensatz nicht vorhanden.

      Es sind immer beide Tabellen gleichzeitig geöffnet?
      Das Listenfeld ist nicht auf eine bestimmte Anzahl von Einträgen begrenzt, daher sollten alle angezeigt werden.

      Als ich das Problem innerhalb der Formulare entdeckt hatte, habe ich natürlich versucht, im Code ein Refresh auszuführen. Aber weder Refresh, noch Requery, Repaint oder Recalc haben geholfen. Nur das Schließen und erneute Öffnen der Anwendung hilft.

      Ich bin für jeden Tipp dankbar,
      MIKE

      Comment


      • #4
        ok Mike - 7 ist nicht meine Spielwiese.
        Refresh und Requery sprechen das Formular an, nicht den List-Index (!)

        Versuch mal den hier (natürlich mit Deinen Fakten)
        Hier aktivierst Du die Listbox-Abfrage per Button

        Dim strSQL As String
        strSQL = "SELECT [TabCode].[IDcode], [TabCode].[coTitel]" _
        & " FROM TabCode ;"
        Me!ListBox.RowSource = strSQL

        Gruß Che

        Comment


        • #5
          Hallo Che,

          ich gebe der Liste eigentlich keine RowSource. Die Tabelle TAB2 hat den direkten Verweis auf TAB1.ID. Im Formular ist die Tabelle einfach eingebunden, da muss nichts programmiert werden. Entsprechend nutze ich auch kein Event.

          Letztlich muss ich das Problem direkt im Datenmodell lösen. Dort muss die Aktualisierung stattfinden, dann klappt das auch im Formular.

          MIKE

          Comment


          • #6
            ich verstehe ... ok

            Geh mal bei Deiner Tab2 | Entwicklungsbereich auf die Registerkarte "Nachschlagen".
            Setze den Cursor in die Zeile Datensatzherkunft (also einmal Klick) und drücke anschließend die Taste F1 (die Funktionstaste F!)
            Das führt Dich zu der MS-Hilfe zum Thema Datensatzherkunft bei Tabellenverknüpfungen.
            Mal sehen, was Access 2007 zu dieser Fragestellung zu sagen hat.

            Gruß Che
            Zuletzt editiert von Chevall; 09.12.2009, 11:06. Reason: Grammatik

            Comment

            Working...
            X