Modale Dialoge nach Wunsch gestalten

Modale Dialoge, also Formulare, die mit dem Befehl DoCmd.OpenForm mit dem Parameter WindowMode:=acDialog geöffnet wurden, sind in vielen Fällen hilfreich: Wir können den aufrufenden Code anhalten, bis das Formular geschlossen oder ausgeblendet wird und so gegebenenfalls auszulesende Werte ermitteln. Oder wir sorgen so dafür, dass der Benutzer nicht an anderen Formularen arbeiten kann, bevor er nicht die Eingabe in dieses Formular abgeschlossen hat. Einen Nachteil haben modale Dialog allerdings: Wir können ihre Rahmenart nicht so einstellen, wie wir es von normal geöffneten Formularen gewohnt sind. Wollen wir also einen modalen Dialog einmal ohne Titelleiste anzeigen, weil er zum Beispiel einfach als Erweiterung neben einem anderen Steuerelement geöffnet werden soll, können wir das so nicht machen. Es gibt allerdings einen Workaround, den wir hier vorstellen.

Weiterlesen

Formular an Mausposition öffnen

Verschiedene Anwendungszwecke machen es erforderlich, dass man ein Formular an einer bestimmten Position öffnet. Und selbst wenn es an sich nicht erforderlich ist, steigert es doch die Ergonomie, wenn zum Beispiel ein Popup-Formular an der Stelle erscheint, an der man den Befehl zum Öffnen betätigt hat – beispielsweise durch einen Klick auf eine Schaltfläche oder auf ein anderes Steuerelement. In diesem Beitrag schauen wir uns an, wie wir unabhängig von anderen Elementen ein Formular öffnen und an der Position des Mauszeiters positionieren können. Dazu benötigen wir nichts außer ein paar Ereignisprozeduren und API-Funktionen.

Weiterlesen

Dateneingabe in Haupt- und Unterformular

Wenn man Daten in die Tabellen einer 1:n-Beziehung eingeben möchte, nutzt man in der Regel ein Haupt- und ein Unterformular. Das Hauptformular nimmt die Daten der Mastertabelle auf, das Unterformular die Daten der Detailtabelle. Wenn man nun keine weiteren Vorsichtsmaßnahmen trifft, kann der Benutzer Daten in das Unterformular eingeben, ohne dass das Hauptformular einen Datensatz anzeigt. Damit erzeugt er Datensätze in der Detailtabelle, die mit keinem Datensatz der Mastertabelle verknüpft sind. Das ist aus mehreren Gründen schlecht – diese schauen wir uns an und zeigen, wie wir das Problem beheben können.

Weiterlesen

Unterformular erst nach Validierung aktivieren

Im Beitrag Dateneingabe in Haupt- und Unterformular (www.access-im-unternehmen.de/1463) haben wir gezeigt, wir man bei der Eingabe neuer Daten verhindert, dass der Benutzer Daten in das Unterformular eingibt, bevor ein Datensatz im Hauptformular angelegt wurde. Das kann man noch vertiefen, wenn das Hauptformular Felder enthält, die validiert werden müssen, bevor der dortige Datensatz gespeichert werden kann. Wir schauen uns an einem einfachen Beispiel an, wie sich eine Validierung auf die Lösung aus dem oben genannten Beitrag auswirkt.

Weiterlesen

Memofelder mit sehr langen Texten

In Feldern, deren Felddatentyp früher Memofeld hieß und heute „langer Text“ genannt wird, kann man bis zu einem Gigabyte an Daten speichern. Allerdings gibt es verschiedene Einschränkung bezüglich der Datenmenge. So kann man je nach der Speichermethode nur sehr viel weniger Zeichen eingeben. Und erst recht kann man nicht den kompletten Inhalt eines Memofeldes in einem Textfeld anzeigen, wenn dieses mehr als eine bestimmte Menge Zeichen enthält. In diesem Artikel schauen wir uns einmal an, welche Einschränkungen es gibt, wie man diese gegebenenfalls umgehen kann und welchen Nutzen Memofelder überhaupt haben, wenn man mehr als den anzeigbaren Text eingibt.

Weiterlesen

