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

Anlage-Feld zum SQL Server migrieren

Anlage-Felder erlauben es seit Access 2010, Bilder und andere Dateien direkt in -Access-Tabellen zu speichern. Sie bieten ein praktisches Popup-Menü, mit dem man die enthaltenen Dateien verwalten kann. Enthält ein Anlage-Feld Bilddateien, können diese mit dem Bild-Steuerelement von Access direkt in Formularen und Berichten angezeigt werden. Wenn man seine Tabellen zum SQL Server migrieren möchte, wird dies jedoch zu einem Problem: Im SQL Server gibt es nämlich kein Pendant zum Anlage-Feld, sondern nur Alternativen wie beispielsweise den varbinary(max)-Datentyp. Damit können wir zwar die Dateien im binären Format im SQL Server speichern, aber rundherum ergeben sich einige Fragen: Wie zeige ich Bilddateien an, die in einem solchen Feld gespeichert sind? Wie gehe ich mit Anlage-Feldern um, die nicht nur eine Anlage enthalten? All dies erläutern wir in diesem und weiteren Beiträgen.

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

Markierte Datensätze aus dem Datenblatt einlesen

Die Datenblattansicht ist sehr hilfreich, wenn man die Daten aus Tabellen oder Abfragen in tabellarischer Form darstellen möchte. Sie bietet außerdem Funktionen zum Anpassen der Spalten, der Sortierung und auch der Filter. Zusätzlich können wir damit nicht nur einen Datensatz markieren, sondern gleich mehrere. Wir erhalten zwar nicht den Komfort wie im Listenfeld, wo wir nicht nur zusammenhängende, sondern auch einzelne Einträge selektieren können, aber immerhin ist es grundsätzlich möglich, bei gedrückter Maustaste mehr als einen Eintrag auszuwählen. Die Frage ist nur: Was machen wir mit diesem selektierten Bereich? Das Listenfeld bietet eigene Eigenschaften, mit denen wir auf die markierten Elemente zugreifen können. Das ist in der Datenblattansicht nicht der Fall. Das soll uns jedoch nicht davon abhalten, die gewünschten Daten weiterzuverarbeiten.

Weiterlesen