Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Freitag, 26. August 2005 02:18
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 26.8.2005

Ausgabe vom 26. August 2005

 In dieser Ausgabe

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

Neu: SmartTools QuickText Pro 2.0 für Word - Textbausteine, Musterbriefe und Vorlagen perfekt im Griff

Vergessen Sie die AutoTexte von Word! Noch nie war es so einfach, Briefe, E-Mails, Berichte, Angebote und beliebige andere Dokumente mit wenigen Mausklicks zu erstellen: Mit der brandneuen Version 2.0 von SmartTools QuickText Pro können Sie auf immer wieder benötigte Musterbriefe, Vorlagen und Textbausteine jetzt noch schneller und flexibler zugreifen.

Das genial einfache und innovative Konzept hat sich bereits bei vielen tausend Anwendern in der Praxis bewährt:

  • Jeder Mustertext ist ein eigenes Dokument mit allen Formatierungen, Grafiken und Tabellen, die Word zu bieten hat. Öffnen, ändern, speichern - einfacher kann die Bearbeitung von Textbausteinen auch für unerfahrene Anwender nicht sein.
  • Sie haben auch größere Mengen von Mustertexten perfekt im Griff, denn Sie legen die Dateien einfach in verschiedenen Unterverzeichnissen ab, die SmartTools QuickText Pro Ihnen dann voll automatisch als Kategorien im Menü anbietet (auch über mehrere Ebenen!).
  • Sie müssen kein neues Programm erlernen, denn SmartTools QuickText Pro ist fest in die Menüs von Word integriert und lässt sich kinderleicht bedienen.
  • Nutzen Sie Ihre Mustertexte ganz einfach über das Netzwerk auch mit mehreren Anwendern. Alle Dokumente werden an einer Stelle zentral abgelegt, so dass Sie einen Mustertext nur ein einziges Mal bearbeiten müssen. Alle Team-Mitglieder nutzen so automatisch immer die neuesten Textversionen. Mit den AutoTexten von Word ist das ohne SmartTools QuickText Pro nicht möglich!
  • Die neue Version 2.0 bietet viele neue Funktionen und pfiffige Arbeitserleichterungen, angefangen bei der Unterstützung von Word als E-Mail-Editor über die Verwendung von Dokumentvorlagen und Verknüpfungen im QuickText-Verzeichnis bis hin zu flexiblen Zusammenstellungen aus mehreren Textbausteinen.
Bis zum 15.9.2005 gilt unser Sonderpreis für Access Weekly-Abonnenten mit über 35% Rabatt:

http://www.add-in-world.com/katalog/quicktext-pro/

Download-Tipp: Front- und Back-End-Datenbanken optimal nutzen

Die Aufteilung einer Datenbank in Front-End und Back-End ist für den Einsatz im Netzwerk unerlässlich, bietet aber auch für den "normalen" Einsatz viele Vorteile. In unserer kostenlosen Techinfo finden Sie dazu die wichtigsten Grundlagen und erfahren, worauf Sie bei der Aufteilung achten müssen. Lernen Sie Ihre Datenbanken im Netzwerk noch effizienter einzusetzen: In einer Schritt-für-Schritt-Anleitung teilen Sie sie ganz einfach in Front-End und Back-End auf:

  Front- und Back-End-Datenbanken optimal nutzen

Bug: Problem beim Aktualisieren von Datensätzen auf dem SQL Server 2000

In einer aktuellen Techinfo weist Microsoft auf einen Fehler in Access 2003 in Kombination mit dem SQL Server 2000 hin: Unter bestimmten Umständen werden geänderte Datensätze nicht korrekt in die verknüpfte Tabelle auf dem SQL Server zurück geschrieben. Weitere Informationen und einige Vorschläge zum Umgehen des Bugs (einen Patch gibt es zurzeit nicht) finden Sie unter:

Techinfo zum Aktualisierungsbug von Access 2003

Techinfo: TreeView-Inhalte als Datei sichern