Ungebundene Listen und Kombis mit Daten füllen

Im Beitrag „Daten in ungebundenen Formularen bearbeiten“ haben wir gezeigt, wie man die Daten einer Tabelle in einem ungebundenen Formular darstellt und dieses zum Bearbeiten und Anlegen von Datensätzen verwendet. Wenn wir dies konsequent umsetzen wollen, benötigen wir auch eine Möglichkeit, um Daten in Listenform anzuzeigen. Die Datenblatt- oder Endlosansicht fallen aus, also müssen wir uns um Alternativen kümmern. Für die mehrspaltige Listenansicht bietet Access das Listenfeld. Und für die Auswahl von Daten aus Lookup-Tabellen steht das Kombinationsfeld zur Verfügung. Beide sind jedoch, wie auch Formulare, für die Bindung an Tabellen oder Abfragen optimiert. Ungebundene Daten müssen wir dort erst einmal einpflegen. Auf welche Arten das gelingt, zeigt dieser Beitrag.

Weiterlesen

Daten in ungebundenen Formularen bearbeiten

Der übliche Weg, um Daten aus Tabellen in Access-Formularen anzuzeigen, ist die Angabe einer Tabelle oder Abfrage als Datenquelle und das Binden der Steuerelemente an die Felder dieser Quelle. Es gibt jedoch Anwendungsfälle, in denen diese Vorgehensweise nicht das gewünschte Ergebnis liefert. Dann kann man einen alternativen Weg gehen, auch wenn man damit viel Vorteile aufgibt und eine Menge zusätzlicher Aufwand entsteht. In diesem Beitrag erläutern wir, wie man die Daten aus Tabellen oder Abfragen auch ohne direkte Bindung an eine Tabelle oder Abfrage in einem Formular anzeigen, bearbeiten und wieder speichern kann und wie sogar das Anlegen neuer Datensätze möglich ist.

Weiterlesen

Ungebundene List- und ComboBox per Callback

Im Beitrag Ungebundene Listen und Kombis mit Daten füllen (www.access-im-unternehmen.de/1440) haben wir uns angesehen, wir man Kombinations- und Listenfelder über das Zuweisen einer Wertliste oder mit der AddItem-Methode füllen kann. Es gibt noch eine interessante Alternative, von der wir hoffen, dass wir damit sogar noch einige Einträg mehr zu den Listen-Steuerelementen hinzufügen können als mit den oben genannten Methoden. Bei dieser Alternative handelt es sich um eine Technik, die eher stiefmütterlich behandelt wird: Die Callback-Funktion. Wie man diese nutzt und ob man tatsächlich mehr Daten als mit einer Wertliste in ungebundenen Listen-Steuerelementen anzeigen, untersuchen wir in diesem Beitrag.

Weiterlesen

Ungebundene Daten in Übersicht und Detailansicht

In den beiden Beiträgen „Daten in ungebundenen Formularen bearbeiten“ (www.access-im-unternehmen.de/1442) und „Ungebundene Listen und Kombis mit Daten füllen“ (www.access-im-unternehmen.de/1440) haben wir Möglichkeiten aufgezeigt, um Daten ohne die Bindung an Tabellen oder Abfragen in Formularen und Steuerelementen anzuzeigen. In diesem Beitrag gehen wir einen Schritt weiter und kombinieren die beiden Darstellungen einer Übersicht von Daten und der Detailansicht eines ausgewählten Datensatzes. Dabei zeigen wir, wie wir in der Übersicht einen Datensatz auswählen und diesen zum Bearbeiten öffnen, einen neuen Datensatz anlegen oder Datensätze löschen.

Weiterlesen

Bilder im Endlosformular

Neulich fragte mich ein Leser, wie er Bilder aus dem Dateisystem, deren Dateiname oder Pfad in einer Tabelle gespeichert ist, in einem Formular in der Endlosansicht darstellen kann. Das ist seit Access 2010 und dem dort aktualisierten Bildsteuerelement gar nicht mal so kompliziert. In diesem Beitrag zeigen wir die notwendigen Schritte, um in einem Formular mehrere Datensätze mit verschiedenen Bildern auf einen Blick anzuzeigen.

Weiterlesen