Einzelnen Datensatz mit Serienbrief ausgeben

29/05/2008 - 15:56 von Erich Walczak | Report spam
Hallo NG,

ich habe einen Serienbrief erstellt, den ich auch zur Ausgabe eines
einzelnen Datensatzes benutzen möchte.

Dazu habe ich bisher folgendendes gemacht:

Ich habe für den Serienbrief, den ich zur Ausgabe eines einzelnen
Datensatzes benutzen will, ein Word-Dokument *.docm mit folgendem
Inhalt erstellt:

- erforderliche Access-Datenbank-Tabelle (tblMeine Daten) ohne jegliche
Filterung und Sortierung eingebunden
- in VBA ein Formular zur Abfrage des erforderlichen Feldes und eine
"AutoOpen"-Procedur

Zur Ausgabe des entsprechenden Datensatzes sind in der
"AutoOpen"-Procedur folgende Zeilen enthalten, die in àhnlicher Form in
oben genanntem Link enthalten sind:
...
DatQuel = ActiveDocument.MailMerge.DataSource.QueryString
DatQuel = DatQuel & "WHERE ((MNR = " & Mitgliedsnummer.txtmitgliedsnr &
"))"
Debug.Print DatQuell
...

"txteingabe" ist hierin der Name des Eingabefeldes im Formular
"Formularname".

Debug.Print DatQuell gibt im Direktfenster nach Eingabe von z.B. 120 in
das Eingabefeld folgernden Text aus:

SELECT * FROM `tblMeineDaten` WHERE ((MNR = 120))

Das Word-Dokument wird aus Access (oder auch Word) aufgerufen und es
erscheint das Formular zur Abfrage des erforderlichen Feldes.

Es làuft alles ohne Fehlermeldung bis nach der Eingabe in
"txtmitgliedsnr " und bis zur Schließung des Formulars durch, allein es
wird nicht der gewünschte Datensatz entsprechend des eingegebenen
Feldes angezeigt. Die Datenbank zeigt nach wie vor alle Datensàtze an.

Wo ist hier der Fehler bzw. gibt es andere Lösungen?

Gruß
Erich
 

Lesen sie die antworten

#1 Cindy M.
02/06/2008 - 10:28 | Warnen spam
Hallo Erich,

Wenn Du diese Mitgliedsnummer direkt in der Word-Schnittstelle eingibst
und den Inhalt des QueryStrings mit dem Debug.Print Ergebnis vergleichst,
sind sie genau gleich?

Mir fàllt beim ersten Betrachten nur auf:

Normalerweise will QueryString keine Abstànde (MNR0 statt MNR =
120)

Ich habe einen Serienbrief erstellt, den ich auch zur Ausgabe eines
einzelnen Datensatzes benutzen möchte.

Dazu habe ich bisher folgendendes gemacht:

Ich habe für den Serienbrief, den ich zur Ausgabe eines einzelnen
Datensatzes benutzen will, ein Word-Dokument *.docm mit folgendem
Inhalt erstellt:

- erforderliche Access-Datenbank-Tabelle (tblMeine Daten) ohne jegliche
Filterung und Sortierung eingebunden
- in VBA ein Formular zur Abfrage des erforderlichen Feldes und eine
"AutoOpen"-Procedur

Zur Ausgabe des entsprechenden Datensatzes sind in der
"AutoOpen"-Procedur folgende Zeilen enthalten, die in àhnlicher Form in
oben genanntem Link enthalten sind:

DatQuel = ActiveDocument.MailMerge.DataSource.QueryString
DatQuel = DatQuel & "WHERE ((MNR = " & Mitgliedsnummer.txtmitgliedsnr &
"))"
Debug.Print DatQuell


"txteingabe" ist hierin der Name des Eingabefeldes im Formular
"Formularname".

Debug.Print DatQuell gibt im Direktfenster nach Eingabe von z.B. 120 in
das Eingabefeld folgernden Text aus:

SELECT * FROM `tblMeineDaten` WHERE ((MNR = 120))

Das Word-Dokument wird aus Access (oder auch Word) aufgerufen und es
erscheint das Formular zur Abfrage des erforderlichen Feldes.

Es làuft alles ohne Fehlermeldung bis nach der Eingabe in
"txtmitgliedsnr " und bis zur Schließung des Formulars durch, allein es
wird nicht der gewünschte Datensatz entsprechend des eingegebenen
Feldes angezeigt. Die Datenbank zeigt nach wie vor alle Datensàtze an.

Wo ist hier der Fehler bzw. gibt es andere Lösungen?




Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister

Rückfragen & Antworten nur in der Newsgroup, bitte!

Ähnliche fragen