Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Donnerstag, 11. August 2005 22:53
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 12.8.2005

Ausgabe vom 12. August 2005

 In dieser Ausgabe

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

Spotlight: Mailwasher Pro - die perfekte Outlook-Ergänzung gegen Spam, Würmer und 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. Der Nachteil dieser Lösungen: Die Nachrichten werden zunächst kosten- und zeitintensiv auf Ihren Rechner heruntergeladen und erst dann analysiert, sortiert oder gegebenenfalls gelöscht.

Mailwasher Pro ist die revolutionäre Alternative - das bereits millionenfach bewährte Programm wird ab sofort von SmartTools Publishing in einer komplett deutschen Version angeboten. Das Konzept:

  • Mit Mailwasher Pro bestimmen Sie alleine, welche Mails von Outlook überhaupt auf Ihren Computer geladen werden.
  • 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. Das Programm sortiert die Nachrichten für Sie vor. Auf Wunsch kontrollieren Sie die Liste noch und löschen dann per Mausklick alle gefährlichen und nicht erwünschten Mails direkt auf dem Mailserver.
  • Outlook wird erheblich entlastet. Sie sparen Zeit und Geld, weil nur noch die Mails komplett geladen werden, die Sie auch wirklich empfangen möchten.
  • Mailwasher Pro kann sowohl normale Mailkonten (POP3), als auch IMAP, AOL und Hotmail von Spam befreien.
Mailwasher Pro ist dank komfortabler Assistenten in wenigen Minuten eingerichtet (die Informationen über Ihre Mailkonten können beispielsweise direkt aus Outlook übernommen werden) und sofort einsatzbereit.

Nähere Informationen zu Mailwasher Pro und dem zurzeit gültigen Einführungspreis mit 15% Rabatt finden Sie unter:

MailWasher Pro für Outlook

Download-Tipp: Komfortable Navigationsschaltflächen für Access-Formulare

Die Standard-Navigationsschaltflächen von Access erweisen sich in der Praxis als wenig komfortabel. Sie sind zu klein, bieten keine "Quickinfos" als Bedienhilfe und es fehlen wichtige Funktionen wie eine Möglichkeit zum Löschen von Datensätzen.

Die kostenlosen SmartTools Navigationsschaltflächen sind eine interessante Alternative, die Sie universell und mit wenig Aufwand in jedem Formular einsetzen können. Sie sind übersichtlich, in verschiedenen Designs verfügbar, bieten zahlreiche Zusatzfunktionen und sind samt Sourcecode und Online-Hilfe zum kostenlosen Download freigegeben:

 SmartTools Navigationsschaltflächen für Formulare

Techinfo: Zugriff auf Excel-Tabellen per VBA
Versionen: Access 2003, 2002/XP, 2000 und 97

In Ihren Access-Lösungen müssen Sie regelmäßig auf Excel-Tabellen zugreifen, um beispielsweise Ergebnisse einer Kalkulation für die Weiterverarbeitung in Access auszulesen oder um Daten aus einer Access-Tabelle in eine Excel-Tabelle für eine Auswertung per Diagramm zu übertragen. Erste Versuche scheitern häufig daran, dass der Zugriff auf weitere Zellen ausgehend von "ActiveCell" nur zu Fehlermeldungen führen oder das Schreiben von Werten mit der Meldung "Typen unverträglich" enden. Unter der folgenden Adresse finden Sie eine Techinfo, die sowohl den lesenden als auch den schreiben Zugriff auf Excel-Tabelle sehr detailliert und Schritt für Schritt erläutert:

Techinfo: Zugriff auf Excel-Tabellen per VBA

Anhand praktischer, direkt nachvollziehbarer Beispiele zeigen die TechNet-Spezialisten beispielsweise, wie Sie einzelne Zellen adressieren, um deren Inhalte, Formeln oder Formatierungen auszulesen oder um deren Inhalte, Formeln oder Formatierungen explizit zu setzen. Die Erläuterungen sind anschaulich illustriert, so dass Sie Ihre Ergebnisse direkt vergleichen und so Fehlern einfacher auf die Spur kommen.

 Access-Tipp der Woche

Recordsets mit Parameterabfragen einsetzen
Versionen: Access 2003, 2002/XP, 2000 und 97

