Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 4/2009.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, wie Sie Tabellen per Code verknüpfen, Ereignisprozeduren ganz schnell anlegen, Datenbanken per Doppelklick dekompilieren oder das Verhalten von Textfeldern beim Fokuserhalt anpassen.

Techniken

Tabellen, VBA, Textfelder

Voraussetzungen

Access 2000 oder höher

Beispieldateien

Decompile.mdb

Shortlink

679

Tipps und Tricks

André Minhorst, Duisburg

Die Tipps-und-Tricks-Sammlung von Access im Unternehmen wird diesmal um das Verknüpfen von Tabellen per Code erweitert. Außerdem zeigen wir Ihnen, wie Sie Ereignisprozeduren vom Eigenschaftsfenster aus ganz schnell anlegen. Wer gern gelegentlich mit instabilen Datenbanken arbeitet, muss diese hin und wieder mal dekompilieren - das geht mit unserer Decompile-Datenbank per Doppelklick und lässt sich ganz schnell einrichten. Schließlich kümmern wir uns um das Verhalten von Textfeldern beim Erhalt des Fokus: Komplett markieren, zum Start oder ans Ende?

Tabellen verknüpfen per Code

Eine Tabellenverknüpfung legen Sie normalerweise über den entsprechenden Menübefehl von Access an (unter Access 2007 zum Beispiel über den Ribbon-Eintrag Externe Daten|Access). Wenn Sie diese Aufgabe etwa beim Start der Frontenddatenbank automatisch ausführen lassen möchten, brauchen Sie ein paar Zeilen Code.

Am einfachsten geht dies mit dem VBA-Pendant zum Menübefehl, und zwar mit der TransferDatabase-Methode des DoCmd-Objekts:

DoCmd.TransferDatabase acLink, "Microsoft Access", "<Quelldatenbank>", acTable, "<Name der Verküpfung>", "<Name der Quelltabelle>"

Dies klappt in der Regel ganz gut, führt aber in Einzelfällen zu Unannehmlichkeiten, zum Beispiel beim Einsatz unter der Access 2007-Runtime und dort speziell bei Verwendung von Backenddatenbanken, die nicht auf dem gleichen Rechner wie das Frontend liegen. Dort erscheint nämlich die gleiche Hinweismeldung, die auch beim Öffnen von Datenbankdateien aus nicht vertrauenswürdigen Ordnern erscheint - und zwar bei jedem Aufruf der TransferDatabase-Methode.

Um dies zu umgehen, brauchen Sie ein paar Zeilen Code mehr:

Dim db As DAO.Database

Dim tdf As DAO.TableDef

Set db = CurrentDb

Set tdf = db.CreateTableDef("tblVersion", 0,

"tbl_VersionFE", ";DATABASE=z:\ShopSoft.accdb")

db.TableDefs.Append tdf

db.TableDefs.Refresh

Set tdf = Nothing

Set db = Nothing

Die CreateTableDef-Methode schafft es, eine Verknüpfung ohne nervende Hinweismeldungen herzustellen. Die folgende Append-Methode fügt die noch im leeren Raum stehende Verknüpfung zur Auflistung TableDefs hinzu und die Refresh-Methode sorgt schließlich dafür, dass die Verknüpfung auch gleich im Datenbankfenster erscheint.

Ereignisprozedur per Mausklick

Wenn Sie eine Ereignisprozedur anlegen, geschieht dies normalerweise durch die folgenden Schritte:

  • Sie markieren das betroffene Element.
  • Sie zeigen das Eigenschaftsfenster an, sofern dieses noch nicht aktiviert ist.
  • Sie wählen die Registerseite Ereignis aus.
  • Dann wählen Sie entweder aus dem Kombinationsfeld den Eintrag [Ereignisprozedur] aus und klicken auf die Schaltfläche mit den drei Punkten oder Sie klicken direkt auf diese Schaltfläche und wählen aus dem nun erscheinenden Dialog den Eintrag Codegenerator aus (s. Abb. 1).
  • pic001.png

    Abb. 1: Auswahl eines Werkzeugs zum Füllen einer Ereigniseigenschaft

  • Schließlich landen Sie im VBA-Editor und können den dort bereits angelegten Prozedurrumpf füllen.

Es gibt mindestens zwei Alternativen zu dieser Vorgehensweise, die schneller sein können:

  • Sie öffnen den VBA-Editor direkt, öffnen das Klassenmodul des jeweiligen Formulars oder Berichts, wählen im Kombinationsfeld links oben im Codefenster den Namen des betroffenen Steuerelements und im rechten Kombinationsfeld die benötigte Ereignisprozedur aus.
  • Sie aktivieren eine spezielle Option von Access und brauchen dann beim Anlegen der Ereignisprozedur über das Eigenschaftsfenster nur noch auf die Schaltfläche mit den drei Punkten für die gewünschte Eigenschaft zu klicken.

Letztere Version dürfte die schnellste sein. Die Option, die Sie dazu einstellen müssen, heißt Immer Ereignisprozeduren verwenden.

Sie finden diese unter Access 2003 und älter im Optionen-Dialog (Extras|Optionen) im Bereich Formulare/Berichte und unter Access 2007 in den Access-Optionen im Bereich Objekt-Designer|Formulare/Berichte.

Folgende Nullen statt führender Nullen

Ein Kunde wollte mal IDs mit Nullen bis auf fünf Stellen aufgefüllt haben. Die Zahlen 1, 27, 392 und 4433 sollten also so aussehen: 10000, 27000, 39200, 44330. Falls Sie auch mal so etwas brauchen, können Sie dies natürlich per VBA lösen - im vorliegenden Fall sollte dieses Format aber einfach in einer Abfrage untergebracht werden. Natürlich kann man dort auch eine VBA-Funktion integrieren, aber das muss ja nicht sein.

Stattdessen verwenden wir die ganz selten genutzte StrReverse-Funktion, die eine Zeichenkette umdreht. Dies führt zwar nicht direkt zum Ziel, aber auf folgendem Umweg schon.

Sie drehen also zunächst die Zahlen mit folgender Funktion um:

StrReverse(Zahl)

Für die Zahl 392 ergibt dies 293. Jetzt kommt die üblicherweise zum Anfügen führender Nullen verwendete Format-Funktion ins Spiel. Wenn Sie einer Zahl so viele Nullen voranstellen möchten, bis diese fünf Stellen aufweist, geht dies etwa so:

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Ereignisprozeduren

Softwareprojekte verwalten

Lookup-Daten verwalten

Zugriff auf Daten in Formularen und Steuerelementen

Indizierung mit Access

Professionelle Datenmodellierung mit Access

Ereignisse im Eigenbau

Datenhierarchien in Access

Drag and Drop in der Datenblattansicht

Änderungsdaten protokollieren

Auswahlfelder im Ribbon

Tipps und Tricks

© 2003-2015 André Minhorst Alle Rechte vorbehalten.