Von: access-weekly-html-request@smarttools.de im Auftrag von SmartTools Publishing [access-weekly-html-reply@smarttools.de]
Gesendet: Freitag, 31. März 2006 00:23
An: Access Weekly Abonnenten
Betreff: SmartTools Access Weekly vom 31.3.2006

Ausgabe vom 31. März 2006

 In dieser Ausgabe

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

News: Der deutsche Reminder Manager 2.0 - Perfektes Zeitmanagement mit Outlook

Wenn Sie sich von Outlook an wichtige Termine und Aufgaben oder die Nachverfolgung von E-Mails und Kontakten erinnern lassen, kennen Sie das Problem: Die Erinnerung funktioniert nur dann, wenn sich die entsprechende Elemente in einem der vorgegebenen Standardordner befinden. Sobald Sie neue Ordner anlegen, um Mails, Termine, Aufgaben und Adressen besser zu organisieren, steht die Erinnerungsfunktion nicht mehr zur Verfügung. Auch Erinnerungen aus einem öffentlichen Ordner vom Exchange Server kann Outlook standardmäßig nicht anzeigen! Hier ist endlich die Lösung für dieses Problem:

  • Der Reminder Manager 2.0 erinnert Sie an Termine und Nachverfolgungen für Termine, Aufgaben, Mails und Kontakte aus jedem beliebigen Ordner in einer Outlook-PST-Datei oder auf dem Exchange-Server.
  • Optimieren Sie Ihr Zeitmanagement, denn mit dem Reminder Manager können Sie endlich alle Termine und Erinnerungen perfekt organisieren. Die Liste kann nicht nur beliebig formatiert und gruppiert werden, sondern es lassen sich auch zukünftige Erinnerungen und Termine anzeigen, so dass eine echte Zeitplanung möglich ist.
  • Auch unterwegs nichts verpassen! Der Reminder Manager 2.0 schickt Ihnen auf Wunsch automatisch eine E-Mail, sobald eine Erinnerung oder Nachverfolgung ansteht. Lassen Sie sich auf diesem Weg beispielsweise auf dem Mobiltelefon per SMS an wichtige Termine erinnern.
  • Der Reminder Manager ist weltweit bereits bei vielen tausend Anwendern und Unternehmen im Einsatz. Die Version 2.0 wird jetzt von SmartTools komplett in Deutsch mit vielen neuen leistungsfähigen Funktionen angeboten.
Nutzen Sie jetzt den Einführungspreis bis zum 30.4.2006 mit über 30% Rabatt:

http://www.add-in-world.com/katalog/ol-reminder/

Download-Tipp: SQL per Mausklick aus Abfragen in VBA-Prozeduren übernehmen

Bei der Entwicklung von Datenbanken setzen Sie regelmäßig SQL-Anweisungen ein, die Sie beispielsweise per VBA und "DoCmd.RunSQL" oder "CurrentDb.Execute" nutzen. In vielen Fällen bietet es sich an, zunächst eine "normale" Abfrage zu entwerfen, deren SQL-Entsprechung Sie dann in den VBA-Editor übernehmen.

Genau diese Aufgabe kann Ihnen in Zukunft das kostenlose Add-In SQL aus Abfragen abnehmen. Nach dem Aufruf zeigt es eine Liste der verfügbaren Abfragen an. Markieren Sie eine Abfrage und die zugehörige SQL-Anweisung wird ausgelesen und in einem Textfeld angezeigt. Bei Bedarf nehmen Sie noch Anpassungen vor oder lassen per Mausklick eine "DoCmd"- oder "Execute"-Anweisung bzw. eine die Zuweisung in der Form "strSQL="/"set rs=" hinzufügen. Über eine Schaltfläche übernehmen Sie die fertige Anweisung in die Zwischenablage und fügen sie direkt in Ihre VBA-Prozedur ein:

 SQL aus Abfragen kostenlos herunterladen!

