Einträge der Navigationstabelle fehlen
Eine an eine Tabelle oder Abfrage gebundene WklNavBar zeigt statt der Zeilen die entworfenen Einträge, oder einige
Zeilen fehlen, haben kein Symbol oder stehen an einer anderen Stelle als erwartet.
Umgebung
WKL Forms Object Library ab 1.25 (Navigationstabelle), auf Access-Formularen.
Ursache
Die Leiste weist eine fehlerhafte Tabelle nie zurück, damit sich das Formular immer öffnet. Stattdessen greift sie auf einen Ersatz zurück oder überspringt etwas:
- Die Quelle ließ sich nicht lesen (zum Beispiel eine unbekannte Tabelle oder ein falsch geschriebener Feldname): Die Leiste zeigt die entworfenen Einträge (
Items). - Die Leiste ist nicht gebunden:
RecordSourceoderKeyFieldist leer. Beide werden benötigt. - Eine Zeile wurde übersprungen: kein Schlüssel, ein Schlüssel, der schon vorkam (die erste Zeile gewinnt; die Groß- und Kleinschreibung spielt keine Rolle), ein übergeordneter Schlüssel, den keine Zeile hat, oder eine Zeile zwei Ebenen tief (die Leiste hat eine Ebene von Gruppen).
- Eine Zeile ist ausgeblendet:
Visibleist Nein. Eine Ja/Nein-Spalte einer Access-Tabelle ist nie Null; eine ohne Wert hinzugefügte Zeile ist deshalb Nein. - Ein Wert wurde ignoriert und die Zeile angezeigt: ein ungültiger Symbolcode, eine ungültige Position oder Art des Ziels; ein Ziel in einer Gruppenzeile (das Wählen eines Gruppenkopfs klappt die Gruppe zu).
- Ein unterer Eintrag steht nicht in seiner Gruppe: Einträge am unteren Rand haben keine Gruppe.
- Die Tabelle hat sich geändert, während das Formular geöffnet war: Die Leiste liest die Quelle, wenn sie ihren Inhalt zum ersten Mal braucht, und danach erst wieder bei
Requeryoder wenn sich eine Bindungseigenschaft ändert.
Lösung
Lesen Sie bei geöffnetem Formular im Direktbereich, was die Leiste gemeldet hat:
Debug.Print Forms!frmShell!navMain.Object.LoadProblems
Die erste Zeile ist gegebenenfalls der Lesefehler; danach folgt je übersprungener oder ohne fehlerhaften Wert angezeigter Zeile eine Zeile in der Form „Zeile 4: …“, gezählt in der Reihenfolge, in der die Zeilen gelesen wurden.
- Prüfen Sie bei einem Lesefehler den Namen in
RecordSourceund die Feldeigenschaften;RequerylöstwkeSourceErrormit dem Text aus, den Access gemeldet hat. - Korrigieren Sie die genannten Zeilen, und rufen Sie danach
Requeryauf oder öffnen Sie das Formular erneut. - Geben Sie
VisibleundEnabledim Tabellenentwurf den Standardwert Ja (die Vorlagentabelle des Designers hat ihn). - Die Designerseite Datenquelle zeigt dieselben Probleme an, während Sie Quelle und Felder auswählen.