In Access setzen Sie häufig das TreeView-Steuerelement ein, um den Zugriff auf Daten übersichtlich anhand einer hierarchisch gegliederten Auswahl zu ermöglichen. Dieser Aufbau soll häufig als Basis für Dokumentationen oder Schulungsunterlagen weiterverarbeitet werden, aber das TreeView-Steuerelement stellt keine Methode bereit, um den aktuellen Inhalt in einem entsprechenden Format zu speichern oder auf anderem Wege übernehmen zu können. Hier kann eine kleine VBA-Routine helfen, die die Spezialisten des MSDN unter folgender Adresse erläutern:

Techinfo zur Sicherung der TreeView-Inhalte

Die Techinfo ist zwar auf Visual Basic 5.0/6.0 ausgelegt, aber Sie können die Routine unverändert in VBA übernehmen. Eine Schritt-für-Schritt-Anleitung zeigt außerdem, wie zunächst ein kleines Beispiel zum Testen der Prozedur aufgebaut wird.

 Access-Tipp der Woche

Tabellen beim Datenbankstart automatisch sichern
Versionen: Access 2003, 2002/XP, 2000 und 97

Als Ergänzung zur regelmäßigen Sicherung der kompletten Datenbank bietet es sich häufig an, Tabellen mit kritischen Inhalten beim Öffnen der Datenbank in eine zweite Datenbank zu kopieren. Bei kleineren Unstimmigkeiten in den Daten müssen Sie dann nicht die komplette Datenbank zurücksichern, sondern können die ursprünglichen Inhalte kurz nachschlagen und die Originale so schnell und einfach wieder herstellen. Gegebenenfalls lassen sich auch komplette Datensätze über die Zwischenablage zurückkopieren oder gezielt eine komplette Tabelle im Original wiederherstellen.

Um eine solche Lösung zu realisieren, gehen Sie wie folgt vor:

  • Legen Sie zunächst eine leere Datenbank DATSI.MDB an.
  • Öffnen Sie die Datenbank, aus der Sie eine oder mehrere Tabellen automatisch sichern möchten.
  • Geben Sie in einem beliebigen Modul die folgende Funktion ein:
Function TabelleSichern(strTabName As String) As Boolean
  Dim strDestTab As String
  Dim strDestDB As String
  Dim strSQL As String

  On Error Resume Next
  strDestDB = "Z:\Test\Datsi.mdb"
  strDestTab = "Datsi " & _
               Format$(Now, "yyyy-mm-dd hh:nn") _
               & " - " & strTabName
  strSQL = "SELECT [" & strTabName & "].* " & _
           "INTO [" & strDestTab & "] " & _
           "IN '" & strDestDB & "' " & _
           "FROM [" & strTabName & "];"
  DoCmd.RunSQL strSQL, False
  TabelleSichern = (Err = 0)

End Function

  • Die Zuweisung zu "strDestDB" passen Sie gemäß Laufwerk/Pfad/Dateiname der in Schritt 1. angelegten Datensicherungs-MDB an.
  • Wechseln Sie in den Bereich "Makros" und klicken Sie auf die Schaltfläche Neu bzw. markieren Sie ein vorhandenes Makro "AutoExec" und klicken Sie auf Entwurf.
  • Fügen Sie eine Aktion "Warnmeldungen" hinzu und stellen Sie den Parameter "Warnmeldungen An" auf "Nein".
  • Fügen Sie für jede zu sichernde Tabelle eine Aktion "AusführenCode" hinzu, für die Sie den Parameter "Funktionsname" wie folgt eingeben:
TabelleSichern("Kunden")

  • "Kunden" ersetzen Sie dabei durch den Namen der zu übertragenden Tabelle.
  • Sichern Sie das Makro über Datei-Speichern, verlassen Sie den Makroentwurf und beenden Sie Access bzw. schließen Sie die Datenbank.
In Zukunft wird nun bei jedem Öffnen der Datenbank eine Kopie der betreffenden Tabelle(n) in der Datenbank "DATSI.MDB" abgelegt. Sollten nun einmal beispielsweise Datensätze irrtümlich geändert oder gelöscht worden sein, können Sie diese einfach per Bearbeiten-Kopieren/Am Ende Anfügen wiederherstellen.