News: Vier neue CTPs rund um SQL Server 2005 Express

Microsoft hat vier neue Community Technical Previews (CTP) für den SQL Server 2005 Express (SQLX) zum kostenlosen Download bereitgestellt. Die wichtigste CTP betrifft das Service Pack 1, das sowohl für den "normalen" SQL Server 2005 als auch für die Express-Edition erscheinen wird: Es handelt sich dabei um ein reines Bugfix-SP, das keine neue Funktionen oder Erweiterungen enthält. Das kann sich jedoch bis zur Veröffentlichung der endgültigen Version noch ändern. Eine detaillierte Übersicht der behobenen Fehler finden Sie in der folgenden Aufstellung:

CTP für den SQL Server 2005 Express

Das Service Pack steht nicht als separater Download zur Verfügung und wird nicht über eine vorhandene Installation installiert. Vielmehr wird ein Setup des SQLX mit integriertem Service Pack bereitgestellt, das Sie nach Deinstallation einer eventuell vorhandenen Installation ausführen und somit den SQLX komplett neu installieren. Vorhandene Daten und Einstellungen bleiben dabei jedoch erhalten:

 Service Pack 1 für SQL Server 2005 Express

Die nächste CTP betrifft das SQL Server 2005 Management Studio Express (MSSMSE). Microsoft stellt damit eine "Light"-Version des leistungsfähigen Verwaltungstools speziell für den SQLX zur Verfügung, mit der Sie unter anderem komfortabel Datenbank-Objekte anlegen und ändern, Zugriffsrechte zuordnen oder Datensicherungen ausführen können. Weitere Informationen zum MSSMSE finden Sie unter der folgenden Adresse:

CTP für das SQL Server 2005 Management Studio Express

Den Download (ca. 40 MB) des MSSMSE finden Sie unter der folgenden Adresse:

 SQL Server 2005 Management Studio Express

Der "SQL Server Express Edition with Advanced Services" ist eine erweiterte, aber ebenfalls kostenlose Version des SQLX, die Funktionen zur Berichtserstellung und eine Volltextsuche sowie das Management Studio Express umfasst. Weitere Informationen dazu finden Sie unter der folgenden Adresse:

SQL Server Express with Advanced Services

Den Download (ca. 250 MB) des SQLX/AS, der das SP-1 bereits beinhaltet, finden Sie unter der folgenden Adresse:

 SQLX/AS inkl. SP-1

Schließlich steht mit der vierten CTP ein Toolkit für den SQLX bereit, das unter anderem verschiedene nützliche Verwaltungs- und Entwickler-Tools, SDKs, White Papers und Techinfos umfasst. Außerdem ist das Management Studio Express sowie eine Erweiterung enthalten, die die Nutzung der SQL Server 2005 Reporting Services mit dem SQLX erlaubt. Weitere Informationen finden Sie unter der folgenden Adresse:

CTP zum Toolkit für den SQLX

Den Download (ca. 220 MB) finden Sie unter der folgenden Adresse:

 Toolkit für den SQLX

Waren die News & Downloads hilfreich für Sie? Klicken Sie bitte hier!

 Access-Tipp der Woche

Externe Anwendungen starten und kontrollieren, Teil 1
Versionen: Access 2003, 2002/XP, 2000 und 97

In Ihren VBA-Lösungen müssen Sie immer wieder externe Anwendungen starten, um beispielsweise den FTP-Transfer von Daten von einem Großrechner durchzuführen, die anschließend in Access weiterverarbeitet werden sollen. Häufig gestaltet sich dieses Zusammenspiel recht kompliziert: Hat die externe Anwendung ihre Arbeit schon erledigt? Stehen die Daten zur weiteren Verarbeitung komplett zur Verfügung? Die Shell-Funktion ist hier wenig hilfreich, da sie lediglich externe Anwendungen starten kann, aber keine Statusabfragen erlaubt. Und lassen sich die oben gestellten Fragen nicht eindeutig beantworten, kann es zu ernsthaften Problemen kommen: Zugriffskonflikte beim Öffnen der Datendatei, Verarbeitung alter und somit falscher Inhalte oder nicht abgefangene Laufzeit-Fehler, um nur einige zu nennen.

