Access-News & Downloads
Access-Helpline
Spotlight: Total Access Memo 2003 für formatierte Memofelder in Ihren Formularen und Berichten Total Access Memo ist eine leistungsfähige Access-Erweiterung, mit der Sie formatierten Text in Ihren Datenbanken anzeigen, bearbeiten und ausdrucken können. Die neue Version Total Access Memo 2003 unterstützt sowohl Access 2000 als auch 2002/XP und 2003! Nach der Installation genügen wenige Mausklicks, um das neue Steuerelement in ein Formular einzufügen und an ein Memofeld zu binden. Vorhandene Inhalte bleiben komplett erhalten und können danach in einem leistungsfähigen Editor beliebig formatiert werden. Für den Ausdruck der Daten fügen Sie das Memo-Steuerelement einfach in Ihre Berichte ein oder exportieren den Inhalt ohne Verluste nach Word. Die aktuelle Version 2003 bietet jetzt eine neue Funktion zur komfortablen Kontrolle der Steuerelementgröße auf Berichten. Außerdem können Sie in dem integrierten Editor die deutsche Rechtschreibprüfung von Office nutzen. Weitere Informationen zu Total Access Memo 2003 für Access 2000, 2002/XP und 2003 finden Sie unter: http://www.add-in-world.com/katalog/tamemo2003/ Total Access Memo gibt es auch in einer speziellen Version für Access 97: http://www.add-in-world.com/katalog/tamemo2000/ Download-Tipp: Das komfortable A-Z-Register für Ihre Access-Formulare So können finden Sie sich in Ihren Access-Formularen künftig noch schneller zurecht: Das "SmartTools A-Z Register" wird als Add-In in Access installiert und kann jederzeit mit zwei Mausklicks eingeblendet werden. Sie wählen dann ein beliebiges Feld des Formulars aus einer Dropdown-Liste aus und in Zukunft genügt der Mausklick auf einen Buchstaben, um den ersten Datensatz anzuwählen, dessen Feldinhalt mit diesem Buchstaben beginnt. Auf diese Weise bewegen Sie sich schnell und komfortabel auch durch umfangreiche Datenbestände. SmartTools Publishing stellt Ihnen diese Access-Erweiterung kostenlos zur Verfügung: Nach der automatischen Installation finden Sie unter Extras-Add-Ins einen neuen Menüpunkt, über den Sie das Register jederzeit aufrufen können:
Techinfo: Frontpage und Access im Zusammenspiel In Frontpage-Webs stellt sich regelmäßig die Aufgabe, Inhalte aus Formularen direkt in eine Datenbank zu schreiben oder dem Anwender die Möglichkeit zu geben, Dateien auf den Webserver zu übertragen. Gleichzeitig soll dann eine E-Mail verschickt werden, um über den Eingang neuer Daten zu informieren. Unter der folgenden Adresse finden Sie eine Techinfo zu diesem Thema: Techinfo zur Zusammenarbeit von Frontpage und Access In mehreren Schritt-für-Schritt-Anleitungen zeigen die Autoren, wie Sie in Frontpage Webseiten mit einer Verbindung zu Access-Datenbanken entwerfen.
Einzelne Formulare schützen Versionen: Access 2003, 2002/XP, 2000 und 97 Um einzelne Objekte einer Datenbank gegen unbefugte Zugriffe zu schützen, muss Access normalerweise im Arbeitsgruppen-Modus mit SYSTEM.MDW und entsprechend eingerichteten Benutzern, Gruppen, Kennwörtern und Zugriffsrechten eingesetzt werden. Dieser Einrichtungsaufwand lohnt beispielsweise dann nicht, wenn nur ein einzelnes Formular mit bestimmten, lediglich für den Administrator vorgesehenen Funktionen zu schützen ist. Hier reicht im Allgemeinen ein einfacher Zugriffsschutz, der beim Laden des Formulars die Eingabe eines Kennwortes verlangt und das Formular bei falschem Kennwort nicht anzeigt:
Dim strPW As String Dim varPW As Variant On Error Resume Next varPW = DLookup("[Kennwort]", "USysKennwort") If Err <> 0 Then Beep MsgBox "Fehler in Passwortabfrage - " & _ "bitte Admin verständigen!" DoCmd.Close Exit Sub End If strPW = InputBox$("Bitte Passwort eingeben:", _ "Nur für Administratoren!", "") If strPW = "" Or strPW <> varPW Then DoCmd.Close End Sub Selbst wenn ein unbefugter Anwender das Formular im Entwurfsmodus öffnet, müsste er wissen, wo genau die Abfrage erfolgt, deren Funktionsweise verstehen und zudem über entsprechende VBA-Kenntnisse verfügen, um diese Abfrage außer Kraft zu setzen. Speichern Sie das Formular und lassen Sie es dann einmal anzeigen, um die Lösung zu testen. Geben Sie ein paar falsche und auch einmal das richtige Kennwort ein, um sicherzustellen, dass das Formular korrekt reagiert. Die Umgehung dieser Lösung ist sicherlich für einen Access-/VBA-Profi kein Problem, für den Einsatz mit "normalen" Anwendern ohne VBA-Kenntnisse reicht sie aber aus.
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. Back-End-Datenbank per Kennwort schützen Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Ich habe eine Front-End-/Back-End-Lösung im Einsatz. Um zu verhindern, dass auf Tabellen im Back-End beispielsweise per Datei-Externe Daten-Importieren zugegriffen wird, habe ich das Back-End mit einem Kennwort versehen, das ich bei der Einbindung der Tabellen ins Front-End habe speichern lassen. Ich möchte nun das Back-End zum Beispiel für Änderungen über eine Verknüpfung öffnen, dabei aber die Kennwortabfrage umgehen. Dazu habe ich den Kommandozeilenparameter "/PWD Kennwort" verwendet. Access zeigt mir aber trotzdem den Dialog zur Eingabe des Kennwortes an. Diverse Anfragen ANTWORT: Der Kommandozeilenparameter "/PWD" kann NICHT dazu verwendet werden, das Datenbankkennwort zu übergeben. Dieser Parameter ist vielmehr dazu gedacht, in Verbindung mit "/USER" beim Einsatz von Access im Arbeitsgruppenmodus den notwendigen Benutzernamen und das dazugehörende Kennwort per Kommandozeile zu übergeben. Um ein Back-End vor externen Zugriffen zu schützen, müssen Sie entweder den Arbeitsgruppenmodus nutzen und entsprechende Zugriffsrechte im Back-End beziehungsweise in den Front-Ends setzen oder Sie nutzen die folgende Funktion, um das kennwortgeschützte Back-End in einer weiteren Instanz zu öffnen: Sub OpenPWDMDB(strMDB As String, strPWD As String) Dim db As DAO.Database Dim objAcc As Access.Application On Error Resume Next Set objAcc = New Access.Application If Err <> 0 Then Beep MsgBox "Access-Instanz konnte nicht " & _ "gestartet werden...", _ vbOKOnly + vbCritical, "!!! Problem !!!" Exit Sub End If With objAcc If strPWD <> "" Then Set db = .DBEngine.OpenDatabase(strMDB, _ False, False, ";PWD=" & strPWD) End If .OpenCurrentDatabase strMDB .RunCommand acCmdAppRestore .RunCommand acCmdAppMaximize If strPWD <> "" Then db.Close End If End With End Sub Diese Funktion rufen Sie dann beispielsweise im Front-End über eine Schaltfläche wie folgt auf: OpenPWDMDB "Z:\Test\BackEnd.mdb", "geheim" Der erste Parameter gibt die zu öffnende Datenbank bzw. das kennwortgeschützte Back-End an und bei dem zweiten Parameter handelt es sich um das Kennwort. Die Funktion startet zuerst per Office Automation über "CreateObject" eine neue Instanz von Access. Wenn ein Kennwort angegeben ist, öffnet die Methode "OpenDatabase" die Datenbank und übergibt dabei das Kennwort. Anschließend wird die Datenbank mit "OpenCurrentDatabase" für die Bearbeitung per Benutzeroberfläche initialisiert. Wurde kein Kennwort angegeben, genügt "OpenCurrentDatabase" als Initialisierung für die Bearbeitung. Zwei weitere Anweisungen ".RunCommand acCmdAppRestore" und ".RunCommand acCmdAppMaximize" sorgen dann dafür, dass das zweite Access-Fenster maximiert im Vordergrund angezeigt wird. Anschließend wird über "db.close" die eventuell angelegte Referenz für die Übergabe des Kennwortes wieder geschlossen.
'Ungültige Verwendung von Null' vermeiden Versionen: Access 2003, 2002/XP, 2000 und 97 FRAGE: Aus einer VBA-Routine lese ich verschiedene Feldinhalte aus, um sie zu verarbeiten und die Ergebnisse in einer anderen Tabelle zu speichern. Dabei kommt es beim Zugriff auf leere, nicht erfasste Felder immer wieder zu einem Laufzeitfehler "Ungültige Verwendung von Null". Warum liefert Access hier nicht einfach eine "0" bei Feldern vom Datentyp "Zahl" oder eine leere Zeichenkette "" bei Text-/Memofeldern? Diverse Anfragen ANTWORT: Wenn ein neuer Datensatz initialisiert wird, setzt Access alle Felder, für die kein Standardwert eingestellt ist, auf "Null", um so kenntlich zu machen, dass für ein Feld noch keine Eingabe erfolgt ist. Andernfalls ließe sich nicht unterscheiden, ob nun tatsächlich eine "0" oder ein Leerzeichen eingegeben oder das Feld einfach übersprungen wurde. Mit der Funktion "IstNull(Feldname)" (VBA: "IsNull()") lässt sich dieser Umstand problemlos abfragen und gegebenenfalls abfangen. Wenn das für Ihre weitere Verarbeitung keine Rolle spielt, lesen Sie die Felder wie folgt aus: strText = Me.Feldname & "" intZahl = NZ(Me.Feldname) Die erste Anweisung für Text-/Memofelder "addiert" zum Feldinhalt einfach eine leere Zeichenkette hinzu. Dabei nimmt Access keine Überprüfung auf "Null" vor, sondern liefert das Ergebnis des Ausdrucks, eine leere Zeichenkette, zurück. Die zweite Anweisung für Felder vom Datentyp "Zahl" nutzt die Access-Funktion "NZ()", die bei Feldern mit "Null"-Inhalten eine numerische "0" als Ergebnis liefert. Beide Anweisungen unterdrücken somit den bekannten Laufzeitfehler "Ungültige Verwendung von Null" und können aufwendigere Prüfungen der Art "If Not IsNull(Me.Feldname) Then..." ersetzen. Nachtrag: Aktives Formular hervorheben Versionen: Access 2003, 2002/XP, 2000 und 97 Zu unserem Tipp "Aktives Formular hervorheben" hat uns folgende Zuschrift von Access Weekly-Leser Michael Wosch erreicht: Ein ähnlicher Effekt lässt sich auch ohne VBA-Programmierung auf Windows-Ebene realisieren: In der Systemsteuerung unter "Anzeige > Eigenschaften > Darstellung" (und Klick auf Erweitert bei Windows XP) und Auswahl von "Rahmen des aktiven Fensters" kann man Farbe und Breite so einstellen, dass das aktive Fenster beispielsweise mit einem dicken, roten Rahmen angezeigt wird.
Office XP und 2003-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 XP und 2003 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.
|