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

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

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

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

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