Mit diesem zweiteiligen Tipp der Woche stellen wir Ihnen eine Klassenbibliothek vor, die genau diese Probleme löst: Sie erlaubt den Start einer externen Anwendung und die Abfrage, ob diese Anwendung noch ausgeführt wird. Im ersten Teil legen wir die Klassenbibliothek an, der zweite Teil erläutert den Einsatz der Klassenbibliothek in der Praxis und die Funktionsweise.

Um die Klassenbibliothek anzulegen und die Deklarationen, Funktionen und Prozeduren einzugeben, gehen Sie wie folgt vor:

  1. Öffnen Sie die Datenbank mit der Lösung, aus der heraus eine externe Anwendung gestartet und kontrolliert werden soll.
  2. Wechseln Sie mit Alt+F11 in die VBA-Entwicklungsumgebung (nur Access 2003, 2002/XP, 2000).
  3. Wählen Sie das Menü Einfügen-Klassenmodul an.
  4. Drücken Sie F4, um das Eigenschaftenfenster anzeigen zu lassen und benennen Sie das Modul "clsExecProg" (Access 2003, 2002/XP, 2000) bzw. speichern Sie das Sie das Modul unter dem Namen "clsExecProg" (Access 97)
  5. Geben Sie im allgemeinen Teil des Moduls die folgenden Deklarationen ein bzw. kopieren Sie sie aus dem Newsletter in den allgemeinen Teil:
Option Explicit

'Typen-Deklarationen...
Private Type STARTUPINFO
  CB As Long
  lpReserved As String
  lpDesktop As String
  lpTitle As String
  dwX As Long
  dwY As Long
  dwXSize As Long
  dwYSize As Long
  dwXCountChars As Long
  dwYCountChars As Long
  dwFillAttribute As Long
  dwFlags As Long
  wShowWindow As Integer
  cbReserved2 As Integer
  lpReserved2 As Long
  hStdInput As Long
  hStdOutput As Long
  hStdError As Long
End Type

Private Type PROCESS_INFORMATION
   hProcess As Long
   hThread As Long
   dwProcessID As Long
   dwThreadID As Long
End Type

Private Type SHELLEXECUTEINFO
  cbSize As Long
  fMask As Long
  hwnd As Long
  lpVerb As String
  lpFile As String
  lpParameters As String
  lpDirectory As String
  nShow As Long
  hInstApp As Long
  ' Optionale Felder
  lpIDList As Long
  lpClass As String
  hkeyClass As Long
  dwHotKey As Long
  hIcon As Long
  hProcess As Long
End Type


'API -Funktionen...
Private Declare Function WaitForSingleObject _
                Lib "kernel32" _
               (ByVal hHandle As Long, _
                ByVal dwMilliseconds As Long) As Long

Private Declare Function ShellExecuteEx Lib _
                "shell32.dll" _
                Alias "ShellExecuteExA" ( _
                lpExecInfo As SHELLEXECUTEINFO) As Boolean


'Konstanten...
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
Private Const SEE_MASK_NOCLOSEPROCESS = &H40&
Private Const SEE_MASK_FLAG_NO_UI = &H400&

Private Const STARTF_FORCEOFFFEEDBACK = &H80
Private Const STARTF_FORCEONFEEDBACK = &H40
Private Const STARTF_RUNFULLSCREEN = &H20
Private Const STARTF_USECOUNTCHARS = &H8
Private Const STARTF_USEFILLATTRIBUTE = &H10
Private Const STARTF_USEPOSITION = &H4
Private Const STARTF_USESHOWWINDOW = &H1
Private Const STARTF_USESIZE = &H2
Private Const STARTF_USESTDHANDLES = &H100

