Flexible Schnellsuche

Wer kennt das nicht als Entwickler: Man möchte mal eben schnell in einer Tabelle nach einem bestimmten Datensatz suchen. Und das auch noch wiederholt, sodass man immer noch den Filter entfernen und diesen neu setzen muss – wozu wir die eingebauten Filter-Elemente der Datenblattansicht nutzen. Viel schöner wäre es doch, wenn wir mal eben das Kriterium und weitere Einstellungen über das Ribbon steuern könnten – während wir die Daten beim Filtern betrachten. Genau dazu haben wir uns für den Eigenbedarf eine kleine Schnellsuche gebaut, die wir in diesem Beitrag vorstellen. Das Beste: Selbst wenn Sie gar nicht genau erfahren wollen, wir es funktioniert, finden Sie die Lösung für 32-Bit- und 64-Bit-Access im Download zu diesem Beitrag.

Weiterlesen

Schemata von SQL Server-Datenbanken vergleichen

Es kann in verschiedenen Szenarien sinnvoll sein, einmal den Unterschied zwischen zwei Versionen einer SQL Server-Datenbank zu vergleichen. Gibt es überhaupt Unterschiede? Welche Unterschiede sind das? Wurden Tabellen, Felder, Sichten, gespeicherte Prozeduren oder Trigger hinzugefügt oder entfernt? Wenn wir das herausfinden, können wir zum Beispiel identifizieren, welche Änderungen seit der letzten Veröffentlichung einer Datenbank als Produktivdatenbank in der Entwicklungsdatenbank durchgeführt wurden oder wir können herausfinden, wodurch ein Fehler ausgelöst werden könnte, der seit einem bestimmten Versionsstand immer wieder auftritt. In diesem Beitrag schauen wir uns zunächst einmal an, wie wir die Unterschiede zwischen den Schemata zweier Datenbanken ermitteln können. Dazu nutzen wir die SQL Server Data Tools, die wir in einem anderen Artikel bereits vorgestellt haben.

Weiterlesen

Wie speichert man Objekte und Module in Access?

Auch uns von Access im Unternehmen fallen immer mal wieder Techniken oder Dinge auf, die uns zuvor noch nicht bekannt waren – und die andere Entwickler schon lange wie selbstverständlich nutzen. Wenn uns so etwas auffällt, berichten wir gern darüber, denn: Wenn wir diese Technik noch nicht kennen, gibt es sicher noch andere Leser, die sich über einen neuen Trick freuen. In diesem Fall geht es um das Speichern von Objekten in Access. Wir zeigen erst einmal, wie das Speichern in Access überhaupt funktioniert und danach, welche für uns neue Technik wir dabei noch kennengelernt haben.

Weiterlesen

Optionen einfach in der Registry speichern

In einem weiteren Beitrag namens „Registryeinträge für VBA-Anwendungen“ (www.access-im-unternehmen.de/1508) haben wir dir grundlegenden Techniken für das Speichern von Anwendungsdaten in der Registry vorgestellt. Im vorliegenden Beitrag gehen wir noch einen Schritt weiter und vereinfachen diesen Vorgang, sodass die Befehle zum Lesen und Schreiben der Daten noch einfacher werden. Das Verwalten von Informationen wie beispielsweise von Anwendungsdaten in der Registry ist eine Alternative zum Verwenden einer Optionentabelle oder auch einer Textdatei im Anwendungsverzeichnis. Je nachdem, an wie vielen Stellen man lesend oder schreibend auf diese Daten zugreift, möchte man den Zugriff auf die Registry möglichst einfach gestalten. Dazu stellen wir nachfolgend ein paar geeignete Werkzeuge vor.

Weiterlesen

Fehler in der Runtime von Access finden

Wenn wir eine Datenbank, die unter der Vollversion von Access fehlerfrei läuft, in der Runtime öffnen, kann es zu unerklärlichen Fehlern kommen. Die Runtime verabschiedet sich dann in der Regel mit einer Meldung wie „Die Ausführung dieser Anwendung wurde wegen eines Laufzeitfehlers angehalten.“ Damit können wir natürlich erst einmal nicht viel anfangen. Anlass zu diesem Beitrag ist ein konkretes Problem einer Kundin, deren Anwendung auf der Runtime-Version von Access nicht wie gewünscht funktioniert. Beim Testen der Anwendung in der Runtime kam ich jedoch gar nicht erst soweit wie die Kundin. Es tauchte bereits vorher die besagte Meldung auf. Wie können wir nun herausfinden, was genau den Fehler verursacht und welche Zeile ihn auslöst? Vorgehensweisen dazu stellen wir in diesem Beitrag vor.

Weiterlesen

Fehlerbehandlung per VBA hinzufügen

