Listenfeldwerte auswählen, abwählen und auslesen

Das Listenfeld-Steuerelement ist ein sehr praktisches Steuerelement, wenn es um die Darstellung von Listen ohne größere optische Ansprüche geht. Sie zeigen einfach nur Text in Zeilen und Spalten an und die Inhalte sind nicht direkt bearbeitbar. Gegenüber der Datenblattansicht bieten sie aber auch Vorteile, zum Beispiel die Mehrfachauswahl. Dennoch gibt es einige Dinge, die man beachten muss, wenn man dem Benutzer die richtige Auswahlmöglichkeit bereitstellen möchte – und auch das Auslesen kann gegebenfalls unvorhergesehene Ergebnisse liefern, vor allem nach der Aktualisierung der Inhalte. In diesem Beitrag schauen wir uns die verschiedenen Selektionsmöglichkeiten an und zeigen, wie wir diese auslesen können.

Weiterlesen

Einfacher Datenklau durch mangelnde Sicherheit

Wir haben in den letzten Wochen einige Datenbanken von Kunden untersucht und erhebliche Mängel bei der Sicherheit der Daten festgestellt. Primär haben wir uns angeschaut, ob ein Mitarbeiter ohne Weiteres auf die in der Datenbank gespeicherten Daten zugreifen kann. In den meisten Fällen konnte er sich einfach die Backend-Datenbank kopieren und so in den Besitz wichtiger Daten des Unternehmens gelangen. Oft war zumindest das Backend durch ein Kennwort geschützt, sodass man nur über das Frontend auf die Daten zugreifen kann. Ob das sicher ist, schauen wir uns im vorliegenden Beitrag an. Um es vorwegzunehmen: Es ist nicht sicher.

Weiterlesen

Icons in der Datenbank verwalten

Mit den neueren Versionen von Access ab der Version 2010 kann man Icons, die an verschiedenen Stellen der Benutzeroberfläche wie in Bildsteuerelementen oder Schaltflächen angezeigt werden sollen, relativ einfach verwalten. Sie landen nach dem Einfügen in einer Systemtabelle namens MSysResources, die ein Anlagefeld zum Speichern der Bilddateien und weitere Felder für die Metadaten wie Bildname oder Dateiendung enthält. Allerdings ist die Verwaltung nicht perfekt gelöst. Daher stellen wir in diesem Beitrag ein Formular vor, mit dem sich die Bilder wesentlich besser hinzufügen lassen. Außerdem enthält das Formular eine Suchfunktion, mit der sich die Bilder nach dem Namen filtern lassen, sowie eine Übersicht der Bilder, mit der sich die jeweiligen Bilddateien anschauen lassen. Schließlich können wir auch noch den Bildnamen herausfinden, um das gewünschte Icon schnell einer Schaltfläche oder einem Bildsteuerelement zuweisen zu können.

Weiterlesen

Schaltflächen-Matrix per VBA erzeugen

Manchmal benötigt man viele gleichartige Steuerelemente. Ein bekanntes Beispiel ist eine Kalenderansicht, wo man mehrere Wochen mit jeweils sieben Tagen über Schaltflächen anzeigen möchte. Ein aktuelles Beispiel aus dieser Ausgabe ist die Iconverwaltung aus dem Artikel „Icons in der Datenbank verwalten“. Hier wollen wir für die zu erzeugenden Schaltflächen die verfügbaren Icons in drei Reihen mit je 15 Icons anzeigen, damit der Benutzer schnell das gewünschte Icon auswählen kann. In diesem Beitrag zeigen wir, wie man solche Schaltflächen schnell zu einem Formular in der Entwurfsansicht hinzufügen kann.

Weiterlesen

Optimierter „Suchen und Ersetzen“-Dialog: Funktionen

Im Beitrag „Besserer „Suchen und Ersetzen“-Dialog: Grundgerüst“ haben wir das Grundgerüst für einen Ersatz der eingebauten Suchen- und Ersetzen-Funktion von Access erstellt. Im vorliegenden Artikel wollen wir nun die Such- und Ersetzungsfunktionen mit Leben füllen. Dabei werden Sie nicht nur die begonnene Lösung vervollständigen, sondern auch noch Einiges über das VBA-gesteuerte Suchen und Ersetzen in Datenblättern lernen.

Weiterlesen

Individueller Standarddatenbankordner je Datenbank