'Interne Variablen...
Private ep_ProcInfo As PROCESS_INFORMATION
Private ep_StartupInfo As STARTUPINFO
Private ep_ShellExecInfo As SHELLEXECUTEINFO

'Eigenschaften...
'Programm -> X:\Pfad\Datei.exe|com|bat etc.
Private ep_ProgName As String

'Parameter -> z.B. Dokument
Private ep_ProgParas As String

Private ep_WorkDir As String 'Arbeitsverzeichnis
Private ep_Error As Boolean 'Fehler aufgetreten?

'Fenster-Modus für Programm
Private ep_WinMode As Long

  • Geben Sie danach die folgenden Prozeduren und Funktionen ein bzw. kopieren Sie sie aus dem Newsletter in das Modul:
Public Property Let WinMode(lngWinMode As Long)

  ep_WinMode = lngWinMode

End Property

Private Sub Class_Initialize()

  ep_Error = False 'Kein Fehler
  ep_WinMode = vbMaximizedFocus 'Vollbild
  ep_WorkDir = Environ$("windir") 'Windows-Verzeichnis

End Sub

Public Property Let ProgParas(strParas As String)

  ep_ProgParas = strParas

End Property

Public Sub ExecProg()

  If ep_ProgName <> "" Then 'Anwendung angegeben...
    ep_ShellExecInfo.cbSize = Len(ep_ShellExecInfo)
    ep_ShellExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS + _
                             SEE_MASK_FLAG_NO_UI
    ep_ShellExecInfo.lpFile = ep_ProgName
    ep_ShellExecInfo.lpParameters = ep_ProgParas
    ep_ShellExecInfo.lpDirectory = ep_WorkDir
    ep_ShellExecInfo.nShow = ep_WinMode
    'Default: vbNormalFocus
    ep_Error = ShellExecuteEx(ep_ShellExecInfo)
    ep_ProcInfo.hProcess = ep_ShellExecInfo.hProcess
    ep_Error = (ep_ShellExecInfo.hInstApp < 32)
  Else 'Nur Datei/Dokument angegeben...
    ep_ShellExecInfo.cbSize = Len(ep_ShellExecInfo)
    ep_ShellExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS + _
                             SEE_MASK_FLAG_NO_UI
    ep_ShellExecInfo.lpFile = ep_ProgParas
    ep_ShellExecInfo.lpParameters = vbNullString
    ep_ShellExecInfo.lpDirectory = ep_WorkDir
    ep_ShellExecInfo.nShow = ep_WinMode
    'Default: vbNormalFocus
    ep_Error = ShellExecuteEx(ep_ShellExecInfo)
    ep_ProcInfo.hProcess = ep_ShellExecInfo.hProcess
    ep_Error = (ep_ShellExecInfo.hInstApp < 32)
  End If

End Sub

Public Property Get IsRunning() As Boolean
  Dim lngStatus As Long

  lngStatus = WaitForSingleObject( _
              ep_ProcInfo.hProcess, 10)

  If lngStatus = -1 Then 'Ungültiger Handle...
    IsRunning = False
    ep_Error = True
  Else
    IsRunning = (lngStatus <> 0)
  End If

End Property

Public Property Get EPError() As Boolean

  EPError = ep_Error

End Property

Public Property Let ProgName(strProgName As String)

  ep_ProgName = strProgName

End Property

Public Property Let WorkDir(strWorkDir As String)

  ep_WorkDir = strWorkDir

End Property

  • Speichern Sie die Änderungen und verlassen Sie die VBA-Entwicklungsumgebung wieder.
Weiter geht es im zweiten Teil dieses Tipps der Woche mit der Erläuterung des Einsatzes der Klassenbibliothek in der Praxis und der Funktionsweise.

