Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Freitag, 29. Juli 2005 00:34
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 29.7.2005

Ausgabe vom 29. Juli 2005

 In dieser Ausgabe

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

Spotlight: Adressen aus Access und Outlook ganz einfach nach Word übernehmen

Der SmartTools Brief- und Fax-Manager 2003 reduziert das Erstellen eines neuen Briefes oder Fax-Anschreibens auf wenige Mausklicks. In Zukunft geben Sie keine Adresse mehr doppelt ein, denn Sie können auf Ihre vorhandenen Datenbestände in jeder beliebigen Access-Datenbank, in Outlook oder auf dem Exchange Server zugreifen. Den ganzen Vorgang steuern Sie aus Word 2003, 2002/XP oder 97.

  • Per Mausklick in die Symbolleiste des Brief- und Fax-Managers rufen Sie direkt aus Word die Liste der verfügbaren Adressen in Ihrer Access-Datenbank oder in Outlook auf.
  • Sie markieren den gewünschten Empfänger.
  • Der Assistent öffnet ein neues Dokument auf Grundlage einer Ihrer vorbereiteten Brief- oder Fax-Vorlage und fügt die Adresse samt fertiger Anrede genau an den richtigen Stellen ein.
  • Auf Wunsch wird das Dokument automatisch nach dem Brief-Empfänger sowie dem aktuellen Datum benannt und in einem der vordefinierten Verzeichnisse gespeichert.
Der tausendfach bewährte SmartTools Brief- und Fax-Manager 2003 ist ab sofort verfügbar und kann jetzt zum Aktionspreis mit 25% Rabatt bestellt werden:

SmartTools Brief- und Fax-Manager 2003

Download-Tipp: Komfortable Textbausteinverwaltung für Ihre Formulare

Wenn Sie bei der Datenerfassung in Access bestimmte Textpassagen immer wieder eingeben, bleibt Ihnen standardmäßig nur die AutoKorrektur-Funktion, um ein kleines Textbaustein-System aufbauen. Die Verwaltung ist allerdings wenig komfortabel und zudem auf einige Hundert Zeichen beschränkt.

Mit der kostenlosen Access-Erweiterung SmartTools Textbausteine für Memofelder können Sie beliebig viele Abkürzungen und dazugehörige Textbausteine mit bis zu 32.000 Zeichen pro Textbaustein komfortabel verwalten. Die Anbindung in Ihren Formularen erfolgt mit wenig Aufwand über eine kleine Ereignisprozedur. Anschließend können Sie in Memofeldern zum Beispiel Abkürzungen wie "rg" und danach ein Leerzeichen, ein Satzendezeichen (Punkt, Fragezeichen etc.) oder einfach Return eingeben. Die Abkürzung wird daraufhin automatisch durch den zugehörigen Textbaustein, also beispielsweise eine detaillierte Produktinformation, ersetzt. Alle Formulare und Module sind ungeschützt, so dass Sie die Lösung bei Bedarf problemlos an Ihre eigenen Anforderungen anpassen können:

 SmartTools Textbausteine für Memofelder

Techinfo: Neuerungen in ADO.NET 2.0

Mit ADO.NET 2.0 hat Microsoft eine Reihe Neuerungen in die Datenzugriffsmethoden integriert; darunter viele Funktionen speziell für den neuen SQL Server 2005. So wurden beispielsweise die Zugriffsmöglichkeiten auf Datenprovider oder die Auswahl verfügbarer SQL-Server erheblich erweitert und vereinfacht. Spezielle Tools wie zum Beispiel der "Connection String Generator" erlauben die Verbindung zu Datenquellen per Mausklick. Über weitere Tools können Verbindungen komfortabel überwacht und analysiert oder umfangreiche Statistiken abgerufen werden. Für die Migration steht ein spezielles "BulkCopy" bereit, das die Übernahme selbst größter Datenbestände zum Kinderspiel macht. Das deutschsprachige White Paper unter der folgenden Adresse erläutert alle Neuerungen im Detail und verweist gegebenenfalls auf weiterführende Informationen im MSDN oder der Knowledge Base:

Techinfo: Neuerungen in ADO.NET 2.0

 Access-Tipp der Woche

Alternative Suchfunktion für Access, Teil 1
Versionen: Access 2003, 2002/XP, 2000 und 97