In Datenbanken setzen Sie häufig Parameterabfragen ein, um den flexiblen Aufbau von Berichten zu steuern. So wird zum Beispiel ein Parameter "Welches Land" eingesetzt, um Bestelldaten der Kunden aus einem bestimmten Land im Bericht auszugeben. Beim Öffnen des Berichtes zeigt Access dann automatisch einen kleinen Dialog "Parameterwerte eingeben" an, über den das gewünschte Land eingetippt wird. Solche Parameterabfragen bieten sich natürlich auch als Basis für Recordsets in VBA-Routinen an, um zum Beispiel spezielle Statistiken für die Bestellungen von Kunden aus bestimmten Ländern zu erstellen. Dabei taucht nun jedoch das Problem auf, dass die Abfragen einen oder mehrere Parameter erwarten, die normalerweise beim Ausführen der Abfrage von Access automatisch per Dialog erfragt werden. Um Parameterabfragen als Basis für Recordsets verwenden zu können, müssen Sie also die notwendigen Parameter aus einer VBA-Routine heraus an die Abfrage übergeben.

Dazu können Sie sich drei spezielle Umstände zunutze machen: Erstens verwaltet Access alle Abfragen unter dem Objekt "Database" in einer Auflistung "QueryDefs", wobei jede Abfrage dem Datentyp "QueryDef" (Abfrage-Definition) entspricht. Zweitens verfügt jedes Objekt "QueryDef" über eine Auflistung "Parameters", die die Informationen zu den einzelnen Parametern festhält, so wie Sie sie im Abfrage-Entwurf über das Menü Abfrage-Parameter definiert haben. Drittens stellt jedes Objekt "QueryDef" eine Methode "OpenRecordset" zur Verfügung, über die Sie das Ergebnis der Abfrage einem Recordset zuweisen können. In VBA sieht das dann beispielsweise so aus:

  Dim db As Database
  Dim rs As Recordset
  Dim qd As QueryDef

Hier werden zunächst die benötigten Variablen für den Zugriff deklariert.

  Set db = CurrentDb()
  Set qd = db.QueryDefs("Bestellungen nach Land")

Dann setzen wir die Objektvariable "db" als Referenz auf die aktuelle Datenbank. Die dann folgende Anweisung weist der Objektvariablen "qd" eine Referenz auf die gewünschte Abfrage zu.

qd.Parameters("Welches Land")= "Belgien"

Mit dieser Anweisung wird der Parameter "Welches Land" auf die Zeichenkette "Belgien" eingestellt.

Set rs = qd.OpenRecordset

Diese Anweisung initialisiert schließlich ein Recordset "rs" über die Methode "OpenRecordset" der jeweiligen Abfrage. Über dieses Recordset können Sie nun wie gewohnt die einzelnen Datensätze durchgehen und wie gewünscht verarbeiten. Verfügt die Abfrage über mehrere Parameter, weisen Sie die gewünschten Zeichenketten und Werte einfach hintereinander wie folgt zu:

  .....
  Set qd = db.QueryDefs("Bestellungen nach Land/Jahr")
  qd.Parameters("Welches Land")= "Frankreich"
  qd.Parameters("Welches Jahr")= 2002
  Set rs = qd.OpenRecordset
  .....

Diese Anweisungen "versorgen" beispielsweise eine Parameter-Abfrage, die Bestellungen sowohl nach Land als auch nach einem bestimmten Jahr selektiert.

Um Informationen für einzelne, eventuell unbekannte Parameter auszulesen, können Sie die Eigenschaften "Count" der Auflistung sowie "Name", "Value" und "Type" der einzelnen Parameter verwenden:

  For I = 0 To qd.Parameters.Count - 1
    Debug.Print qd.Parameters(I).Name & ": " & _
                qd.Parameters(I).Value
  Next I

"Name" entspricht dem Namen des Parameters (zum Beispiel "Welches Land"), "Value" beinhaltet den aktuellen Wert (also beispielsweise "Belgien" oder "2002") und "Type" gibt Auskunft über den Datentyp in Form eines numerischen Wertes, der durch "db"-Konstanten anhand der folgenden Tabelle identifiziert werden kann:

  • dbBinary: Binary (Memofeld mit binärem Inhalt)
  • dbBoolean: Ja/Nein
  • dbByte: Zahl/Byte
  • dbChar: Zeichen/Text mit Länge= "1"
  • dbCurrency: Währung
  • dbDate: Datum/Zeit
  • dbDecimal: Zahl/Dezimal
  • dbDouble: Zahl/Double
  • dbFloat: Fließkomma
  • dbInteger: Zahl/Integer
  • dbLong: Zahl/LongInteger
  • dbNumeric: Zahl/Numerisch
  • dbSingle: Zahl/Single
  • dbText: Text
