Tausendsassa Datenblatt – Teil 2

Ermitteln der Werte für tblFelder

Da nur Textfelder, Kombinationsfelder oder Kontrollkästchen in der Datenblattansicht angezeigt werden sollen, wird die nachfolgende If-Bedingung nur für diese drei Steuerelementtypen ausgeführt. Dann werden die Werte ermittelt, die im darauf folgenden Schritt in der Tabelle tblFelder gespeichert werden sollen: der Formularname, der Steuerelementname, die Breiten und Reihenfolgen sowie die Informationen über die Sichtbarkeit und die Fixierung. Für jedes der betroffenen Steuerelemente wird anschließend ein Datensatz mit dem ermittelten Wert angelegt.

Die Antwort darauf, warum etwa die Variablen Originalbreite und LetzteBreite mit dem gleichen Wert, nämlich der Eigenschaft ColumnWidth des Steuerelements, gefüllt werden, findet sich in den anschließenden Anweisungen zum Anlegen des Datensatzes: Die Routine versucht zunächst, einen neuen Datensatz anzulegen. Dies gelingt natürlich nur, wenn für die Kombination aus Feld und Formular noch kein Datensatz vorhanden ist, also wenn die Daten zum ersten Mal angelegt werden. In dem Fall sind Originalbreite und letzte Breite natürlich identisch.

Ist schon ein Datensatz vorhanden, deutet das darauf hin, dass das Formular bereits einmal geöffnet wurde. Das heißt, dass auch die Originalbreiten und die Originalreihenfolge schon gespeichert sind; es müssen also nur noch die zuletzt verwendeten Einstellungen gespeichert werden.

Das Vorhandensein des Datensatzes wird nicht gesondert überprüft, sondern es wird einfach versucht, den Datensatz neu zu schreiben – ist der Datensatz schon vorhanden, löst dies einen entsprechenden Fehler aus. Nur in diesem Fall kommt die zweite SQL-Anweisung zum Aktualisieren der Informationen für das aktuelle Steuerelements zum Zuge. Diese wiederum schreibt nur die zuletzt gültigen Werte zurück.

Zusammengefasst bedeutet dies, dass die erste SQL-Anweisung einmal, nämlich vor der Auslieferung des Formulars, ausgeführt wird, und die zweite SQL-Anweisung den Regelfall darstellt – in dem die aktuellen Parameter der Steuerelemente gespeichert werden.