Mit der normalen Suchfunktion von Access klicken Sie zunächst in das Feld, das Sie durchsuchen möchten und dann auf das entsprechende Symbol "Fernglas" in der Symbolleiste. Im daraufhin angezeigten Dialog sind neben der Eingabe des Suchbegriffes noch weitere Einstellungen notwendig. 90% aller Suchvorgänge werden allerdings gestartet, um einen Datensatz zu finden, der in einem bestimmten Feld einen bestimmten Teilbegriff enthält: Man erinnert sich beispielsweise noch daran, dass der Kunde seinen Sitz in einem Ort "irgendwas mit 'Hummer'" oder eine prägnante Ziffernfolge wie "1234" in der Telefonnummer hatte. Es sollen dann also alle Datensätze durchsucht und angezeigt werden, in denen die Telefonnummer irgendwo "1234" oder der Ort die Zeichenkette "Hummer" enthält. Einstellungen im Suchen-Dialog wie zum Beispiel "Vergleichen" oder "Formatierung beachten" sind dabei völlig überflüssig und machen die Suche unnötig umständlich. Mit der Lösung aus diesem zweiteiligen Tipp können Sie eine Suchfunktion in Ihre Formulare einbinden, die ähnlich wie die Access-Suche arbeitet, aber keinerlei Einstellungen mehr erfordert. Alle Parameter legen Sie in der VBA-Routine fest, so dass Sie oder die Anwender Ihrer Datenbanken sich in Zukunft nicht mehr darum kümmern müssen.

Zunächst ein paar Worte zum Konzept dieser Lösung: bei der Suche gehen wir so vor, dass zunächst auf den ersten passenden Datensatz positioniert und eine Abfrage "Weitersuchen?" angezeigt wird. Sie können so der Reihe nach alle in Frage kommenden Datensätze durchgehen und die Suche beim gewünschten Datensatz mit einem Klick auf Nein beenden. Sollte sich einmal kein passender Datensatz zum eingegebenen Suchbegriff finden, macht die Lösung per Meldung darauf aufmerksam und fragt, ob erneut gesucht werden soll. Sie können dann einen neuen Suchbegriff eingeben oder die Suche mit Nein beenden.

Um diese Lösung in Ihrer Datenbank einzusetzen, übernehmen Sie zunächst die folgende Funktion in ein beliebiges Modul:

Function ACWSuchen()
  Dim Ctl As Control
  Dim strSuchenNach As String
  Dim strFeldname As String
  Dim strTitel As String
  Dim strPrompt As String
  Dim intTaste As Integer

  On Error Resume Next
  Set Ctl = Screen.PreviousControl
  Ctl.SetFocus
  strFeldname = Ctl.Name
  strTitel = "Suchen in Feld »" & strFeldname & "«:"

NeueSuche:
  strPrompt = "Suchbegriff eingeben " & _
  "(Teilbegriff möglich, GROSS/klein spielt keine Rolle):"
  strSuchenNach = InputBox$(strPrompt, strTitel, "")
  If strSuchenNach = "" Then Exit Function

  DoCmd.FindRecord strSuchenNach, acAnywhere, False, _
        acSearchAll, False, acCurrent, True
  If InStr(Ctl, strSuchenNach) = 0 Then 'Nichts gefunden
    Beep
    strPrompt = "Keinen Eintrag für Suchbegriff '" & _
      strSuchenNach & "' in Feld '" & strFeldname & "' & _
      " gefunden!" & vbCrLf & vbCrLf
    strPrompt = strPrompt & "Neuen Suchbegriff eingeben?"
    intTaste = MsgBox(strPrompt, _
                      vbYesNo + vbExclamation, strTitel)
    If intTaste = vbYes Then GoTo NeueSuche
    Exit Function
  End If

Weitersuchen:
  DoEvents
  Beep
  intTaste = MsgBox("Weitersuchen?", _
                    vbYesNo + vbQuestion, strTitel)
  If intTaste <> vbYes Then Exit Function
  'Auf den nächsten Datensatz setzen,
  'ab dem gesucht werden soll
  DoCmd.GoToRecord acActiveDataObject, , acNext
  DoCmd.FindRecord strSuchenNach, acAnywhere, False, _
        acDown, False, acCurrent, False
  DoEvents
  If InStr(Ctl, strSuchenNach) <> 0 Then
    'Gefunden, gegebenenfalls weitersuchen?
    GoTo Weitersuchen
  Else 'Nichts weiter gefunden, zurück zum vorherigen Satz
    DoCmd.GoToRecord acActiveDataObject, , acPrevious
  End If

End Function

ANZEIGE 
Über 350 MB offene Datenbanken und mehr als 3.000 Seiten Access-Tipps auf 3 CD-ROM's

Mit dem großen Access-Berater-Gesamtarchiv können Sie die drei erfolgreichen Archiv-CD-ROM's 2000, 2001, 2002/XP und 2003 jetzt zu einem besonders günstigen Sonderpreis mit 30% Rabatt erwerben. Sie erhalten:

  • Über 3.000 Seiten mit neuen Tipps, Praxisinformationen, fertigen Lösungen und VBA-Routinen zu Access 97, 2000, 2002/XP und 2003
  • Mehr als 350 MB mit fertigen Access-Datenbanken, Beispielen und Access-Tools
  • Alle Themen im Volltext mit Abbildungen und Beispieldatenbanken unter einer einzigen Oberfläche
  • Schneller Zugriff auf alle drei Archive per Mausklick direkt aus Microsoft Access
  • Durchsuchen Sie alle drei Archive gemeinsam im Volltext oder nach einem Index
