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 3/2013.

Diesen Artikel jetzt als PDF plus Beispieldatenbank herunterladen?

Wenn Sie sich jetzt für den Newsletter anmelden, erhalten Sie in Kürze eine E-Mail mit dem Artikel im PDF-Format plus Beispieldatenbank.

Hier anmelden:1143343553

E-Mail:

Anrede:

Vorname:

Nachname:

Zusammenfassung

Lernen Sie eine Anwendung zum Verwalten von Abonnements, Kunden, Produkten und Ausgaben kennen.

Techniken

Abfragen, Formulare, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

Abonnementverwaltung.mdb

Shortlink

www.access-im-unternehmen.de/889

Abonnements verwalten, Teil 3

André Minhorst, Duisburg

Die ersten beiden Teile dieser Beitragsreihe haben uns Formulare zum Verwalten von Produkten, Abonnements und Kunden sowie Funktionen zum Anlegen, Verlängern, Kündigen und Stornieren der Abonnements beschert. Fehlt nur noch eine wichtige Funktion: der Versand der jeweiligen Ausgaben beziehungsweise die Lieferung der Empfängerlisten.

Von der Aboverwaltung zum Versand

Wenn Sie Produkte, Kunden und Abonnements in einer Datenbank verwalten - was definitiv sinnvoll ist, denn mit steigender Kunden- und Abonnementzahl wird es schnell unübersichtlich -, benötigen Sie eine optimale Vorbereitung des eigentlichen Versands einer jeden Ausgabe.

Dabei kommt es zunächst darauf an, um was für ein Medium es sich überhaupt handelt. Es könnte um ein Printmagazin im klassischen Sinne gehen, wobei die Anwendung eine Liste der Adressaten der aktuellen Ausgabe ausspucken sollte. Wenn Sie das Magazin selbst versenden, drucken Sie auf Basis der Adressenliste entsprechende Adressetiketten oder gleich mit Porto versehene Aufkleber. Kümmert sich ein Dienstleister um den Versand, schicken Sie ihm die Liste der Adressaten zu.

Vielleicht handelt es sich auch um ein Onlinemagazin. Hier gibt es wiederum mindestens zwei verschiedene Möglichkeiten: entweder Sie verschicken das Magazin etwa im PDF-Format direkt per E-Mail an den Kunden. Oder Sie stellen das Magazin auf einer Webseite zum Download bereit und schicken dem Kunden einen entsprechenden Link. Wir schauen uns in diesem Beitrag sowohl die Möglichkeit der Listenerstellung als auch die des Versands des Produkts per E-Mail an.

Versand protokollieren

Wichtig ist in beiden Fällen, dass Sie den Versand einer Ausgabe an einen Kunden im Rahmen eines Abonnements vermerken - am besten unter Angabe des Versanddatums. Dabei ist mit Versanddatum allerdings nur im Falle des E-Mail-Versands das tatsächliche Versanddatum gemeint. Sollte eine Liste mit dem Adressaten erstellt werden, um diese an einen Dienstleister weiterzuleiten oder erstellen Sie selbst Adressetiketten, vermerkt die Anwendung das Datum, an dem die Ausgabe für den Versand vorgemerkt wurde.

Ausgabe auswählen

Wenn Sie wie in den vorherigen Folgen der Beitragsreihe bereits Tabellen und Formulare zur Verwaltung von Produkten, Ausgaben, Abonnements und Versendungen erstellt haben, können Sie damit leicht auch den Versand einer Ausgabe organisieren.

Wie starten wir diesen Vorgang? Am einfachsten ist es, zunächst das Produkt und die zu versendende Ausgabe zu ermitteln. Dazu erstellen wir ein Formular namens frmVersendungen. Dieses binden wir nicht an die Datenherkunft, sodass wir die Eigenschaften Navigationsschaltflächen, Datensatzmarkierer und Bildlaufleisten auf Nein einstellen können.

Diesem Formular fügen Sie zunächst ein Kombinationsfeld namens cboProdukte zur Auswahl des zu versendenden Produkts hinzu. Dieses verwendet die Tabelle tblProdukte als Datenherkunft. Damit das Kombinationsfeld nur den Produktnamen und nicht den Primärschlüsselwert als gebundene Spalte anzeigt, stellen Sie die Eigenschaften Spaltenanzahl und Spaltenbreiten auf die Werte 2 und 0cm ein.

Nach der Auswahl des Produkts folgt schon die Festlegung der Ausgabe, deren Exemplare versendet werden sollen - und zwar mit einem weiteren Kombinationsfeld namens cboAusgaben (s. Abb. 1).

pic002.png

Abb. 2: Datensatzherkunft des Kombinationsfeldes zur Anzeige der offenen Ausgaben

