Von: access-weekly-html-request@cgn.smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Freitag, 24. Juni 2005 04:10
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 24.6.2005

Ausgabe vom 24. Juni 2005

 In dieser Ausgabe

Access-News & Downloads
Access-Tipp der Woche
Access-Helpline
Newsletter-Tipp
 Access-News & Downloads

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:

  • Memofeld in Zwischenablage kopieren
  • Zwischenablage in Memofeld einfügen
  • Memofeld in Textdatei exportieren
  • Textdatei in Memofeld einlesen
Den Download finden Sie unter:

 SmartTools Memo-Funktionen

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.

 Access-Tipp der Woche

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:

  • Geben Sie in einem neuen oder in einem vorhandenen Modul die folgende Funktion ein:
Public Function LeerzeilenLoeschen(F As Variant) As String
  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.

  • Wechseln Sie im Datenbankfenster in den Bereich "Abfragen" und klicken Sie auf die Schaltfläche Neu.
  • Wählen Sie die Tabelle, die das Feld mit der Komplettadresse enthält, per Doppelklick aus und klicken Sie in der Tabellenauswahl auf die Schaltfläche Schließen.
  • Wählen Sie das Menü Abfrage-Aktualisierungsabfrage an, um den Abfragetyp umzuschalten.
  • Wählen Sie in der Feldauswahl das Feld mit der Komplettadresse, beispielsweise "AdrKomplett", per Doppelklick aus, um es in den Abfrageentwurf zu übernehmen.
  • Geben Sie in der Zeile "Aktualisieren" des Feldes mit der Komplettadresse folgendes ein:
LeerzeilenLoeschen([AdrKomplett])

"AdrKomplett" ersetzen Sie dabei durch den Namen des Feldes mit der Komplettadresse.

  • Wählen Sie das Menü Abfrage-Ausführen an, um die Umsetzung durchzuführen.
Die Abfrage ruft nun für jeden Datensatz die Funktion "LeerzeilenLoeschen()" auf und übergibt dabei das betreffende Feld mit der Komplettadresse als Parameter. Die Funktion "LeerzeilenLoeschen()" entfernt die Leerzeilen, das Funktionsergebnis wird dem Feld als neuer Inhalt zugewiesen.

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.

ANZEIGE 
Einzeladressen aus Access und Outlook komfortabel nach Word übernehmen

Vergessen Sie das lästige Nachschlagen von Adressen!

Erledigen Sie Ihre Korrespondenz in Zukunft schnell und komfortabel:

  • Direkte Übernahme von Einzeladressen aus Outlook, Exchange Server sowie beliebigen Access-Datenbanken
  • Komfortabler Abruf der Adressen per Mausklick direkt aus Word 2003, 2002/XP und 2000
  • Flexible Übernahme in beliebige Vorlagen für Briefe, Faxe, Rechnungen, Mahnungen, Lieferscheine usw.
  • Musterbrief-Verwaltung mit über 100 fertigen Briefen - beliebig erweiterbar um Ihre persönlichen Mustertexte
  • Nutzen Sie den Aktionspreis: Zurzeit erhalten Sie 25% Rabatt!
Ausführliche Informationen zum SmartTools Brief- und Fax-Manager 2003 finden Sie unter:

SmartTools Brief- und Fax-Manager 2003


 Access-Helpline

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:

  1. Öffnen Sie das betreffende Formular im Entwurfsmodus.
  2. Lassen Sie das Eigenschaftenfenster über das Menü Ansicht-Eigenschaften anzeigen.
  3. Setzen Sie die Eigenschaft "Beim Laden" auf "[Ereignisprozedur]" und klicken Sie auf die Schaltfläche mit den drei Punkten, um den VBA-Editor zu starten.
  4. Geben Sie die folgende Anweisung im VBA-Editor ein:
{ Private Sub Form_Load() }

    DoCmd.ShowToolbar "Web", acToolbarNo

{ End Sub }

Sollte bereits eine "Form_Load"-Prozedur vorhanden sein, fügen Sie obige Anweisung einfach am Ende ein.

  • Speichern Sie die Änderung und testen Sie das Formular über das Menü Ansicht-Formularansicht.
Bei einem Klick auf ein Hyperlink-Feld startet der Browser wie gewohnt. Kehren Sie vom Browser zurück zu Access, wird jedoch keine Symbolleiste "Web" mehr angezeigt, da das Laden des Formulars die Symbolleiste bereits ausgeschaltet hat.

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.

ANZEIGE 
Die perfekte Outlook-Ergänzung gegen Spam, Würmer und andere unerwünschte E-Mail

Der Junk-Mail-Filter von Outlook und eine schier unüberschaubare Anzahl von Zusatzprogrammen sollen Sie von unerwünschten Mails befreien. Mailwasher Pro ist die revolutionäre Alternative:

  • Viren, Würmer, Spam, Mails mit umfangreichen Anhängen und andere unerwünschten Nachrichten werden bereits auf dem Mailserver gelöscht, so dass sie erst gar nicht auf ihren Computer gelangen.
  • Mailwasher Pro kann gefährliche und unerwünschte Mails automatisch erkennen.
  • Outlook wird erheblich entlastet. Sie sparen Zeit und Geld, weil nur noch die Mails komplett geladen werden, die Sie wirklich empfangen möchten.
  • Mailwasher Pro ist dank komfortabler Assistenten in wenigen Minuten eingerichtet und sofort einsatzbereit.
Nähere Informationen finden Sie unter:

Mailwasher Pro


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.

 Newsletter-Tipp

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:

  • Praktische Tipps zur Installation
  • Tipps und Workshops zum optimalen Einsatz der neuen Funktionen
  • Wichtige Infos und Tipps für den Umstieg von anderen Office-Versionen
  • Download-Links zu aktuellen Erweiterungen und Service Releases für Office 2003/XP
  • Helpline für Ihre individuellen Fragen zu Office 2003 und XP
Klicken Sie hier für Ihr kostenloses Abo!

 Abonnementverwaltung

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.

Copyright © 2005 SmartTools Publishing Thomas Tai
Luisenstrasse 52, 49565 Bramsche
Telefon: 05461/91052, Fax: 05461/2609
E-Mail: access-weekly@smarttools.de
Internet: http://www.smarttools.de/