Eines ärgert mich bereits seit Jahrzehnten: Dass man beim Importieren von Objekten aus anderen Datenbanken über den Assistenten immer wieder neu zum jeweiligen Verzeichnis wechseln muss. Dort ist immer das gleiche Verzeichnis voreingestellt. Dieses kann man zwar ändern und so passend für einen Anwendungszweck in einer Datenbank gestalten, aber beim Importieren in die nächste Datenbank muss man das Verzeichnis wieder neu selektieren. Wie schön wäre es, wenn dieser Ordner zumindest immer auf den Ordner eingestellt wird, in dem sich die aktuelle Datenbank befindet. Noch praktischer wäre es, wenn man für jede Anwendung einen individuellen Ordner einstellen könnte, der automatisch beim Öffnen der Anwendung bereitgestellt wird. Die gute Nachricht ist: Wir haben eine Lösung dafür gefunden, die wir in diesem Beitrag vorstellen – damit sind die beiden genannten Varianten möglich! Wie es geht, lesen Sie auf den folgenden Seiten.

Weiterlesen

Optimierter „Suchen und Ersetzen“-Dialog: Grundgerüst

Der Dialog zum Suchen und Ersetzen für die Suche nach Daten in der Datenblattansicht ist bereits sehr praktisch. Allerdings hatte ein Leser die Anforderung, dass er öfter mit dem Dialog nach den gleichen Ausdrücken sucht, um diese zu ersetzen. Der Dialog hat zwar immer die zuletzt verwendeten zu suchenden und zu ersetzenden Ausdrücke gespeichert und in den Auswahlfeldern angeboten, aber wenn er die Datenbank geschlossen und erneut geöffnet hat, war die Arbeit verloren und die Auswahlfelder waren wieder leer. Also bauen wir diesen Dialog einfach nach und erweitern diesen um eine Funktion, welche die zuletzt verwendeten Einträge dauerhaft speichert und diese nach dem Schließen und Öffnen der Anwendung wieder bereitstellt.

Weiterlesen

Formular-Timer in Access mit VBA

Formular-Timer in Access können ganz unterschiedliche Aufgaben übernehmen. Die beiden Hauptkategorien sind Benutzerinteraktion und das Umgehen von Einschränkungen durch das System. Bei der Benutzerinteraktion geht es darum, in den gewünschten Zeitintervallen Meldungen anzuzeigen, Informationen abzufragen et cetera. Bei den Systemeinschränkungen haben wir es mit Herausforderungen zu tun, bei denen wir zuerst eine asynchrone Aktion auslösen, die Daten für eine weitere Aktion liefern soll. Diese wird dann aber zu schnell ausgeführt, als dass die Daten bereits vorhanden sind. In diesem Fall können wir mit der asynchronen Aktion einen Formular-Timer starten, der die folgende Aktion erst nach einem ausreichend großen Zeitintervall auslöst, sodass alle Aktionen die notwendigen Daten zur Verfügung haben. In diesem Artikel zeigen wir, wie ein Formular-Timer genau mit VBA programmiert wird: Wie wir das Zeitintervall festlegen, wie wir diesen starten und auch, wie wir ihn nach der Erledigung wieder ausschalten.

Weiterlesen

Icons in Ribbon, Kontextmenü, Formular und TreeView

Seit Jahren gibt es im Web einige Module, die das Handling von Bilddateien als Icons in Ribbon, Kontextmenüs, TreeViews oder als Formular-Icon erlauben. Diese sind meist umfangreich und für Laien kaum verständlich. Wir haben die verwendeten Techniken einmal ein wenig einfacher gestaltet, sodass man nicht mehr so viel Code benötigt – und vor allem weniger API-Funktionen. In diesem Artikel lernen Sie, wie Sie Ribbon-Einträge und Kontextmenü-Befehle mit Icons versehen. Als Bonus gibt eine hilfreiche Funktion, mit der wir schnell viele Icons in die Access-Datenbank übertragen können, statt diese Schritt-für-Schritt einzulesen.

Weiterlesen

Automatisches Update per Startdatenbank

Access-Datenbankanwendungen sind bekanntlich niemals fertig. Das ist an sich kein Nachteil, sondern stellt eher einen Vorteil dar: Im Gegensatz zu fertigen Anwendungen, bei denen Anpassungen entweder gar nicht möglich sind oder viel Geld kosten, kann man Access-Datenbanken einfach selbst um neue Funktionen erweitern. Spannend wird das, wenn die Datenbank von mehreren Nutzern eingesetzt wird. Dann stellt sich die Frage: Wie bekomme ich die neue Version einer Datenbank am einfachsten auf die unterschiedlichen Arbeitsplätze? Das gelingt auf verschiedene Arten, und in diesem Beitrag schauen wir uns eine an, mit der das Update vom Arbeitsplatz des Benutzers aus getriggert werden soll.

Weiterlesen