Um das zu testen, öffnen Sie die Original-Datenbank und anschließend die DATSI.MDB. Hier finden Sie wie gewünscht die automatisch angelegten Kopie(n) der Ursprungstabelle(n) mit Namen wie "Datsi 2005-07-17 08:45 - Kunden" vor.

ANZEIGE 
Access-Datenbanken optimieren, analysieren und dokumentieren

Der Total Access Analyzer ist eine mehrfach ausgezeichnete Access-Erweiterung, die tausende von Anwendern und Entwickler mit ihren Datenbanken einsetzen.

Wenn Sie Datenbanken für andere Anwender erstellen oder sich in komplexen Access-Anwendungen zurechtfinden müssen, leistet der Total Access Analyzer unschätzbare Hilfe. Voll automatisch kann diese in Access integrierte Erweiterung...

...ungenutzte Objekte finden

...grafische Übersichten der Zusammenhänge zwischen allen Datenbank-Objekten erstellen

...versteckte Fehler finden

...nützliche Optimierungstipps geben

...eine zuverlässige Cross-Referenz erstellen (welches Objekt wird an welchen Stellen in der Datenbank verwendet)

...alle oder gezielt einige Objekte Ihrer Datenbanken ausführlich dokumentieren

Weitere Informationen zum Total Access Analyzer finden Sie unter:

Total Access Analyzer für Access 2003

Total Access Analyzer für Access 2002/XP

Total Access Analyzer für Access 2000

Total Access Analyzer für Access 97


 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 eine oder mehrere Fragen aus und beantwortet Sie an dieser Stelle im Newsletter.

Parameter für Abfragen per VBA setzen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In meiner Datenbank habe ich verschiedene Parameter-Abfragen, die normalerweise Formularen und Berichten zugrunde liegen und dort nach Abfrage der Parameter die gewünschten Daten anzeigen oder ausdrucken. Die Ergebnisse einiger dieser Abfragen möchte ich nun per VBA in Recordsets verarbeiten, weiß aber nicht, wie ich sie dazu öffne und die Parameter angebe. Können Sie mir ein paar Hinweise dazu geben?
D. Kammer

 ANTWORT:  Zu diesem Zweck müssen Sie direkt auf die Abfrage-Definition zugreifen. Die folgenden Anweisungen öffnen die Abfrage "Umsatzübersicht", setzen die Parameter für das Land sowie das auszuwertende Jahr und initialisieren dann einen Recordset mit dem Ergebnis:

Sub QDefPara()
  Dim db As Database, rs As Recordset
  Dim qd As QueryDef

  Set db = CurrentDb()
  Set qd = db.QueryDefs("Umsatzübersicht")
  qd("Für welches Land") = "Deutschland"
  qd("Für welches Jahr") = 2005
  Set rs = qd.OpenRecordset()

  'rs.MoveLast
  'MsgBox rs.RecordCount

  'Hier Ihre Verarbeitung...

  rs.Close

End Sub

Die auskommentierten Anweisungen würden zu Testzwecken die Anzahl gefundener Datensätze anzeigen, sie sind für die Funktionalität nicht von Bedeutung.

ANZEIGE 
Tools und Assistenten für Access-Entwickler

Mit den Total Visual CodeTools 2003 erweitern Sie Access um eine umfangreiche Sammlung neuer Tools und Assistenten speziell für VBA-Entwickler.

Die Total Visual CodeTools 2003 integrieren sich direkt in die Entwicklungsumgebung und lassen sich jederzeit per Mausklick aufrufen. Zum Beispiel:

  • Code Cleanup zur automatischen Aufbereitung und Standardisierung von vorhandenem Code.
  • Voll automatische CodeBuilder für Recordsets, SQL-Statements, Message-Boxen, Select-Case-Anweisungen etc.
  • Assistent für neue Prozeduren mit Kommentarkopf, Fehlerbehandlung und Namenskonventionen nach Ihren Vorgaben
  • Der Code Delivery Wizard fügt automatisch Zeilennummern hinzu (für punktgenaue Fehlermeldungen), entfernt Debugging-Code, den Sie übersehen haben und macht den Sourcecode für Unbefugte Dritte unlesbar.
