HINWEIS
Kapitel 16: Techniken der Programmentwicklung
Auch für die Übernahme von geänderten oder neuen Datensätzen müssen Sie noch sorgen:
Private Sub XDataControl1_UpdateClick()
rs1!Anrede = Text2.Text
rs1!Nachname = Text3.Text
End Sub
Testen
Damit der Test funktioniert, müssen Sie vorher das richtige Startprojekt einstellen. Klicken Sie dazu im
Projekt-Explorer mit der rechten Maustaste auf Test.vbp und wählen Sie Als Starteinstellung festlegen. An-
schließend starten Sie die Projektgruppe wie gewohnt mit
F5
.
Überprüfen Sie gnadenlos alle Funktionen, editieren und löschen Sie, fügen Sie neue Datensätze hinzu. Da
Sie mit beiden Projekten in einer Gruppe arbeiten, ist das Korrigieren von eventuellen Fehlern bequem
möglich.
Abbildung 16.37 Unser neues Steuerelement im Test
OCX-Datei anfertigen
Funktioniert die ActiveX-Komponente wie gewünscht, können Sie endlich den Compiler von der Leine
lassen (Datei/XDataControl.ocx erstellen). Aktivieren Sie aber vorher im Projekt-Explorer Ihr ActiveX-
Projekt (TomsTool.vbp).
Auf der Registerkarte Erstellen des Projekt-Eigenschaftendialogs (Menübefehl Projekt/Eigenschaften von
TomsTool) können Sie weitere Einstellungen wie Versionsnummer, Copyright etc. unterbringen.
Einbinden ins Access-Programm
Nach dem Compiler-Lauf ist das Steuerelement auf Ihrem Computer bereits registriert, der Nutzung in
Access (auf dem gleichen Computer!) steht also nichts mehr im Weg. Vor allzu großer Euphorie sei aller-
dings gewarnt:
Möchten Sie die Komponente weitergeben, müssen Sie beim Endanwender auch die Laufzeitbibliothek namens
MSVBVM60.DLL installieren. Da dies meist nicht die einzige Datei ist (diverse Libraries etc. kommen auch noch dazu), nutzen
Sie am besten das Angebot von Visual Studio 6 und verwenden den Setup-Assistenten, um alle nötigen Dateien in einer
Installationsversion zusammenzufassen. Für unser kleines Beispiel werden bei einem Setup 32 (!) Dateien gebraucht, was Sie
allerdings nicht überbewerten sollten, sind doch die meisten dieser Dateien bereits beim Endanwender installiert (Access-
Runtime, DAO-Libraries).
1054
Bemerkungen
Obiger Hinweis ist auch der Grund, warum wir die Datei XDataControl.ocx nicht einfach mit auf die
Buch-CD kopieren konnten, denn die Registrierung auf Ihrem PC würde wahrscheinlich fehlschlagen,
da kein Setup-Programm angefertigt wurde. Laden Sie deshalb das komplette Projekt von der Buch-CD
nach Visual Basic 6
1
und kompilieren Sie die Komponente erneut!
Unter Verwendung des Package Wizard, der als Add-In in Access enthalten ist
2
, können Sie aber die von
Ihnen entwickelten Komponenten zusammen mit Ihren Access-Anwendungen problemlos weitergeben.
Ein professionelles Setup-Programm sorgt dann für die ordnungsgemäße Installation und Registrierung
auf dem Zielrechner.
Nach diesen vorbereitenden Überlegungen binden wir die Komponente nun in eine Access-Anwendung
ein.
Testoberfläche in Microsoft Access
Erzeugen Sie ein neues Formular und entfernen Sie überflüssigen Schnickschnack wie Navigationsschalt-
flächen, Datensatzmarkierer etc.
Fügen Sie über Einfügen/ActiveX-Steuerelement ein TomsTool.XDataControl dem Formular hinzu:
Abbildung 16.38 Das ActiveX-Control ist
hinzugefügt
Ändern Sie im Eigenschaftenfenster die Name-Eigenschaft in XDataControl1.
Als »Opfer« dient uns in diesem Beispiel die Tabelle Employees, die aus der Northwind-Datenbank stammt.
Wir beschränken uns aber auf die Anzeige der Spalten LastName, FirstName und Homephone.
1
VB 6-Projektdateien können unter VB 5 nicht geladen werden.
2
Voraussetzung ist die Installation der Access 2007 Developer Extensions.
1055
ActiveX-Controls mit VB 6 programmieren
HINWEIS
Kapitel 16: Techniken der Programmentwicklung
Abbildung 16.39 Laufzeitansicht
Programmierung
Hier gibt es, bis auf die Datenquelle, keine wesentlichen Unterschiede zum Programmcode innerhalb der
VB 6-Testumgebung.
Option Compare Database
Option Explicit
Dim rs1 As Recordset
Öffnen des Recordsets:
Private Sub Form_Load()
Set rs1 = CurrentDb.OpenRecordset("Employees")
Set XDataControl1.Recordset = rs1
End Sub
Das Besetzen der Ereignisse:
Private Sub XDatacontrol1_ConfirmDelete(Cancel As Boolean)
Cancel = MsgBox("Datensatz löschen?", vbYesNo, "Frage") = vbNo
End Sub
Private Sub XDatacontrol1_Current()
Text1.Value = rs1!Lastname
Text2.Value = rs1!Firstname
Text3.Value = rs1!Homephone
End Sub
Private Sub XDatacontrol1_InsertClick()
Text1.Value = ""
Text2.Value = ""
Text3.Value = ""
End Sub
Private Sub XDatacontrol1_UpdateClick()
rs1!Lastname = Text1.Value
rs1!Firstname = Text2.Value
rs1!Homephone = Text3.Value
End Sub
Nach dem Öffnen des Formulars sollte der Navigator bereits ordnungsgemäß funktionieren.
1056

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.