Nutzen Sie den günstigen Paketpreis mit über 30% Rabatt auf die Einzelverkaufspreise:

Das große Access-Berater-Gesamtarchiv


 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.

Ungültige Zeichen aus Dateinamen entfernen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In unseren Datenbanken können die Anwender die Namen für Export-Dateien individuell in ein Textfeld eingeben. Dabei kommt es häufig vor, dass beispielsweise Namen wie "Umsatz: I Quartal/2005" eingegeben werden. Der Doppelpunkt und der Schrägstrich führen dann zum Beispiel bei "Open Dateiname For Output As #FNum" oder bei "DoCmd.Transfer..."-Anweisungen dazu, dass ein Laufzeitfehler ausgelöst wird. Haben Sie eine Idee, wie sich dieses Problem lösen lässt?
H. Dohse

 ANTWORT:  Geben Sie die folgende Funktion in ein beliebiges Modul ein:

Function ProperFilename(strFName As String) As String
  Dim I As Integer, L As Integer, strX As String

  For I = 1 To Len(strFName)
    If InStr("*<>?:\/|" + Chr$(34), _
       Mid$(strFName, I, 1)) = 0 Then
      strX = strX + Mid$(strFName, I, 1)
    Else
      strX = strX + "_"
    End If
  Next I
  ProperFilename = strX

End Function

Die Anweisung zum Auslesen des Dateinamens aus dem Textfeld ändern Sie dann beispielsweise wie folgt:

strFName = ProperFilename(me.txtDateiname)

Die Funktion geht den als Parameter "strFName" übergebenen Dateinamen in einer Schleife Zeichen für Zeichen durch und prüft per "InStr()", ob das jeweilige Zeichen ungültig ist. Wenn nicht, wird das Zeichen zur Zeichenkette "strX", die später das Funktionsergebnis bildet, hinzugefügt. Andernfalls wird anstelle des aktuellen Zeichens ein Unterstrich "_" zu "strX" hinzugefügt. Das Ergebnis wäre zum Beispiel in Ihrem Beispiel der Dateiname "Umsatz_ I Quartal_2005".

Eine zweite Möglichkeit, besteht darin, die Eingabe ungültiger Zeichen direkt im Textfeld abzufangen. Stellen Sie dazu dessen Eigenschaft "Bei Taste" auf "[Ereignisprozedur]", klicken Sie auf die Schaltfläche mit den drei Punkten und geben Sie folgende Anweisungen ein:

Private Sub txtDateiname_KeyPress(KeyAscii As Integer)

  If InStr("*<>?:\/|" + Chr$(34), _
  Chr$(KeyAscii)) <> 0 Then

    Beep
    KeyAscii = 0
  End If

End Sub

Hier wird bei jedem eingetippten Zeichen per "InStr()" geprüft, ob es ungültig ist. Ist das der Fall, wird ein "Beep" als akustischer Hinweis ausgegeben und "KeyAscii" auf "0" gesetzt - für Access sieht es dann so aus, als wenn keine Taste gedrückt wurde, die ungültigen Zeichen erscheinen nicht im Textfeld.

ANZEIGE 
Laufende Nummern für Rechungen, Lieferscheine, Angebote usw. komfortabel in Excel & Word einfügen

Sie schreiben Rechnungen, Lieferscheine, Angebote und ähnliche Dokumente mit Excel oder Word und brauchen jetzt eine laufende Nummer für jedes neue Dokument?

Mit dem SmartTools Rechnungsnummern-Assistenten können Sie Ihre Rechnungen wie bisher mit Excel oder Word schreiben. Die laufende Nummer rufen Sie jederzeit mit zwei Mausklicks ab und fügen Sie ganz einfach an der aktuellen Cursorposition ein:

  • Es sind keinerlei Änderungen oder spezielle Anpassungen in Ihren vorhandenen Formularen notwendig.
  • Der Assistent merkt sich automatisch die letzte vergebene Nummer und fügt die nächste Nummer automatisch an jede gewünschte Position in Ihrer Excel-Arbeitsmappe oder Ihrem Word-Dokument ein.
  • Das Format der Rechnungsnummern können Sie frei bestimmen. Auch Kombinationen mit Datumsangaben wie Monat und Jahr sind ohne Probleme möglich.
  • Sie haben jederzeit die volle Kontrolle über die Nummern, denn Sie bestimmen sowohl den Startwert, als auch die Schrittweite und können mit einem Mausklick die letzte Nummer löschen, wenn beispielsweise eine Rechnung aus Versehen ausgestellt wurde.
  • Sie können den Assistenten nicht nur für Rechnungsnummern nutzen: Mit wenig Aufwand legen Sie bis zu 50 weitere Nummernkreise für Lieferscheine, Angebote, Gutschriften, Zertifikate usw. an
  • Eine Netzwerkversion ermöglicht sogar die Vergabe eindeutiger Nummern bei mehreren Anwendern.
