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 der amvButtonWizard. Hier wollen wir für die zu erzeugenden Schaltflächen 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

Suchen und Ersetzen mit COM-Add-In

Im Beitrag „Besserer Suchen und Ersetzen-Dialog“ haben wir den Dialog zum Suchen und Ersetzen in Access-Formularen nachgebaut und um einige Features ergänzt. Nun wollen wir unseren selbst gebauten Dialog noch für jede Access-Anwendung verfügbar machen. Was liegt da näher, als diessn über das Ribbon aufzurufen? Um eine solche Erweiterung für jede geöffnete Anwendung verfügbar zu machen und so flexibel wie möglich zu sein, verwenden wir dazu ein COM-Add-In. Dieses enthält lediglich die Erweiterung des Ribbons um die benötigten Befehlsschaltlfächen sowie den Code, um von dort aus den „Suchen und Ersetzen“-Dialog zu starten.

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

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

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

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

Tabellen und Abfragen im Unterformular anzeigen

Unterformulare für die Datenblattansicht nutzen wir normalerweise, wenn wir die Daten einer festen Datenquelle passend zu den Daten im Hauptformular anzeigen wollen – zum Beispiel für Kunden im Hauptformular und ihre Bestellungen im Unterformulare. Manchmal möchte man aber auch einfach mal schnell Daten aus beliebigen Tabellen einsehen. Warum dann nicht einfach die Tabelle oder Abfrage in der Datenblattansicht anzeigen? Weil wir dann im Gegensatz zum Haupt-/Unterformular viel weniger Möglichkeiten haben, was den zum Beispiel den Einsatz von VBA angeht. Wenn wir uns etwa die Lösung aus dem Beitrag Markierte Datensätze aus dem Datenblatt einlesen (www.access-im-unternehmen.de/1548) anschauen, können wir dort per VBA die aktuell markierten Datensätze auslesen. Das ist bei Tabellen oder Abfragen, die wir alleinstehend öffnen, nicht möglich. Deshalb zeigen wir in diesem Beitrag zunächst, wie wir beliebige Tabellen oder Abfragen komfortabel per über ein Kombinationsfeld auswählen und dann im Unterformular einblenden können. Anschließend bauen wir noch die Lösung aus dem oben genannten Beitrag ein.

Weiterlesen

Anlagefelder mit mehreren Dateien zum SQL Server

Im Beitrag „Anlage-Feld zum SQL Server migrieren“ (www.access-im-unternehmen.de/1542) haben wir gezeigt, wie Inhalte von Anlagefeldern einer Access-Datenbank in ein varbinary(max)-Feld einer SQL Server-Datenbank übertragen werden können. Dort sind wir davon ausgegangen, dass jedes Anlagefeld immer nur eine Datei enthält, was in vielen Fällen ausreichend ist. Was aber, wenn der Entwickler das Anlagefeld für mehrere Dateien vorgesehen hat – beispielsweise, um ein oder mehrere Produktbilder zu einem Produkt zu speichern? In diesem Fall müssen wir umdenken, denn wir können optimalerweise immer nur eine Datei in einem varbinary(max)-Feld speichern. Zum Speichern mehrerer Dateien müssen wir uns also einen Workaround überlegen. Wie dieser aussieht, schauen wir uns im vorliegenden Beitrag an.

Weiterlesen

Spaltenbreiten und -position in ACCDE speichern

Wenn Sie eine Datenbank an die Benutzer weitergeben, verwenden Sie je nach Zielgruppe eine .accde-Datenbank, also eine Datenbank, in welcher der Entwurf von Tabellen, Abfragen, Formularen, Berichten und VBA nicht mehr möglich ist. Damit schützen wir auch den wertvollen VBA-Code vor den Blicken anderer Menschen. Es bringt aber auch mit sich, dass Änderungen an Eigenschaften wie Spaltenbreiten, Spaltenreihenfolge oder die Sichtbarkeit der Spalten nicht gespeichert werden können, da es sich dabei um Änderungen am Design des Formulars in der Datenblattansicht handelt. Gerade wenn Benutzer die Datenblätter nach ihren eigenen Vorlieben umgestalten und dies bei jedem Öffnen eines Formular erneut erledigen müssen, macht sich schnell Frustration breit. Daher zeigen wir in diesem Beitrag, wie Sie eine Funktion zum Speichern und Wiederherstellen der Spalteneigenschaften von Formularen in der Datenblattansicht programmieren können.

Weiterlesen