Access-News & Downloads
Access-Helpline Newsletter-Tipp
Spotlight: Datenbanken optimieren, analysieren und dokumentieren Der Total Access Analyzer ist eine mehrfach ausgezeichnete Access-Erweiterung, die viele Anwender und Entwickler mit ihren Datenbanken einsetzen. Voll automatisch liefert der Analyzer versteckte Fehler, gibt Optimierungstipps, erstellt grafische Übersichten der Zusammenhänge zwischen allen Datenbank-Objekten, findet ungenutzte Objekte und ermöglicht eine Cross-Referenz (welches Objekt wird an welchen Stellen in der Datenbank verwendet) sowie die komplette Dokumentation aller Objekte. Ab sofort steht zusätzlich zu den bisherigen Versionen der brandneue Total Access Analyzer 2003 für Access 2003 zur Verfügung. Er bietet nicht nur eine Fülle von neuen Berichten und Analysen, sondern unterstützt auch die MDB- und ADP-Dateien sowohl von Access 2000 als auch von Access 2002 und 2003. Weitere Informationen zu der neuen Version finden Sie unter der folgenden Adresse: Total Access Analyzer 2003 Den Total Access Analyzer gibt es außerdem auch für die übrigen Access-Versionen: Total Access Analyzer für Access 2002/XP Total Access Analyzer für Access 2000 Total Access Analyzer für Access 97 Download-Tipp: Komfortable Zusatzfunktionen für Memofelder in Ihren Formularen Mit den kostenlosen SmartTools Memo-Funktionen können Sie Memofelder in Zukunft noch effizienter nutzen. Nach der voll automatischen Installation stehen Ihnen vier neue Funktionen zur Verfügung, die Sie mit wenig Aufwand direkt in Ihre Formulare einbinden können:
Techinfo: Office-Dateidialoge im Griff Versionen: Access 2003 und 2002/XP Mit Access 97 und 2000 mussten Sie bei der Entwicklung von Office-Lösungen, in denen "Öffnen"- oder "Speichern"-Dialoge benötigt wurden, mit Tricks arbeiten und zum Beispiel die Windows Common Dialogs per API verwenden. Mit Access 2002/XP hat Microsoft erweiterte Möglichkeiten zur Verfügung gestellt: Entsprechende Dialoge inklusive einer "Ordner"-Auswahl sind nun fester Bestandteil des Objektmodells. Sämtliche Dialoge können beispielsweise bezüglich Titel, Schaltflächenbeschriftungen, anzuzeigender Dateitypen und Vorgaben für Laufwerk/Verzeichnis individuell mit Vorgaben initialisiert werden. In einem sehr ausführlichen White Paper zeigen die Spezialisten des MSDN den Umgang mit diesen neuen Möglichkeiten: White Paper: Office-Dateidialoge im Griff Nach einer kurzen Einleitung stellen die Autoren zunächst die neuen Objekte und deren Anbindung im Objektmodell der Office- Anwendungen vor. Sie erfahren Details über deren Eigenschaften, Methoden und Auflistungen und wie damit gearbeitet wird. Dazu sind jeweils kleine Beispiellistings und Bildschirmfotos vorhanden, so dass Sie die Ausführungen sofort in Access nachvollziehen und als Basis für eigene Lösungen heranziehen können. So lernen Sie beispielsweise, wie der Titel individuell angepasst, eine Liste anzuzeigender Dateitypen gesetzt oder die Beschriftung der "Auswahl"-Schaltfläche von "Öffnen" auf "Importieren" oder "Einfügen" geändert werden kann. Die verwendeten Beispiele stehen darüber hinaus als universell einsetzbares Modul zum Download zur Verfügung.
Leerzeilen in Adressen löschen Versionen: Access 2003, 2002/XP und 2000 In vielen Datenbanken werden Text-/Memofelder für die Speicherung von Komplettadressen in der Form Firma Ansprechpartner Strasse PLZ Ort Land verwendet. Wenn nun die Leerzeilen für den Aufbau normkonformer Adressen entfernt werden müssen, stehen Ihnen normalerweise aufwendige manuelle Überarbeitungen bevor. Diesen Aufwand können Sie sich jedoch mit Hilfe einer kleinen VBA-Funktion und einer Aktualisierungsabfrage wie folgt sparen:
Dim arrTemp As Variant, strTemp As String Dim I As Long On Error Resume Next arrTemp = Split(F, vbCrLf) For I = LBound(arrTemp) To UBound(arrTemp) If Trim$(arrTemp(I)) <> "" Then strTemp = strTemp & arrTemp(I) & vbCrLf End If Next I LeerzeilenLoeschen = strTemp End Function Die Funktion erwartet als Parameter "F" einen beliebigen Feldinhalt und zerlegt diesen zunächst über die Funktion "Split()" in ein Array "arrTemp", wobei die Zeilenendesequenz "vbCrLf" als Trennzeichen dient. In einer Schleife wird dann jedes Element des Arrays auf "ungleich Leer" geprüft. Elemente, die einen Inhalt haben, werden in einer neuen Zeichenkette "strTemp" per "vbCrLf" getrennt ohne Leerzeilen zusammengefasst.
"AdrKomplett" ersetzen Sie dabei durch den Namen des Feldes mit der Komplettadresse.
Möchten Sie die ursprüngliche Adresse beibehalten, erweitern Sie die Tabelle zum Beispiel um ein Memofeld "AdrOhneLeerzeilen" und wählen Sie dieses Feld in Schritt 5. als Zielfeld für die Aktualisierung aus. Die Abfrage setzt dann die Ursprungsadresse aus dem Feld "AdrKomplett" um und setzt das Ergebnis in das Feld "AdrOhneLeerzeilen" ein.
Haben Sie Fragen zu Access 2003, 2002/XP, 2000 und 97? Dann wenden Sie sich mit einer genauen Problembeschreibung (bitte keine Datenbanken schicken!) an: access-helpline@smarttools.de Unser Redaktionsteam wählt in jeder Ausgabe Fragen aus und beantwortet Sie an dieser Stelle im Newsletter. Symbolleiste 'Web' ausblenden Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In einer Datenbank verwalten wir Web-Adressen (URLs) und zeigen sie über ein Hyperlink-Feld in einem Formular an. Nach Anzeige der Website mit dem Browser und Rückkehr zu Access ist in Access immer die Symbolleiste "Web" eingeblendet. Wir müssen die Symbolleiste dann manuell wieder ausblenden, weil sie nicht weiter benötigt wird. Kann man Access dieses Verhalten irgendwie abgewöhnen? P. Schacht ANTWORT: Die Anzeige der Symbolleiste "Web" lässt sich wie folgt unterbinden:
DoCmd.ShowToolbar "Web", acToolbarNo { End Sub } Sollte bereits eine "Form_Load"-Prozedur vorhanden sein, fügen Sie obige Anweisung einfach am Ende ein.
Formulare einfacher bearbeiten Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Unsere Datenbanken werden grundsätzlich so entwickelt, dass der Anwender keine Access-Symbolleisten und -Menüs angezeigt bekommt. Wenn nun ein Anwender ein Problem mit einem Formular hat und wir zur Lösung des Problems in den Entwurfsmodus wechseln müssen, bedeutet das für uns erheblichen Aufwand, da jedes Mal eine Abmeldung und eine Neuanmeldung mit Admin-Konto notwendig ist, um die entsprechenden Funktionen erreichen zu können. Haben Sie eine Idee, ob und wie sich das vereinfachen lässt? R. Giese ANTWORT: Geben Sie zunächst in ein Modul die folgende Prozedur ein: Sub RunForm() On Error Resume Next DoCmd.OpenForm Forms(0).Name End Sub Anschließend geben Sie für die Ereignisprozedur "Bei Maustaste Ab" des Detailbereichs des Formulars folgende Anweisungen ein: Private Sub Detailbereich_MouseDown(Button As Integer, _ Shift As Integer, X As Single, Y As Single) If ((Shift And acShiftMask) > 0 And _ (Shift And acCtrlMask)) > 0 Then DoCmd.OpenForm Me.Name, acDesign End If End Sub In Zukunft können Sie bei gleichzeitig gedrückter Umschalt- und Strg-Taste in den Detailbereich des Formulars klicken und es so im Entwurfsmodus öffnen. Ist die Bearbeitung abgeschlossen, drücken Sie Strg+G, um den Direktbereich/das Testfenster zu aktivieren und geben dort "RunForm" ein. Dadurch wird das Formular wieder zurück in die Formularansicht für die "normale" Bearbeitung geschaltet. Die Abfrage "Umschalt- und Strg-Taste gedrückt" stellt dabei sicher, dass ein Anwender nicht aus Versehen den Entwurfsmodus aktiviert.
Zugriff auf Tabellen im Add-In Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich habe ein kleines Add-In geschrieben, das aus einer Tabelle über ein Recordset Textbausteine in ein Memofeld der aktuellen Datenbank einfügen soll. Wenn ich das Add-In als MDB-Datenbank vor der Umwandlung in eine MDE teste, funktioniert alles bestens. Binde ich die MDE jedoch als Add-In ein, werden keine Textbausteine gefunden. Sind noch besondere Einstellungen für den Einsatz als Add-In vorzunehmen? K. Dose ANTWORT: Vermutlich öffnen Sie den Recordset wie folgt: Dim db As Database Dim rs As Recordset ..... Set db = CurrentDb() Set rs = db.OpenRecordset("Tabelle") ..... "CurrentDb()" liefert dann einen Verweis auf die aktuelle Datenbank, die in Access geöffnet ist. Hier ist jedoch ein Verweis auf die Datenbank, die das Add-In bildet, notwendig, um auf die darin enthaltene Tabelle zugreifen zu können. Dazu setzen Sie die Funktion "CodeDb()" ein. Diese liefert einen Verweis auf die Datenbank, in der die aktuelle Routine läuft: Dim db As Database Dim rs As Recordset ..... Set db = CodeDb() Set rs = db.OpenRecordset("Tabelle") ..... Nach dieser kleinen Anpassung wird die Tabelle dann wie erwartet gefunden.
Office XP und 2003-Tipps kostenlos per E-Mail Der SmartTools Office XP Insider ist ein kostenloser E-Mail-Newsletter, der sich ausschließlich mit den neuen Funktionen von Office 2003 und XP beschäftigt:
Um SmartTools Access Weekly abzubestellen, senden Sie einfach das Kommando "unsubscribe" an die Adresse access-weekly-html-request@smarttools.de Bitte beachten Sie, daß das Kommando im Nachrichtentext stehen muß (nicht im Betreff) und Sie keine Mail im HTML-Format senden dürfen. Weitere Informationen zur Verwaltung der Liste erhalten Sie mit dem Kommando "help" an dieselbe Adresse.
|