Tausendsassa Datenblatt - Teil 1

Bearbeiten verhindern


Oft kommen Listenfelder zum Zuge statt der Datenblattansicht, die kein Bearbeiten der enthaltenen Daten erlaubt. Fälschlicherweise wird angenommen, dass dies in der Datenblattansicht nicht möglich ist. Tatsächlich geht das sehr wohl. Sie müssen einfach nur die Eigenschaft Recordsettyp des entsprechenden Formulars auf Snapshot einstellen – prompt ist der üblicherweise angezeigte leere Datensatz hinter dem letzten Datensatz verschwunden, und auch der Versuch, die Daten eines vorhandenen Datensatzes zu ändern, schlägt fehl.

Markieren wie im Listenfeld


Ein weiterer eher optischer Grund für den Vorzug von Listenfeldern ist, dass die Auswahl von Datensätzen in der Datenblattansicht nicht intuitiv erscheint. Wählt man im Listenfeld einen Eintrag aus, wird er direkt komplett schwarz hinterlegt. In der Datenblattansicht bewirkt ein Klick auf einen Datensatz lediglich das Setzen der Einfügemarke in dem betreffenden Feld. Das können Sie per VBA leicht ändern – vorausgesetzt, die Ansicht ist nicht zum Bearbeiten der Daten, sondern zum Auswählen vorgesehen. Sie legen einfach für alle in Frage kommenden Steuerelemente eine Prozedur an, die durch das Ereignis Beim Klicken ausgelöst wird. Diese Routinen enthalten lediglich die Anweisung

56DoCmd.RunCommand acCmdSelectRecord

Klicken Sie anschließend auf das Steuerelement, für das Sie eine passende Ereignisprozedur angelegt haben, wird direkt der komplette Datensatz markiert.

Bild 1: Optisch getunte Datenblattansicht im Unterformular.
Bild 1: Optisch getunte Datenblattansicht im Unterformular.

Bei Kombinationsfeldern und Kontrollkästchen funktioniert dies allerdings nicht, hier müssen Sie die Anweisung in die Prozedur eintragen, die durch das Ereignis Maustaste ab ausgelöst wird. Festzuhalten ist, dass diese Vorgehensweise nur zum Markieren jeweils einer Zeile geeignet ist.