Access-News & Downloads
Access-Helpline
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:
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:
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:
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:
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:
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:
Waren die News & Downloads hilfreich für Sie? Klicken Sie bitte hier!
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:
'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
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
War dieser Tipp für Sie hilfreich? Klicken Sie bitte hier!
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.
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!
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:
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.
|