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/2005.

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

Sie erstellen ein zur Artikelverwaltung passendes CRM-Tool, das Sie auch separat verwenden können. Das Tool dient zum Pflegen von Kundenkontakten inklusive Verweisen auf E-Mails und sonstige Dokumente.

Techniken

Datenmodellierung, Formulare, Unterformulare, VBA

Voraussetzungen

Access 2000 oder höher

Beispieldateien

CRM00.mdb (ab Access 2000)

Verwandte Beiträge: 273, 281, 294

Kunden und Kontakte verwalten

André Minhorst, Duisburg

Wer seinen Kunden etwas verkaufen möchte, sollte diese gut pflegen. Und damit das gelingt, hält man nicht nur deren Kontaktdaten auf dem aktuellen Stand - auch die persönlichen Kontakte zum Kunden sind wichtig. Die vorliegende Erweiterung der Artikelverwaltung sorgt für beides - damit verwalten Sie je Kunde beliebig viele Liefer- und Rechnungsanschriften und haben die Korrespondenz im Griff.

Funktionen des CRM-Tools

Die hier beschriebene Lösung erweitert die Artikelverwaltung aus Ausgabe 2/2005 und 3/2005 um die Möglichkeit, Kunden und Kontakte zu verwalten.

Das Hauptelement ist das Formular frmKunden, das zur Verwaltung der Kundendaten einschließlich Rechnungs- und Lieferanschriften sowie Kundenkontakten dient. Es enthält folgende Funktionen:

  • Anlegen mehrerer Rechnung- und Lieferanschriften je Kunde
  • Schnellauswahl von Kunden per Kombinationsfeld
  • Verwaltung beliebig vieler Kontakte zu dem Kunden
  • Erstellen von E-Mails aus der Anwendung heraus sowie Referenzieren von in Outlook gespeicherten E-Mails
  • Verknüpfen von Kontakten mit Dokumenten, die im Dateisystem gespeichert sind
  • Abb. 1 und Abb. 2 zeigen das Hauptformular mit den beiden Registerseiten zum Eingeben von Liefer- und Rechnungsadressen sowie Kontaktdaten.

    Datenmodell

    Die meisten Tabellen des Datenmodells sind bereits in der Artikelverwaltung enthalten, auf der die Kunden- und Kontaktverwaltung aufsetzt. Das Datenmodell ist relativ flexibel ausgelegt, um je Kunde mehrere Liefer- und Rechnungsadressen zu speichern.

    Abb. 1: Hauptformular der Kundenverwaltung mit Liefer- und Rechnungsadressen...

    Haupttabelle des Datenmodells ist die Tabelle tblKunden, welche Kundennummer, Name und die wichtigsten Kontaktdaten des Kunden enthält.

    Die Liefer- und Rechnungsadressen befinden sich zum größten Teil in der Tabelle tblAdressen.

    Liefer- und Rechnungsadressen enthalten unterschiedliche Informationen. Deshalb wurden diese Informationen in je eine weitere Tabelle ausgelagert, um die Tabelle tblAdressen nicht mit leeren Feldern zu überladen.

    Abb. 2: ... und Verwaltung der Kontakte zu den jeweiligen Kunden.

    Abb. 3: Datenmodell des CRM-Tools

    Die beiden Tabellen mit den speziellen Liefer- beziehungsweise Rechnungsinformationen enthalten beide ein Feld namens Standard. Mit diesem Feld lässt sich festlegen, welche Liefer- beziehungsweise Rechnungsadresse standardmäßig für den Kunden verwendet werden soll.

    Neu im Datenmodell sind die beiden Tabellen tblKontakte und tblKontaktarten. Die Tabelle tblKontakte enthält Informationen über Telefonate und Meetings mit dem Kunden sowie Informationen über E-Mails, Briefe und Faxe an den Kunden.

    Die Tabelle tblKontaktarten enthält die genannten Kommunikationsmöglichkeiten, die aus der verknüpften Tabelle tblKontakte per Fremdschlüsselfeld ausgewählt werden können.

    Abb. 4: Das komplette Kundenformular in der Detailansicht

    Abb. 5: Einfügen der Felder der Tabelle tblKunden

    Formular zur Verwaltung der Kunden

    Das Kundenformular soll alle in den Tabellen des Datenmodells bereitgestellten Daten verwalten. Das scheint auf den ersten Blick ein wenig viel, aber mit einem zweiseitigen Register und drei Unterformularen wird das Formular schnell Herr der Daten (s. Abb. 4).

    Das Hauptformular ist sehr einfach aufgebaut:

    Seine Datenherkunft ist die Tabelle tblKunden und die darin enthaltenen Felder bilden auch schon den größten Teil der Steuerelemente des Formulars.

    Die Felder ziehen Sie nach dem Festlegen der Datenherkunft einfach aus der Feldliste in das Formular und positionieren diese am oberen Rand
    (s. Abb. 5).

    Anschließend fügen Sie ein Registersteuerelement ein und beschriften die beiden Reiter mit Adressdaten und Kundenkontakte.

    Schnelle Kundenauswahl

    Damit der Benutzer schnell zu einem anderen Kunden wechseln kann, ohne erst umständlich ein Suchformular oder Ähnliches öffnen zu müssen, stellen Sie ihm ein Kombinationsfeld zur schnellen Auswahl eines Kunden zur Verfügung (s. Abb. 6).

    Das Kombinationsfeld hat als Datensatzherkunft die folgende Abfrage:

    Abb. 6: Kombinationsfeld zur Schnellauswahl eines Kunden

    SELECT tblKunden.KundeID, 
    [Nachname] & ", " & [Vorname] AS Kunde FROM tblKunden
    ORDER BY [Nachname] & ", " & [Vorname];

    Damit das Formular nach der Auswahl eines der Einträge aktualisiert wird, legen Sie außerdem für die Ereigniseigenschaft Nach Aktualisierung die Prozedur aus Quellcode 1 an.

    Quellcode 1: Anzeigen des im Kombinationsfeld ausgewählten Kunden

    Private Sub cboKunden_AfterUpdate()

        Dim db As DAO.Database

        Dim rst As DAO.Recordset

        Set db = CurrentDb

        Set rst = Me.RecordsetClone

        rst.FindFirst "KundeID = " & Me.cboKunden

        If Not rst.NoMatch Then

            Me.Bookmark = rst.Bookmark

        End If

    End Sub

    Abb. 7: Datenherkunft des Unterformulars zur Anzeige der Lieferadressen

    Verwaltung der Lieferadressen

    Nun geht es direkt an das Einbinden der Informationen aus den anderen Tabellen - den Start machen die Adressinformationen aus den drei Tabellen tblAdressen, tblLieferadressen und tblRechnungsadressen.

    Datenherkunft des Unterformulars

    Als Datenherkunft des ersten Unterformulars, das die Lieferadressen anzeigt, dient die Abfrage qryLieferadressenAdd (s. Abb. 7). Die Abfrage enthält alle Felder der beiden per 1:1-Beziehung verknüpften Tabellen tblAdressen und tblLieferadressen.

    Aufbau des Unterformulars
    frmLieferadressen

    Das Unterformular frmLieferadressen enthält die anzuzeigenden Felder wie in Abb. 8 zu sehen. Außerdem sind die beiden Felder, über die die 1:1-Beziehung realisiert wird, zu erkennen.

    Diese beiden Felder werden in der Formularansicht ausgeblendet, da sie nur der Herstellung der 1:1-Beziehung beim Anlegen neuer Lieferadressen dienen.

    Die Abfrage zur Zusammenführung der verknüpften Tabellen stellt zwar alle Daten beider Tabellen wie gewünscht dar, allerdings wird, wenn man nur die Felder der Tabelle tblAdressen ausfüllt, nicht automatisch ein korrespondierender Datensatz in der Tabelle tblLieferadressen angelegt.

    Die Abfrage zeigt allerdings Kombinationen aus Datensätzen der Tabellen tblAdressen und tblLieferanten an, bei denen der Wert des Feldes AdresseID gleich ist.

    Um bereits beim Anlegen der Daten sicherzustellen, dass nicht nur der tblAdressen-Teil der 1:1-Beziehung angelegt wird, erstellen Sie eine kleine Ereignisprozedur, die vor Aktualisierung des Formulars ausgeführt wird (s. Quellcode 2).

    Die Prozedur füllt lediglich das Feld AdresseID der Tabelle tblLieferadressen mit dem gleichen Wert, den das entsprechende Feld der Tabelle tblAdressen enthält.

    Quellcode 2: Anlegen eines Datensatzes in einer per 1:1-Beziehung verknüpften Tabelle

    Private Sub Form_BeforeUpdate(Cancel As Integer)

        Me!tblLieferadressen_AdresseID = Me!tblAdressen_AdresseID

    End Sub

    Quellcode 3: Diese Routine sorgt für das Setzen einer neuen Standardadresse für einen Kunden.

    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:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.