Der SmartTools Rechnungsnummern-Assistent kann zurzeit mit 25% Rabatt auf den Listenpreis bestellt werden:

SmartTools Rechnungsnummern-Assistent für Excel

SmartTools Rechnungsnummern-Assistent für Word


Unterschiedliche Ausgabe von Memofeldern in Formularen und Berichten
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In einem Formular verwende ich ein Steuerelement, dessen Datenherkunft ein Memofeld ist. Das Eingabentastenverhalten habe ich auf "Neue Zeile im Feld " eingestellt, damit bei der Texteingabe automatisch ein Zeilenumbruch stattfindet. Außerdem habe ich die vertikale Bildlaufleiste aktiviert. Das funktioniert auch gut und ohne Probleme.

Allerdings soll dann in einen Bericht dieser Memotext in genau der gleichen Textformation wie er auf den Formular erscheint auch ausgedruckt werden. Dazu habe ich im Bericht ebenfalls das Steuerelement so formatiert wie im Formular. Ich benutze dieselbe Schriftartund dieselben Maße (Höhe, Breite). Der Ausdruck im Bericht sieht aber immer anders aus als im Formular. Die Zeilen werden anders umbrochen und auch wenn ich im Formular passende, zeilenfüllende "Absätze" erstelle, kommen im Bericht dann unterschiedlich lange Zeilen oder umbrochene Zeilen heraus.

Wie kann es zu diesen Effekt kommen? Sollten nicht die Schriftarten wie im Formular auch zu demselben Ergebnis im Bericht führen?
V. Hein

 ANTWORT:  Access legt beim Formatieren von Textfeldern in Formularen die Auflösung des Bildschirms, beispielsweise 96 dpi, und beim Formatieren von Textfeldern in Berichten die Auflösung des Druckers, zum Beispiel 300 dpi, zugrunde. Aufgrund dieser unterschiedlichen Auflösungen wird es leider niemals gelingen, eine absolute Übereinstimmung der im Formular vorgenommenen Formatierung mit dem späteren Ausdruck herzustellen. Dabei ist zu beachten, dass Access keine Textverarbeitung mit "WYSIWYG"-Anspruch ("WYSIWYG"= "What you see is what you get"), sondern eine Datenbank ist, die ihre Berichte nach ganz anderen Kriterien ausgibt. Mit den Bordmitteln von Access werden Sie dieses Problem leider nicht ohne weiteres in den Griff bekommen. Die einzige Möglichkeit besteht eventuell darin, den Bericht mit den Funktionen "Print", "Line", "PSet", "Circle" und Eigenschaften wie "TextHeight" und "TextWidth" selbst zu formatieren und auszugeben. Dazu müsste bei jedem Datensatz eine umfassende Analyse des Memofeldinhaltes und eine Umrechnung der Auflösungen, Breiten und Höhen per API-Funktionen erfolgen. Der Entwicklungsaufwand und die damit verbundenen Kosten stehen jedoch in keinem vernünftigen Verhältnis zu Lösungen, die auf Basis von ActiveX-Komponenten arbeiten und das Problem durch Einsatz von RTF lösen. Weitere Informationen finden Sie unter den folgenden Adressen:

Access 2003, 2002/XP und 2000:
http://www.add-in-world.com/katalog/tamemo2003

Access 97:
http://www.add-in-world.com/katalog/tamemo2000

Neuer Datensatz per Schaltfläche
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Wir lassen in unseren Formularen keine Navigationsbuttons anzeigen, so dass es keine Möglichkeit gibt, per Mausklick einen neuen Datensatz anzulegen. Wir würden stattdessen gerne eine Schaltfläche Neu einsetzen, wissen aber nicht, welche Anweisungen wir dort ausführen lassen müssen?
R. Herrmann

 ANTWORT:  Geben Sie für die Ereignisprozedur der Schaltfläche die folgenden Anweisungen ein:

Private Sub btnNeu_Click()

  If Not Me.NewRecord Then
    DoCmd.RunCommand acCmdRecordsGoToNew
  End If

End Sub

Diese Anweisungen prüfen zunächst über "Me.NewRecord", ob eventuell bereits ein neuer Datensatz bearbeitet wird. Wenn nicht, führt die folgende Anweisung "DoCmd.RunCommand acCmdRecordsGoToNew" zum Anlegen eines neuen Datensatzes.

 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 XP und 2003 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 XP/2003
  • Helpline für Ihre individuellen Fragen zu Office XP und 2003
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/