War dieser Tipp für Sie hilfreich? Klicken Sie bitte hier!

ANZEIGE 
Formatierte Memofelder für Ihre Datenbanken

Mit Total Access Memo können Sie endlich formatierten Text in Ihren Datenbanken anzeigen, bearbeiten und ausdrucken:

  • Sie erhalten ein neues Steuerelement, das Sie mit zwei Mausklicks in Formulare und Berichte einfügen können
  • Ihre Memofelder werden zu einer kleinen Textverarbeitung mit allen wichtigen Format-Funktionen. Sie können sogar eingebettete Objekte und Grafiken verwenden.
  • Sie können das neue Steuerelement beliebig oft mit beliebig vielen Datenbanken an andere Anwender weitergeben
Weitere Informationen finden Sie unter:

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

Total Access Memo 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.

Mehrere Access-Versionen gemeinsam auf einem Rechner nutzen
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich habe auf meinem Notebook die Access-Versionen 97 und 2003 installiert. Seit der Installation von Access 97 kann unter Access 2003 der Tabellenverknüpfungs-Manager zwar aufgerufen werden, zeigt aber keine Tabellen an. Kennen Sie dieses Problem und seine Lösung?
M. Gebhard

 ANTWORT:  Durch die Installation einer älteren Access-Version nach einer neueren Access-Version sind neue Komponenten durch ältere überschrieben worden. Das führt dazu, dass die neuere Version einzelne, speziell für sie in die Komponenten aufgenommene Routinen nicht mehr findet. Eine Installation in der umgekehrten Reihenfolge - erst Access 97, dann Access 2003 - wäre unproblematisch gewesen: In den neuen Komponenten von Access 2003 sind die "alten", von Access 97 (und 200, 2002/XP) benötigten Routinen enthalten, so dass beide Versionen parallel eingesetzt werden können. Das ist auch der Weg, den Microsoft für den Einsatz mehrerer Access-Versionen auf einem Rechner empfiehlt: Begonnen wird mit der ältesten Version, also beispielsweise Access 97 oder 2000, dann folgt Access 2000, 2002/XP und/oder 2003. Komplettiert wird das Durcheinander noch dadurch, dass Sie nun zwei Versionen der Jet-Engine auf dem Rechner haben. Erfahrungsgemäß lässt sich dieses Durcheinander NICHT durch die Deinstallation von Access 97 und 2003 und eine erneute Installation in der Reihenfolge "erst Access 97, dann Access 2003" beseitigen, da sich Office-Installationen nie restlos von einem Rechner entfernen lassen. Sie sollten vielmehr Access 97 bzw. Office 97 deinstallieren, den Rechner einmal neu starten und dann die Reparatur-Funktion des Office 2003-Setups nutzen, um eine funktionierende Access/Office 2003-Installation herzustellen. Für den Einsatz von Access 97 auf dem gleichen Rechner empfehlen wir VMware (www.vmware.com): Damit können Sie eine virtuelle Maschine beispielsweise mit Windows 98 oder 2000 und Office 97/Access 97 einrichten und darüber Ihre älteren Datenbanken pflegen.

Laufzeitfehler in Suchfunktion
Versionen: Access 2003, 2002/XP, 2000 und 97

 FRAGE:  Ich habe gerade die "Suchfunktion für alle Felder in einem Formular" ausprobiert und erhalte einen "Laufzeitfehler 13: Typen unverträglich". Im Debug-Modus ist dann die Zeile:

Set rs = CurrentDb.OpenRecordset(strTable)

gelb markiert. Ich habe das Modul und die VBA Anweisung direkt in Access kopiert und mich genau an die Anleitung gehalten. Habe ich trotzdem irgendetwas falsch gemacht, dass es nicht funktioniert?
J. Jaenke

 ANTWORT:  Vermutlich haben Sie die Routine in eine Access 2003, 2002/XP oder 2000-Datenbank kopiert - dort ist standardmäßig ADO aktiviert, "CurrentDb.OpenRecordset" liefert aber einen DAO-Recordset. Wähen Sie Extras-Verweise an, entfernen Sie das Häkchen für ADO und setzen Sie ein Häkchen für DAO.

