Access-News & Downloads
Access-Helpline
Spotlight: Resizer und weitere neue Steuerelemente für Ihre Formulare in Access 2003, 2002/XP und 2000 Die Total Access Components 2003 für Access 2003, 2002/XP und 2000 bieten 29 neue Steuerelemente, für Ihre Formulare und Berichte. Angefangen bei komfortablen Eingabehilfen, über grafische Statusanzeigen, Uhren, einen Taschenrechner, neue 3D- und Animationseffekte bis hin zu elektronischen Post-It's und Multimedia-Controls finden Sie alles, was Sie für noch leistungsfähigere und komfortablere Formulare bzw. Berichte brauchen. Neu in der aktuellen Version 2003 ist außerdem ein "BrowseForFolder"-Steuerelement zur komfortablen Ordnerauswahl und ein "DateTimePicker" für die Datumsauswahl aus einem kleinen Popup-Kalender, wie Sie ihn beispielsweise aus Outlook kennen. Das absolute Highlight der Total Access Components ist der "Resizer". Er löst für Sie sämtliche Probleme, die Sie bisher durch Systeme mit unterschiedlichen Bildschirmauflösungen hatten. Sie entwerfen nur noch ein einziges 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. Aber auch dynamische Veränderungen sind möglich: der Anwender kann die Größe des Formulars auf jedes gewünschte Maß verändern und der Resizer verändert parallel dazu die Steuerelemente auf die passende Größe. Das alles geschieht blitzschnell und funktioniert sogar mit Unterformularen! Ausführliche Informationen finden Sie unter: Total Access Components 2003 Download-Tipp: Doppelseitendruck für Access-Berichte Wenn Sie umfangreiche Berichte ausgeben, bietet es sich an, beide Seiten eines Blattes zu benutzen. Standardmäßig haben Sie diese Möglichkeit nur, wenn Ihr Drucker die so genannte Duplex-Ausgabe unterstützt, aber das ist nur selten der Fall. Unser Assistent hilft weiter: Nach der automatischen Installation können Sie ihn jederzeit über das Menü Extras-Add-Ins aufrufen. Wählen Sie dann den gewünschten Bericht aus und drucken Sie zunächst nur die Seiten mit ungerader Seitennummer. Das ausgegebene Papier drehen Sie dann um, legen es erneut in den Drucker und starten dann den Ausdruck der Seiten mit gerader Seitennummer. Das Ergebnis: Ihr Bericht im Doppelseitendruck. Den kostenlosen Download finden Sie unter:
News: Mehr Komfort beim Formular- und Berichtsdesign in Access 12 Viele unserer Leser arbeiten bereits seit vielen Jahren mit den unterschiedlichsten Access-Versionen und bei genauer Betrachtung werden Sie feststellen, dass sich zahlreiche Funktionen und Konzepte seit Access 2.0 nicht mehr wesentlich geändert haben. Access 12 ist daher zweifellos das Upgrade mit den meisten Neuerungen seit langer Zeit. Einige Highlights aus dem neuen Formular- und Berichtsentwurf:
Mit Office 2000 hat Microsoft die so genannten "Web Components" eingefügt. Diese Sammlung an ActiveX-Komponenten erlaubt es dem Office-Anwender und Website-Administrator, dynamische Inhalte aus Office-Anwendungen mit wenig Aufwand in Intranet-/Internet-Lösungen einzubinden. Kevin McDowell, Microsoft-Spezialist für Intranet-/Internet-Lösungen, hat zu diesem Thema ein sehr ausführliches, rund 40 seitiges White Paper verfasst: Office Web Components effektiv einsetzen Nach einer detaillierten Einführung und Erläuterung der Web Components zeigt der Autor zunächst anhand von Excel-Tabellen und -Grafiken den generellen Einsatz der Web Components. In weiteren Abschnitten geht es dann um die Einbindung von VBA-Routinen, die Erstellung von Webseiten mit Web Components per FrontPage, den Einsatz in Datenzugriffs-Seiten von Access und den Zugriff auf Datenquellen per ADO (ActiveX Data Objects).
Globale Variablen oder Konstanten in Abfragen nutzen Versionen: Access 2003, 2002/XP, 2000 und 97 In Ihren Datenbank-Projekten verwenden Sie oftmals globale Variablen, um Informationen festzuhalten, auf die Sie in der gesamten Datenbank zugreifen möchten. Wenn Sie das per VBA tun, klappt das auch wunderbar. Beispiel: Sie haben eine Datenbank erstellt, die in verschiedenen Ländern eingesetzt wird. In einer globalen Variablen "strEinsatzLand" halten Sie fest, in welchem Land die jeweils installierte Datenbank zum Einsatz kommt. Die Variable enthält also "Deutschland", "USA" oder ähnlich. Versuchen Sie allerdings zum Beispiel diese Variable "strEinsatzLand" in einer Abfrage oder in einem Ausdruck als Kriterium der Art "[Land]= strEinsatzLand" einzusetzen, gibt Access eine Fehlermeldung aus oder liefert falsche Ergebnisse. Das liegt daran, dass Access den Variablennamen entweder als reinen Text oder als Feld- bzw. Objektnamen interpretiert. Ein Zugriff auf globale Variablen ist so nicht möglich. Sie können das Problem lösen, indem Sie in einem beliebigen Modul eine Funktion eingeben, die den Inhalt der betreffenden Variablen als Ergebnis zurückgibt. Diese Funktion können Sie dann in Abfragen oder Ausdrücken einsetzen. In Abfragen möchten Sie zum Beispiel nur Kunden oder Lieferanten aus dem Land gemäß "strEinsatzLand" selektieren, damit beispielsweise für Rundschreiben nur die Kunden oder für Bestellungen nur die Lieferanten des jeweiligen Landes angezeigt werden. In einem Modul haben Sie also die betreffende Variable per Public strEinsatzLand As String deklariert. In diesem Modul geben Sie nun die folgende Funktion an: Function AktuellesLand() As String AktuellesLand = strEinsatzLand End Function Beim Aufruf der Funktion wird hier einfach der Inhalt der globalen Variablen "strEinsatzLand" als Funktionsergebnis gesetzt. Diesen Mechanismus können Sie nun beispielsweise in einem Formular einsetzen, um alle Kunden des aktuellen Landes anzuzeigen:
ein. Auf diese Wiese werden nur die Datensätze selektiert, bei denen das Land mit dem Land übereinstimmt, das die Funktion "AktuellesLand()" als Ergebnis liefert, also beispielsweise "Deutschland".
DoCmd.OpenQuery "Kunden/Aktuelles Land" End Sub Beim Klick auf die Schaltfläche wird die Abfrage "Kunden/Aktuelles Land" geöffnet, die über das Kriterium "=AktuellesLand()" die globale Funktion "AktuellesLand()" aufruft und so die zum Inhalt der Variablen "strEinsatzLand" passenden Datensätze liefert. Ähnlich einfach können Sie auf globale Konstanten zugreifen. Zum Beispiel: In einem Warenwirtschaftssystem mit Artikelverwaltung deklarieren Sie eine generelle Handelsspanne als Konstante: Public Const cdblHandelsspanne As Double = 1.5 Dazugehörend geben Sie eine Funktion "Handelspanne()" in einem globalen Modul ein. Function Handelsspanne() As Double Handelsspanne = cdblHandselspanne End Function So können Sie zum Beispiel in einer Abfrage ein Feld "Verkaufspreis Netto" wie folgt "on the fly" berechnen: VKNetto: [Einkaufspreis] * Handelsspanne()
Haben Sie Fragen zu Access 2003, 2002/XP, 2000 oder 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. Inhalte eines RTF-Steuerelementes individuell formatieren Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: In Berichten möchten wir die Inhalte von Memofeldern ausgeben. Dabei sollen bestimmte Wörter im Text auffällig markiert werden. Wir verfügen über die Office Developer Edition und haben dort das RTF-Steuerelement gefunden, über das sich ja einzelne Wörter individuell formatieren lassen. Wenn wir nun in der Ereignisprozedur "Beim Formatieren" des Detailbereiches beispielsweise einen über "SelStart" und "SelLength" markierten Bereich per "SelBold = True" formatieren möchten, funktioniert das nicht. Können Sie uns Tipps geben, was hier eventuell schief läuft? P. Rogge ANTWORT: Vermutlich haben Sie das RTF-Steuerelement direkt an das Datenfeld gebunden. Die Änderung einer Eigenschaft des RTF-Steuerelementes wertet Access dann als eine Änderung des Feldinhaltes, was jedoch in einem Bericht nicht möglich ist. Um das Problem zu lösen, gehen Sie wie folgt vor:
BorderStyle= No border Scrollbars= rtfNone
Dim I As Long, intPos As Integer arrWords = Array("Wort 1", "Wort 2", "Wort 3") With Me.rtfFeld strText = Me.Memofeld & "" .TextRTF = strText For I = 0 To UBound(arrWords) intPos = InStr(.Text, arrWords(I)) While intPos <> 0 'Wort gefunden .SelStart = intPos .SelLength = Len(arrWords(I)) .SelBold = True .SelColor = QBColor(12) intPos = InStr(intPos + 1, .Text, arrWords(I)) Wend Next I End With "Wort 1", "Wort 2", "Wort 3" etc. ersetzen Sie durch die Wörter, die hervorgehoben werden sollen, "Memofeld" durch den Namen des Memofeldes, dessen Inhalt formatiert ausgegeben werden soll.
Mehrere Datenbanken per Verknüpfung öffnen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich möchte gerne in einem Arbeitsschritt mehrere Datenbanken über eine einzige Verknüpfung öffnen. Ist das irgendwie möglich und wenn ja, wie? M. Lamprecht ANTWORT: Das steuern Sie am einfachsten über eine zentrale "Startdatenbank":
Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Function MDBsOeffnen() OpenMDB "Z:\Test\Datenbank 1.mdb" OpenMDB "Z:\Test\Datenbank 2.mdb" OpenMDB "Z:\Test\Datenbank 3.mdb" DoCmd.Quit End Function Function OpenMDB(strMDB As String) On Error Resume Next ShellExecute 0&, vbNullString, strMDB, _ vbNullString, vbNullString, vbNormalFocus End Function Passen Sie dabei in "MDBsOeffnen" die Pfade/Dateinamen der zu öffnenden Datenbanken entsprechend an.
Nachtrag: ToDo-Liste als Bericht ausgeben Versionen: Access 2003, 2002/XP und 2000 FRAGE: Ich habe Ihre Lösung entsprechend umgesetzt, allerdings benötigt die Formatierung vermutlich aufgrund des erforderlichen "Erledigt"-Häkchens und der damit verbundenen VBA-Steuerung geraume Zeit. Es vergehen immer einige Sekunden, bis der Bericht in der Seitenansicht angezeigt bzw. auf dem Drucker ausgegeben wird. Mir würde statt des Häkchens bzw. des Ausrufezeichens der Status im Klartext, also als "Offen" in roter Schrift oder "Erledigt" in grüner Schrift reichen, so dass die Formatierung weniger Zeit in Anspruch nehmen dürfte. Wie ließe sich diese Lösung umsetzen? T. Flath ANTWORT: Ein Alternativvorschlag, der Ihren Anforderungen entspricht, hat uns dazu Access Weekly-Leser Heinz Treuer zugesandt:
"Erledigt" ersetzen Sie dabei durch den Namen des Feldes, das den "Erledigt"-Status speichert.
"Erledigt" ersetzen Sie dabei durch den Namen des Feldes, das den "Erledigt"-Status speichert.
Tool-Helpline: VBA-Code überarbeiten und standardisieren Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich habe die undankbare Aufgabe übertragen bekommen, eine Reihe von Datenbanken zu überarbeiten, die von verschiedenen anderen Entwicklern erstellt wurden. Leider haben die offensichtlich nie etwas von Namenskonventionen für Variablen, von Fehlerbehandlungsroutinen oder dem Einfügen von Kommentaren gehört. Ich verbringe daher viel Zeit damit, den Code den gängigen Standards anzugleichen, um mir und auch anderen Entwicklern das Leben zu erleichtern. Kann man diese Aufgabe automatisieren? G. Haagen ANTWORT: Die Total Visual CodeTools bieten neben zahlreichen weiteren Tools und Assistenten rund um die VBA-Entwicklung eine interessante Funktion mit der Bezeichnung "CodeCleanup": Total Visual CodeTools Sie legen dabei nur ein einziges Mal alle gewünschten Standards fest und Code Cleanup wendet sie in Zukunft für Sie an: Fehlerbehandlungsroutinen werden hinzugefügt, Prozeduren sortiert, Kommentarblöcke nach Ihren Vorgaben ergänzt, unnötige Leerzeilen entfernt, Variablen nach beliebigen Namenskonventionen umbenannt, Einzüge standardisiert usw. Bevor der Code endgültig angepasst wird, können Sie die Änderungen natürlich zur Sicherheit in einer Vorschau kontrollieren.
Office 2003 und XP-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 2003 und XP beschäftigt:
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.
|