Access-News & Downloads
Access-Helpline Newsletter-Tipp
Spotlight: Adressen aus Access und Outlook ganz einfach nach Word übernehmen Reduzieren Sie das Schreiben eines neuen Briefes auf wenige Mausklicks: In Zukunft geben Sie keine Adresse mehr doppelt ein, denn Sie können auf Ihre vorhandenen Adressen in jeder beliebigen Access-Datenbank, in den Outlook-Kontakten oder auf dem Exchange Server zugreifen. Den ganzen Vorgang steuern Sie bequem aus Word 2003, 2002/XP oder 97.
SmartTools Brief- und Fax-Manager 2003 Download-Tipp: Über 1.000 neue Icons für Ihre Symbolleisten in Access Sie suchen nach aussagekräftigen Icons für Ihre selbst definierten Symbolleisten? Die standardmäßig von Access angebotene Auswahl ist sehr bescheiden und so müssen Sie schon selber künstlerisch tätig werden, um zum Ziel zu kommen. "SmartTools Iconhelp" hilft weiter: In Access finden Sie über 1.000 verschiedenen Schaltflächen-Symbole, die Sie mit unserem kostenlosen Tool übersichtlich anzeigen und durchblättern können. Möchten Sie eines der Icons nutzen, klicken Sie es einfach an, rufen das Kontextmenü SYMBOL IN ZWISCHENABLAGE KOPIEREN auf und weisen es dann Ihrer eigenen Schaltfläche zu. Der besondere Bonus für VBA-Entwickler: "SmartTools Iconhelp"- zeigt auch die "FaceID" zu jedem Symbol an, die Sie für die programmatische Erstellung von Symbolleisten per Makro benötigen:
News: Access 12 mit mehr Komfort für Anwender Viele Möglichkeiten von Access erschließen sich erst durch die Entwicklung individueller Lösungen per VBA, so dass zahlreiche Anwender für einfache Datenbank-Anwendungen lieber auf andere Tools wie Excel zurückgreifen. Mit Access 12 soll sich das grundlegend ändern. Entwickler werden zum einen in der Lage sein, Anwendern Datenbankvorlagen zur Verfügung zu stellen, die sich ohne jegliche Programmierkenntnisse nutzen und anpassen lassen. Außerdem wird es möglich sein, eine Datenbank wie in Excel zunächst in einer ganz normalen Tabelle zu erstellen, ohne sich vorher mit Feld-Definitionen oder Datentypen auseinandersetzen zu müssen. Komfortable und komplett überarbeitete Designer sollen dann dafür sorgen, dass sich nachträglich Formulare und Berichte ergänzen lassen. Der Versuch, Access noch bedienerfreundlicher zu machen, zeigt sich auch in den neuen Bildschirmfotos, die inzwischen von Access 12 (und anderen Office 12-Anwendungen) verfügbar sind: http://activewin.com/articles/2005/21.shtml Techinfo: VBA in VSTO-/VB.NET-Lösungen umsetzen Früher oder später steht jeder Entwickler vor der Aufgabe, vorhandene VBA-Lösungen in VB.NET mit den Visual Studio Tools für Office umsetzen zu müssen. Je eher man sich mit dieser Aufgabe auseinandersetzt, desto besser lassen sich Kosten und Aufwand einschätzen. Behilflich dabei ist ein umfangreiches White Paper der MSDN-Spezialisten: VBA in VSTO-/VB.NET-Lösungen umsetzen Die Autoren stellen zunächst die Visual Studio Tools für Office vor und machen Sie mit den dort vorhandenen Werkzeugen vertraut. Anschließend erläutern sie, warum ein Umstieg auf VSTO-/VB.NET-Lösungen ratsam ist. Weitere Abschnitte geben konkrete Tipps und Hinweise zur Umsetzung anhand praktischer Beispiele.
Zwischenablage per VBA nutzen Versionen: Access 2003, 2002/XP und 2000 Selbst in der aktuellen Version 2003 bietet Access keine Unterstützung für den Zugriff per VBA auf die Zwischenablage. Dabei wären solchen Funktionen besonders hilfreich, um beispielsweise eine Adresse aus einem Formular in der Zwischenablage abzulegen, damit sie zum Beispiel in Word oder Excel in einem Brief oder einer Rechnung wieder eingefügt werden kann. Aber auch der umgekehrte Weg, nämlich die Übernahme von Daten aus der Zwischenablage, um sie beispielsweise in ein Memofeld einzufügen, kann viel Arbeit sparen. Eine solche Funktionalität lässt sich natürlich mit API-Funktionen "nachrüsten", es geht in diesem Falle aber auch einfacher: Mit den Office-Anwendungen wird eine spezielle Bibliothek "MS Forms" installiert. Sie enthält Steuerelemente wie Textfelder, Bezeichnungsfelder, Register, Rollbalken, Kontrollkästchen, Options-Schaltflächen usw. für den Einsatz in UserFormen. Damit Entwickler auch in UserFormen die Zwischenablage nutzen können, hat Microsoft in diese Bibliothek ein spezielles Objekt "DataObject" integriert, das Sie auch in Access nutzen und so flexibel auf die Zwischenablage zugreifen können:
Dim cb As New DataObject Über "cb" (Abkürzung für Clipboard") können Sie dann verschiedene Methoden aufrufen, um Text in der Zwischenablage abzulegen oder aus der Zwischenablage abzurufen. Nehmen wir beispielsweise an, dass Sie eine Adressverwaltung um eine Schaltfläche Adresse in Zwischenablage kopieren erweitern möchten:
Dim cb As New DataObject Dim strAdr As String strAdr = Me.Firma & vbCrLf & _ Me.Kontaktperson & vbCrLf & _ Me.Straße & vbCrLf & vbCrLf & _ Me.PLZ & " " & Me.Ort & vbCrLf With cb .SetText strAdr .PutInClipboard End With End Sub
Das zweite Beispiel überträgt die in der Zwischenablage vorhandenen Daten in ein Memofeld im Formular:
Dim cb As New DataObject Dim strData As String With cb .GetFromClipboard strData = .GetText Me.Memofeld = strData End With End Sub "Memofeld" ersetzen Sie dabei durch den Namen des Memofeldes in Ihrem Formular.
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. Formatierte MsgBox reaktivieren Versionen: Access 2003, 2002/XP und 2000 FRAGE: Wir sind gerade dabei, Access 97-Datenbanken auf Access 2003, 2002/XP oder 2000 umzustellen. Unter Access 97 war es möglich, die Ausgabe in einer Meldung durch den Einsatz von @-Zeichen zu formatieren. So stellte die folgende Anweisung den Text dreizeilig dar, wobei die erste Zeile fett und der Rest normal dargestellt wurde: MsgBox "Dies ist eine formatierte MsgBox()-Meldung" + _ @Zeile 2@Zeile 3", _ vbOKOnly + vbInformation, _ "Test:" Nach der Umstellung funktioniert das allerdings nicht mehr, der Text wird einfach unformatiert inklusive der @-Zeichen angezeigt. Ist diese Funktionalität einfach verschwunden oder gibt es Möglichkeiten, sie zu reaktivieren? Z. Griedel ANTWORT: Access verwendet ab der Version 2000 keine eigene "MsgBox"-Funktion mehr. Vielmehr wird für die Anzeige auf Standard-Routinen der VBA-Entwicklungsumgebung zurückgegriffen. Hier lässt sich mit einem kleinen Trick Abhilfe schaffen: Access stellt die Funktion "Eval()" zur Verfügung, über die sich beliebige Ausdrücke ausführen und auswerten lassen. Übergibt man dieser Funktion nun eine "MsgBox"-Anweisung, führt Access ab Version 2000 dafür wieder die ursprüngliche Routine aus, die @-Zeichen berücksichtigt und die Meldung entsprechend formatiert ausgibt. Um diesen Umstand in Ihren Datenbanken für die Anzeige formatierter MsgBox-Meldungen zu nutzen, sind ein paar kleine Anpassungen notwendig:
Optional Buttons As VbMsgBoxStyle = vbOKOnly, _ Optional Title As String = vbNullString, _ Optional HelpFile As Variant, _ Optional Context As Variant) _ As VbMsgBoxResult If IsMissing(HelpFile) Or IsMissing(Context) Then MsgBox2000 = Eval("MsgBox(""" & Prompt & """, _ " & Buttons & _ ", """ & Title & """)") Else MsgBox2000 = Eval("MsgBox(""" & Prompt & """, _ " & Buttons & _ ", """ & Title & """, _ """ & HelpFile & """, _ " & Context & ")") End If End Function Der Aufruf entspricht exakt der Syntax von "MsgBox", so dass Sie in den aus Access 97 konvertierten Datenbanken lediglich "MsgBox" durch "MsgBox2000" ersetzen müssen. Zum Beispiel: MsgBox2000 "Dies ist eine formatierte MsgBox()" + _ @Zeile 2@Zeile 3", vbOKOnly + vbInformation, "Test:" Zugriff auf E-Mail-Anhänge per VBA Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich greife per Office Automation auf Outlook zu, um E-Mails in Access zu archivieren. Das klappt soweit wunderbar, ich kann die Betreffzeile, den Absender oder den Nachrichtentext problemlos auslesen. Greife ich jedoch mit folgender Anweisung auf die Anhänge zu, erhalte ich eine Fehlermeldung: strAttach = objMail.Attachments T. Tahlmann ANTWORT: Die Eigenschaft "Attachments" ist eine Auflistung, die nicht direkt den Zugriff auf einen Dateinamen ermöglicht. Vielmehr enthält "Attachments" eine Reihe von "Attachment"-Objekten, sofern ein oder mehrere Anhänge vorhanden sind. Sie müssen also zunächst einmal prüfen, ob überhaupt Anhänge vorhanden sind. Dazu nutzen Sie die Eigenschaft "Count" der Auflistung wie folgt: Dim objMail As MailItem Dim I As Long, Anz As Long Dim strFile As String .... With objMail Anz =.Attachments.Count If Anz > 0 Then For I = 1 To Anz strFile = .Attachments(I).FileName MsgBox strFile Next I End If 'Anz > 0... End With 'objMail... ..... Sind Anhänge vorhanden, können Sie auf die einzelnen, als "Attachment"-Objekt repräsentierten Anhänge per "Attachments(Index)" zugreifen, wobei "Index" ein Wert von "1" bis "Anzahl Anhänge" gemäß Count" ist. Die Eigenschaft "FileName" gibt Auskunft über den Dateinamen, "PathName" über den Pfad (bei lokalen Verweisen) und "DisplayName" liefert einen ggf. vom Dateinamen abweichenden Anzeigenamen für den Anhang.
Todo-Liste als Bericht ausgeben Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Mit einer Access-Datenbank verwalten wir Aufgaben, die per Kontrollkästchen im Formular als "Erledigt" gekennzeichnet werden können. Im Bericht soll der Status der Aufgaben aber nicht als Kontrollkästchen, sondern mit einem Häkchen für "Erledigt" oder einem Ausrufezeichen für "Offen" dargestellt werden. G. Drechsler ANTWORT: Dazu nutzen Sie ein zusätzliches Bezeichnungsfeld, das per VBA abhängig vom Status "Erledigt" eingestellt wird, um das gewünschte Zeichen in der entsprechenden Farbe darzustellen:
If Me.Erledigt = True Then 'Aufgabe erledigt .FontName = "Wingdings" .Caption = "ü" .ForeColor = QBColor(2) Else 'Aufgabe offen .FontName = "Arial" .Caption = "!" .ForeColor = QBColor(12) End If End With
Office-Tipps kostenlos per E-Mail Der SmartTools Office Insider ist Ihr monatlicher News-Service für Microsoft Office. Hier finden Sie aktuelle Informationen zu Access, Excel, Word & Co, eine Fülle von Download-Links sowie detaillierte Tipps zu neuen Patches und Updates. So verpassen Sie nichts, was Sie unbedingt zu Microsoft Office wissen müssen.
Klicken Sie hier für Ihr kostenloses Abo!
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.
|