Am einfachsten ist es, darin einfach alle Ausgaben anzuzeigen. Allerdings sollte die Liste zumindest eine Einschränkung nach dem zuvor gewählten Produkt enthalten. Noch schöner wäre es, wenn zusätzlich nur diejenigen Ausgaben angezeigt würden, für die überhaupt Versendungen geplant sind - für die also entsprechende Datensätze in der Tabelle tblVersendungen vorliegen.

Um diese Ausgaben zu ermitteln, erstellen wir eine neue Abfrage namens qryAusgabenNachProduktIDOffen (s. Abb. 2). Diese Abfrage enthält nicht nur die beiden Tabellen tblAusgaben und tblProdukteAusgaben, die für die Ermittlung aller Ausgaben eines Produkts nötig wären, sondern zusätzlich noch die Tabelle tblVersendungen. Dies ermöglicht gleichzeitig die Berechnung der offenen Versendungen einer Ausgabe eines bestimmten Produkts. Die Felder AusgabeID und AusgabeBezeichnung sollen später im Kombinationsfeld cboAusgaben erscheinen. ProduktID dient dem Filtern nach dem Produkt, das der Benutzer im Kombinationsfeld cboProdukte festgelegt hat.

pic001.png

Abb. 1: Erstellen eines Formulars zum Auswählen von Produkt und Ausgabe

AusgabeJahr und AusgabeNummer sortieren die Datensätze chronologisch. Bei den beiden letzten Feldern wird es interessant. Zunächst einmal aktivieren Sie die Gruppierungsfunktion für die Abfrage, denn anderenfalls würde sie im Ergebnis jede Ausgabe entsprechend der Anzahl der passenden Datensätze in der Tabelle tblVersendungen ausgeben. Es soll aber jede Ausgabe nur einmal erscheinen.

Daher gruppieren wir nach allen Feldern der Tabellen tblAusgaben und tblProdukteAusgaben. Das Feld Versanddatum der Tabelle tblVersendungen wird mit der Funktion Bedingung versehen und mit dem Kriterium Ist Null ausgestattet. Außerdem wird es ausgeblendet. Das Feld Offen mit dem Ausdruck VersendungID versehen Sie mit der Funktion Anzahl, damit dieses die Anzahl der Datensätze der Tabelle tblVersendungen zurückgibt, die noch nicht als versendet gekennzeichnet wurden. Das Ergebnis der Abfrage sieht wie in Abb. 3 aus.

pic003.png

Abb. 3: Anzahl der noch zu versendenden Exemplare je Ausgabe und Produkt

Damit das Kombinationsfeld cboAusgaben nach der Auswahl eines der Einträge des Kombinationsfeldes cboProdukte die gewünschten Daten anzeigt, fügen Sie für die Ereignisprozedur Nach Aktualisierung von cboProdukte die Prozedur aus Listing 1 hinzu.

Listing 1: Aktualisieren des Kombinationsfeldes zur Anzeige der offenen Ausgaben

Private Sub cboProdukte_AfterUpdate()

    Dim strSQL As String

    strSQL = "SELECT AusgabeID, AusgabeBezeichnung & '(' & Offen & ')' AS Ausgabe " _

        & "FROM qryAusgabenNachProduktIDOffen WHERE ProduktID = " & Me!cboProdukte

    With Me!cboAusgaben

        .RowSource = strSQL

        .SetFocus

        .Dropdown

    End With

End Sub

Diese ermittelt die AusgabeID und einen aus der Bezeichnung und der Anzahl der offenen Versendungen zusammengesetzten Ausdruck für das gewählte Produkt und zeigt nach der Auswahl eines Produkts gleich die Liste der Ausgaben mit noch offenen Versendungen an (s. Abb. 4).

pic004.png

Abb. 4: Anzeige der Ausgaben mit noch offenen Versendungen

Zu versendende Exemplare in Unterformular anzeigen

Nun benötigen wir ein Unterformular oder ein Listenfeld zur Anzeige der noch offenen Versendungen, das mit der Auswahl des Kombinationsfeldes cboAusgaben gefüllt wird. Da wir auch die Möglichkeit offenhalten möchten, eine Versendung manuell einzutragen, verwenden wir ein Unterformular in der Datenblattansicht, um die offenen Versendungen anzuzeigen. Dieses soll den Kunden mit Bezeichnung und E-Mail-Adresse sowie ein Feld zur Eingabe des Versanddatums anzeigen.

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:

Diesen Artikel jetzt als PDF plus Beispieldatenbank herunterladen?

Wenn Sie sich jetzt für den Newsletter anmelden, erhalten Sie in Kürze eine E-Mail mit dem Artikel im PDF-Format plus Beispieldatenbank.

Hier anmelden:

E-Mail:

Anrede:

Vorname:

Nachname:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.