ANZEIGE 
Resizer und andere neue Steuerelemente für Access

Die Total Access Components sind eine umfangreiche Sammlung neuer Steuerelemente für Ihre Formulare und Berichte. Das absolute Highlight:

Der "Resizer" löst für Sie die Probleme mit unterschiedlichen Bildschirmauflösungen. Sie entwerfen nur noch ein Formular und platzieren darauf den Resizer. In Zukunft vergrößert oder verkleinert der Resizer für Sie sämtliche Steuerelemente proportional zur aktuellen Bildschirmauflösung!

Außerdem in dem Paket:

  • Schaltflächen mit Grafiken
  • komfortablen Eingabehilfen
  • grafische Statusanzeigen
  • digitale und analoge Uhren
  • neue 3D- und Animationseffekte
  • Post-It's, Taschenrechner, Multimedia-Controls u.v.m.
Weitere Informationen finden Sie unter:

Total Access Components für Access 2003, 2002/XP und 2000

Total Access Components für Access 97


 Access-Helpline

Haben Sie Fragen zu Access 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.

Gelöschte Dateien erscheinen nicht im 'Papierkorb'
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  In meiner Import-Routine lösche ich die Dateien, aus denen Daten importiert wurden, mit der "Kill"-Anweisung. Nun gab es Rückfragen und ich musste die importierten Daten mit den Daten aus der Originaldatei vergleichen. Dabei ist mir aufgefallen, dass die Dateien bei "Kill" unwiederbringlich gelöscht und nicht im Papierkorb abgelegt werden und somit für eine spätere Kontrolle nicht mehr verfügbar sind. Kann man das "Löschen in den Papierkorb" eventuell über einen Parameter steuern?
S. Ziegel

 ANTWORT:  Per Parameter lässt sich das nicht steuern. Wie so oft schafft aber der Einsatz einer API-Funktion Abhilfe:

  1. Geben Sie die folgenden Deklarationen in den allgemeinen Teil eines Moduls ein:
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOERRORUI = &H400
Private Const FOF_NOCONFIRMATION = &H10

Private Type SHFILEOPSTRUCT
  hwnd As Long
  wFunc As Long
  pFrom As String
  pTo As String
  fFlags As Integer
  fAnyOperationsAborted As Long
  hNameMappings As Long
  lpszProgressTitle As String
End Type

Private Declare Function SHFileOperation Lib _
"shell32.dll" (ByRef lpFileOp As SHFILEOPSTRUCT) As Long

  • Dann folgt die eigentliche Funktion:
Function DeleteToRecycleBin(FileName As String) As Boolean
  Dim FOS As SHFILEOPSTRUCT
  Dim R As Long

  On Error Resume Next
  DeleteToRecycleBin = True
  With FOS
    .fFlags = FOF_ALLOWUNDO
    .pFrom = FileName
    .wFunc = FO_DELETE
  End With
  R = SHFileOperation(FOS)
  If Err <> 0 Or R <> 0 Then DeleteToRecycleBin = False

End Function

Der Parameter "FileName" definiert die zu löschende Datei (Laufwerk, Pfad, Dateiname). Hier können Sie aber auch nur den Pfad auf einen zu löschenden Ordner angeben oder eine Dateimaske mit Wildcards wie "*.txt" zum Löschen einer Dateigruppe verwenden. Über das Feld "fFlags" der Struktur "SHFILEOPSTRUCT" steuern Sie das Verhalten der Funktion: "FOF_ALLOWUNDO" sorgt dafür, dass die Datei (oder der Ordner beziehungsweise die Dateigruppe) im Papierkorb abgelegt wird. Per "Or"-Verknüpfung mit anderen Konstanten können Sie noch festlegen, ob eine Sicherheitsabfrage oder eine Fehlermeldung angezeigt werden soll:

    .fFlags = FOF_ALLOWUNDO Or _
              FOF_NOCONFIRMATION Or
              FOF_NOERRORUI

Diese Funktion können Sie dann zukünftig beispielsweise wie folgt anstelle von "Kill" aufrufen:

Dim fOK As Boolean

fOK= DeleteToRecycleBin(strFName)

Das Funktionsergebnis, hier abgelegt in "fOK", ist "True", wenn die Datei erfolgreich gelöscht wurde bzw. "False", wenn es beim Löschen zu einem Fehler kam.

ANZEIGE 
Barcodes komfortabel mit Access ausgeben

Barcode für Windows ist ein Komplettpaket zum Erstellen von Barcodes in Access, Excel und Word. Sie erhalten TrueType-Schriften sowie ein leistungsfähiges Programm zur Berechnung der Prüfziffern, das Sie komfortabel bedienen oder aus den Office-Applikationen heraus steuern können. Alle gängigen Barcodes sind enthalten. Unter anderem:

  • Code EAN 13, EAN 8, Addon -2 und -5, EAN Velocity
  • Code 128, EAN128, UPS128
  • Code 39, -extended, PZN
  • 2/5 Interleaved, 2/5 Industrie
  • Leit- und Identcode der Post
Weitere Informationen finden Sie unter:

Barcode für Windows


Einträge eines Nodes im TreeView-Steuerelemente entfernen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Wir setzen in einem Formular das TreeView-Steuerelement ein, um eine Dateiauswahl anzuzeigen. Dabei haben unsere Anwender die Möglichkeit, einzelne Dateien, die zum Beispiel in einem Verzeichnis "Export" vorhanden sind, anzuklicken und zu löschen. Wir suchen nun nach einer Möglichkeit, den Eintrag für die gelöschte Datei aus dem TreeView-Steuerelemente zu entfernen, finden aber keine "Delete"-Methode?
C. Spengler

 ANTWORT:  Eine "Delete"-Methode kennt das TreeView-Steuerelement nicht; das Entfernen einzelner Einträge oder ganzer Bereich erfolgt über die "Remove"-Methode der "Nodes"-Auflistung des Steuerelementes. Sie werden vermutlich "SelectedItem" nutzen, um auf den aktuellen Eintrag zuzugreifen und die dazugehörige Datei zu löschen. Damit als Parameter können Sie dann den Eintrag wie folgt löschen:

tvwDateiauswahl.Nodes.Remove _
tvwDateiauswahl.SelectedItem.Index

Die "Remove"-Methode erwartet als Parameter den Index des jeweiligen Eintrages, der sich über "SelectedItem.Index" ermitteln lässt.

Individuelle Symbole für Schaltflächen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich kann ja einer Schaltfläche über die Eigenschaft "Bild" ein Symbol zuordnen und dabei eines der vordefinierten Symbole verwenden oder eines aus einer externen Datei laden. In einem Formular verwende ich nun eine Schaltfläche, die je nach Status verschiedene Symbole anzeigen soll. Ich kann diese Symbole als externe Dateien im Verzeichnis der Datenbank ablegen und dann jeweils per 'Schaltfläche.Picture = "D:\Datenbanken\Bild.bmp"' umschalten. Das Problem dabei ist, dass Laufwerk und Pfad je nach Installation anders sind, die Symbole somit nicht gefunden und die einzelnen Datenbanken angepasst werden müssen. Haben Sie einen Tipp, wie sich dieses Problem lösen lässt?
W. Kleist

 ANTWORT:  Legen Sie im Formular verschiedene Bild-Steuerelemente an, denen Sie zunächst die jeweils möglichen Symbole zuordnen. Stellen Sie deren Eigenschaft "Sichtbar" dann auf "Nein". Wenn sich der Status ändert, können Sie das Symbol der Schaltfläche einfach per Zuweisung beispielsweise wie folgt ändern:

Me.Schaltfläche.Picture = Me.Bild.Picture

 Newsletter-Tipp

Outlook-Tipps kostenlos per E-Mail

SmartTools Outlook Weekly bietet jede Woche Tipps, aktuelle Infos und Download-Links für Outlook 2003, 2002/XP, 2000 und 97/98:

  • Professionelle Tipps zum effektiveren Arbeiten
  • Undokumentierte Parameter
  • Fertige VBA-Prozeduren für neue Funktionen
  • Aktuelle Informationen über Sicherheitslücken, Bugs und Patches
  • Download-Links zu Outlook-Erweiterungen
  • Helpline für Ihre Fragen zu Outlook
Bestellen Sie jetzt Ihr kostenloses Abo:

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/