ANZEIGE 
Serienmails an Adressen aus Access und Outlook direkt aus Word verschicken

Vergessen Sie den umständlichen Versand von Serienbriefen per Post! Ab sofort können Sie Angebote, Preislisten, Newsletter, Ankündigungen usw. an Ihre Outlook-Kontakte direkt aus Word ganz einfach per E-Mail verschicken. Der SmartTools Serienmailer ist direkt in Word integriert und mit wenigen Mausklicks startbereit:

  1. Das Anschreiben für Ihre Serien-E-Mail erstellen Sie genau wie einen ganz normalen Serienbrief in Word. Die Adressdaten übernehmen Sie aus Access, Outlook oder jeder anderen von Word unterstützten Datenquelle wie Excel, SQL-Server usw.
  2. Sie starten dann den SmartTools Serienmailer aus dem Menü Extras und legen hier das Feld mit der E-Mail-Adresse sowie den Betreff fest. Auf Wunsch können Sie sogar einen oder mehrere Anhänge auswählen, die mit dem Anschreiben verschickt werden sollen.
  3. Klicken Sie auf Serienmails Senden und der Assistent verschickt voll automatisch eine personalisierte Mail an jeden Empfänger aus der von Ihnen vorgegebenen Liste.
Der SmartTools Serienmailer kann zurzeit mit 20% Rabatt auf den Listenpreis bestellt werden:

http://www.add-in-world.com/katalog/word-serienmailer/


Hyperlink-Adressen in Outlook-E-Mail einfügen
Versionen: Access 2003, 2002/XP und 2000

 FRAGE:  Mit einer Access-Datenbank verwalte ich Hyperlink-Adressen von Support-Webseiten verschiedener Hersteller. Eine einzelne Adresse möchte ich als Antwort auf telefonische Anfragen unserer Anwender per E-Mail versenden. Es ist mir gelungen, per Office Automation eine Nachricht in Outlook anzulegen, Absender, Empfänger und Betreff zu füllen, die Adresse mit einem Hinweistext in den Nachrichtentext einzufügen und die E-Mail im Postausgang abzulegen. Die Mails werden auch korrekt versendet, allerdings funktionieren einige, nicht alle!, der Links nicht. Woran kann das liegen?
U. Neuner

 ANTWORT:  Die nicht funktionierenden Links enthalten wahrscheinlich Leerzeichen in der Adresse. Fügen Sie folgende Anweisung in Ihre VBA-Routine ein:

strURL = Replace(strURL, " ", "%20")

Dadurch werden die Leerzeichen durch das Sonderzeichen "%20" ersetzt und die Links funktionieren wie erwartet.

War die Helpline für Sie hilfreich? Klicken Sie bitte hier!

 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:

  • Berichte über Bugs, Patches und Sicherheitslücken
  • Undokumentierte Parameter und Funktionen
  • Fertige Makros zur Automatisierung häufiger Arbeitsvorgänge
  • Perfekte Datensicherung Ihrer Dokumente
  • 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 © 2006 SmartTools Publishing Thomas Tai
Luisenstrasse 52, 49565 Bramsche
Telefon: 05461/9952-0, Fax: 05461/2609
E-Mail: access-weekly@smarttools.de
Internet: http://www.smarttools.de/

Alle Rechte vorbehalten. Kein Teil dieses Newsletters darf in irgendeiner Form ohne schriftliche Genehmigung reproduziert, vervielfältigt oder verbreitet werden. Für die Nutzung der enthaltenen Informationen oder die fehlerfreie Funktion wird keine Haftung übernommen. Der Benutzer ist für eventuell entstehende Schäden alleine verantwortlich.