Eine Fehlerbehandlung ist Teil einer professionellen Datenbankanwendung auf Basis von Microsoft Access. Sobald wir eine Datenbank an einen Kunden oder Mitarbeiter weitergeben, also an einen anderen Benutzer als uns selbst, ist dies praktisch ein Pflichtprogramm. Die Fehlerbehandlung soll den Benutzer über einen Fehler informieren und diesem die Möglichkeit geben, dem Entwickler Informationen über den Fehler zukommem zu lassen. In diesem Beitrag wollen wir die Hauptarbeit bei der Implementierung einer Fehlerbehandlung erledigen. Dazu wollen wir eine Prozedur schreiben, die beliebige Routinen, also Sub-, Function- und Property-Prozeduren, mit einer einfachen Fehlerbehandlung ausstattet – und überdies noch mit einer Zeilennummerierung. Diese ist wichtig, wenn wir schnell herausfinden wollen, an welcher Stelle ein Fehler aufgetreten ist. Zusammen mit dem Namen des Moduls, dem Namen der Prozedur, der Fehlernummer und der Fehlerbeschreibung erhalten wir so Informationen, die in der Regel zum Aufdecken des Fehlers führen.

Weiterlesen

Mehrwertige Felder mit Wertliste loswerden

Mehrwertige Felder sind eine Erfindung von Microsoft, um den Umgang mit Datenkonstrukten, bei denen für ein Feld mehrere Werte ausgewählt werden können, zu vereinfachen. In einem mehrwertigen Feld können wir aus einer Liste von Werten, die entweder aus einer Wertliste oder aus einer anderen Tabelle stammen, keinen, einen oder mehrere Einträge auswählen. Aus einer verknüpfen Tabelle mehrere Werte zuordnen? Das hört sich ja eigentlich nach dem Einsatzzweck einer m:n-Beziehung an. Genau das bildet Microsoft intern ab. Allerdings funktioniert das nur innerhalb des Access-Biotops. Sollen die Daten einmal zum SQL Server oder einer anderen Datenbank wandern, wird es kompliziert. Hier können wir solche Konstrukte nämlich nicht mehr einfach abbilden – wir müssen diese also ersetzen. Wie wir die mehrwertigen Felder loswerden, zeigen wir in diesem Beitrag.

Weiterlesen

Letztes geöffnetes Ribbon-Tab merken

Wer das Ribbon ausgiebig nutzt, hat schnell einige Tabs zusammen, die wiederum mehrere Gruppen mit den jeweiligen Steuerelementen enthalten. Diese Tabs sind in der Regel so ausgelegt, dass das zuerst angezeigte Tab aktiviert wird, wenn der Benutzer die Anwendung startet. Wenn der Benutzer aber regelmäßig eher mit den Aufgaben einsteigt, die sich in einem anderen Tab befinden, muss er jedes Mal erst noch zu diesem Tab wechseln. Um dies zu vereinfachen, stellen wir in diesem Beitrag eine Lösung vor, mit der sich die Anwendung das zuletzt verwendete Tab-Element merken kann und dieses beim nächsten Start wiederherstellt.

Weiterlesen

Registryeinträge für VBA-Anwendungen

Die Registry von Windows ein undurchschaubarer Dschungel an Einstellungen. Wenn man nicht weiß, was man tut, können Änderungen an diesen Einstellungen zu Problemen beim Einsatz von Windows oder Anwendungen kommen. Es gibt einige API-Funktionen, mit denen man auch per VBA Änderungen an der Registry vornehmen kann. Die API-Programmierung ist aber grundsätzlich ein Profithema, und erst recht sollten Einsteiger mit API-Funktionen nicht die Registry manipulieren. Zum Glück hat Microsoft jedoch einen Satz von VBA-Funktionen bereitgestellt, mit denen man halbwegs sicher Informationen in die Registry schreiben und diese auch wieder auslesen kann. Der Clou ist, dass man damit einen speziell für VB- und VBA-Anwendungen vorgesehenen Teil der Registry nutzen kann. In diesem Beitrag stellen wir diese Funktionen vor und zeigen, welchen Bereich in der Registry sich damit nutzen lässt.

Weiterlesen

Schnellsuche im Listenfeld mal anders

In vielen bisherigen Lösungen haben wir für die Schnellsuche im Listenfeld oder auch in Unterformularen in der Datenblattansicht ein Textfeld als Suchfeld verwendet. Direkt bei Eingabe eines jeden Zeichens wurde das Suchergebnis aktualisiert. In diesem Beitrag wollen wir einmal eine noch ergonomischere Version vorstellen. Der Unterschied soll so aussehen, dass man den Suchbegriff eingeben kann, während das Listenfeld den Fokus hat. Es soll also kein Wechseln vom Suchfeld zum Listenfeld und zurück nötig sein, wenn man durch die Suche den gewünschten Datensatz vorgefunden hat und diesen beispielsweise markieren und beispielsweise durch Betätigen der Eingabetaste eine Aktion für diesen Eintrag durchführen möchte. Wir zeigen dies am Beispiel aus dem Beitrag „m:n-Beziehung mit Listenfeld und Datenblatt“ (www.access-im-unternehmen.de/1510).

Weiterlesen