PDA

Vollständige Version anzeigen : Parameterabfrage / Serienbrief :-(


muffelpeter
13.10.2003, 10:10
Hallo Forum

Nach längerer Forensuche, die meine Wünsche leider unerfüllt ließ, habe ich mich nun entschlossen einen neuen Thread zu öffnen.

Mein Anliegen ist ein Serienbrief (Wxp), der Daten aus einer Parameterabfrage aus Access (xp) erhält. In der Abfrage enthält ein Feld als Parameter ein Formularfeld. Wird aus dieser geöffneten Abfrage nun der Serienbrief generiert, so "bekommt" Word keine Datensätze übergeben.
Lasse ich nun aber den Parameter weg (also Abfrage zeigt alle Datensätze an), ist das alles kein Problem und der Serienbrief enthält alle DS der Abfrage.
Meine Frage nun also:
Ist es irgendwie möglich, eine Parameterabfrage an einen Serienbrief zu übergeben? Also als reine Abfrage, nicht als neu erstellte Tabelle?

Ich weiß wohl, daß dieses Thema schon des Öfteren im Forum behandelt wurde aber ich hab nicht wirklich eine Antwort gefunden. Falls ich mich versehen haben sollte, bitte ich das schon mal im Voraus zu entschuldigen.

Viele Grüße

Muffel

Nouba
13.10.2003, 10:16
Hallo Muffelpeter,

Du könntest eine temporäre Abfrage erstellen, den Abfragetext mit den Parametern aus dem Formular hart kodieren, dann mit der Abfrage anstellen was Du willst und anschließend die Abfrage wieder löschen.

muffelpeter
13.10.2003, 10:28
Hallo Nouba....


Im Prinzip hört sich das, was Du vorschlägst genau so an, wie das, was mir vorschwebt. Temporäre Abfrage...

Nur, was meinst Du mit "hart kodieren"?
Meinst Du die Abfrage direkt in VBA aufbauen?

Grüße...

Nouba
13.10.2003, 10:32
mit hart kodieren meine ich, feste Werte aus den Steuerelementen statt Parameter in den Abfragetext mit VBA einzutragen.

muffelpeter
13.10.2003, 10:59
hmm..

ich weiß nicht, ob ich mich richtig ausgedrückt habe. Ich umschreibe vielleicht noch einmal, was ich machen will.
Die Abfrage bezieht sich auf eine Tabelle mit Kundendaten. In diesen Kundendaten ist auch eine Projektnummer aufgenommen. In einem Formular, in dem die Daten der Projekte aufgezeigt sind, ist ein Button, der einen Serienbrief an alle Kunden dieses Projektes erstellen soll.
In der Abfrage erreiche ich, dass alle Kunden dieses Projektes angezeigt werden in dem ich mich mit "Wie [Formulare]![Projketdaten]![Projekt_Nr]" beim Feld Projektnummer eingrenze.
Darufhin klappt aber der Serienbrief nicht. Lasse ich den Bezug auf die Projektnummer weg, klappts...

Wie kann ich denn den Inhalt des Steuerelementes (hier dann wohl der Inhalt des Steuerelementes [Projekt_Nr]) fest über VBA an eine (meine) Abfrage übergeben? Ist das nicht im Prinzip genau das, was ich mit dem "wie [Formular]!..." gemacht habe?


Grüße...

Nouba
13.10.2003, 11:27
schau Dir mal die Abfrage als Text an. Es gilt, diesen Abfragetext so zu erstellen, dass der Steuerelementeinhalt aus dem Feld Projekt_Nr dort zu stehen kommt, wo jetzt der Formularparameter steht. Da Du mit Like vergleichst, unterstelle ich einen Textdatentyp.
Const strcTmpQry As String = "qselTmpProjekt"

Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String

strSQL = strSQL & "SELECT" & vbCrLf
strSQL = strSQL & " FeldX" & vbCrLf
strSQL = strSQL & ", FeldY" & vbCrLf
strSQL = strSQL & "FROM ProjektDaten" & vbCrLf
strSQL = strSQL & "WHERE Projekt_Nr Like '" & Me!Projekt_Nr & "'"

' die folgende Ausgabe im Direktfenster muß eine lauffähige Abfrage liefern
' bitte von dort probeweise in eine neue Abfrage kopieren
Debug.Print strSQL

Set db = CurrentDb
Set qdf = db.CreateQueryDef(strcTmpQry)
qdf.SQL = strSQL
Set qdf = Nothing

' jetzt existiert die Abfrage in der Datenbank und kann verwendet werden

' am Ende löschen wir die Abfrage wieder
db.QueryDefs.Delete strcTmpQry

Set db = Nothing

muffelpeter
15.10.2003, 11:17
Cool.. Vielen Dank Nouba...

jetzt gehts prima...
Ich verstehe allerdings nicht so richtig, warum vorher nicht.
In dem Abfrage-Generator hab ich mir das doch quasi auch so "zusammen-geklickt"...

Im Übrigen finde ich das echt klasse von allen hier, die sich die Zeit und Mühe nehmen auf die Fragen zu antworten. Vor allem oftmals in sehr kurzer Zeit!!! Man könnte meinen, ihr wartet nur auf Fragen... :D


Also, vielen Dank nochmal...

Grüße
Muffelpeter