Weitere Informationen finden Sie unter:

Total Visual CodeTools 2003


Unerwünschte Leerzeichen vermeiden
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Wir setzen in Berichten ein Textfeld aus verschiedenen anderen Feldern mit dem Operator "&" zusammen und trennen die Felder durch Leerzeichen dazwischen. Das sieht dann beispielsweise so aus:

[Titel] & " " & [Vorname] & " " & [Nachname]

Wenn nun jedoch eines der vorderen Felder leer ist, wird das Leerzeichen trotzdem eingefügt und das stört uns. Lässt sich das abstellen?
W. Enders

 ANTWORT:  Um störende Leerzeichen bei zusammengesetzten Feldern zu vermeiden, verwenden Sie für das Anhängen der Leerzeichen den Operator "+" anstelle des Operators "&" und klammern Sie die Felder, die eventuell leer sein können wie folgt:

([Titel]+ " ") & ([Vorname]+ " ") & [Nachname]

Zeichenketten an API-Funktionen übergeben
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich nutze verschiedene API-Funktionen, die als Parameter "strSZxyz" oder "lpXYZ" eine Zeichenkette erwarten. Wenn ich das richtig sehe, sind das Null-terminierte Zeichenketten, so dass ich doch theoretisch vor dem Aufruf der API-Funktion ein "Chr$(0)" hinzufügen müsste, oder? Ich frage, weil einige API-Funktionen nicht wie erwartet arbeiten und mir immer falsche Ergebnisse liefern.
V. Luft

 ANTWORT:  Nein, das ist nur bedingt notwendig. VBA konvertiert vor dem Aufruf von API-Funktionen die als "String" deklarierten Parameter automatisch in das C-Format, entfernt also die in VBA-Strings am Anfang vorhandenen Längenbytes und fügt ein "vbNullChar" am Ende hinzu. Es muss hier jedoch unterschieden werden nach "In"- und "Out"-Parametern: "In"-Parameter übergeben eine Zeichenfolge an die API-Funktion. Oftmals liefern API-Funktionen jedoch ein Ergebnis über eine als "Out"-Parameter angegebene Zeichenkette. In der Regel ist dann auch ein weiterer Parameter "MaxStrLen" oder ähnlich anzugeben, der mitteilt, wie viele Zeichen maximal im "Out"-Parameter zurückgeliefert werden können. In diesen Fällen ist dafür Sorge zu tragen, dass die Variable vor dem Aufruf der API-Funktion entsprechend initialisiert ist:

Const MaxLen = 250
.....
strOut = String$(MaxLen, vbNullChar)
.....
R = APIFunctionCall(.., strOut, MaxLen, ...)
.....

"MaxLen" legt hier fest, wie viele Zeichen als Ergebnis geliefert werden dürfen. Damit initialisieren wir über "Space$()" eine Variable "strOut" mit der entsprechenden Anzahl Nullbytes vor dem Aufruf der API-Funktion. Würden wir das nicht tun, hätte die Variable "strOut" bei der Übergabe an die API-Funktion eine Länge von "0" - dementsprechend wird Platz auf dem für die Parameterübergabe verwendeten Stack reserviert. Wenn die API-Funktion nun ein Ergebnis der Länge "72" liefert, ist nicht ausreichend Platz vorhanden, es werden also hinter "strOut" 72 Bytes überschrieben, was gegebenenfalls zu einem "Stack Overflow" führt - und das kann sogar zum Absturz von Access führen.

 Newsletter-Tipp

Word-Tipps kostenlos per E-Mail

SmartTools Word Weekly ist unser beliebter E-Mail-Newsletter mit kostenlosen Tipps rund um Word 2003, 2002/XP, 2000 und 97:

  • Undokumentierte Parameter und Funktionen
  • Berichte über Bugs, Patches und Sicherheitslücken
  • Fertige Makros zur Automatisierung häufiger Arbeitsvorgänge
  • Perfekte Datensicherung Ihrer Dokumente
  • So nutzen Sie Word im Netzwerk
  • Helpline für Ihre Fragen zu Word
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/