Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Auslesen eines Wertes aus Bericht mit VBA

Begonnen von Mover, Juli 02, 2013, 15:16:11

⏪ vorheriges - nächstes ⏩

Mover

Servus Gemeinde,

die SuFu brachte nur Teilresultate, die ich nicht in eine funktionierende Codierung umzusetzen in der Lage bin.
Ich bitte daher hier um Hilfe.

Aufgabenstellung: Ich erzeuge aus einer Access-2003-DB über eine Abfrage einen Report, welchen ich per Outlook-Email als HTML-Mail an Mailempfänger versenden möchte, deren Emailadresse(n) in der Abfrage enthalten ist/sind. Der entsprechende Report steht.

Auch die Erzeugung der Email über "DoCmd.SendObject acSendReport,  ..., acFormatHTML, ...." funktioniert soweit.

Einzige Hürde: ich weiss nicht, wie ich die Emailadresse(n) "auslese", um sie nach "acFormatHTML, " einzufügen.

Kann mir da bitte jemand behilflich sein? Mein Dank wird ihn/sie auf ewig verfolgen...

DF6GL

Hallo,

Zitatwie ich die Emailadresse(n) "auslese",

Mit einem Recordset...



Dim rs as Dao.Recordset

Set rs=Currentdb.Openrecordset("select EmailAdresse from DeineTabelle ", dbOpenSnapShot)

If rs.Recordcount > 0 Then

Do until Rs.Eof

Docmd.SendObject......., rs(0) ,......

rs.Movenext
Loop


End If

rs.close

set rs=Nothing

Mover

Vielen Dank für Deine Hilfe, aber ich bin schienbar zu blöd, selbst das zu realisieren.
Hinzu kommt, dass ich mich wohl auch falsch ausgedrückt habe, wie das meiner Meinung nach zu funktionieren hat.

Also, ich habe ein Eingabeformular. In diesem Eingabeformular gibt es eine Befehlsschaltfläche namens "EmailInstructions".
Sobald diese geklickt wird, soll das Programm -basierend auf dem aktuellen Datensatz, der im formular gerade angezeigt wird- die Abfrage namens "qry_ANMELDUNG" als Grundlage für den Bericht "rpt_ANMELDUNG" nehmen, und das Resultat dieses Berichts (der dann aus einer einzigen Seite bestehen soll/wird), an die Emailadresse verschicken, die in qry_ANMELDUNG im Feld "AGENTEMAIL1" abgerufen wird.

Ich hänge wohl mal die Datei mit an, damit dieses Durcheinander etwas deutlicher wird...

Kann / mag mir dabei jemand bitte behilflich sein?

Vielen Dank....

[Anhang gelöscht durch Administrator]

DF6GL

#3
Hallo,

hier mal ein Beispiel:

Dim db As Database, rs As DAO.Recordset, strSQL As String

Set db = CurrentDb

Set rs = db.OpenRecordset("select distinct AGENTEMAIL1  from qry_ANMELDUNG", dbOpenSnapshot)
rs.MoveLast
rs.MoveFirst

Debug.Print rs.RecordCount
Do Until rs.EOF
strSQL = db.QueryDefs("qry_ANMELDUNGTemplate").SQL
strSQL = Replace(strSQL, ";", "  Where  ") & "CLEARANCEID =" & Me!CLEARANCEID     ' falls die Berichtsdaten von CLEARANCEID abhängig sind
db.QueryDefs("qry_ANMELDUNG").SQL = strSQL

DoCmd.SendObject acReport, "rpt_ANMELDUNG", acFormatHTML, rs!AGENTEMAIL1, , , "Hier kommt Ihr Report", "Bitte lesen", True


rs.MoveNext
Loop

rs.Close:Set rs = Nothing
set db= Nothing




"qry_ANMELDUNGTemplate"   ist ein weitere Abfrage identisch zu "qry_ANMELDUNG",  jedoch ohne Sortierung, Guppierung oder sonstige Kriterien-Angaben.



Wenn zu "CLEARANCEID"  immer nur eine Email-Adresse "zuständig" ist,  könnte man insofern vereinfachen, als dass man auf die Recordset-Schleife verzichtet und die die Recordset-SQL mit dem Auswahlkriterium versieht.


Mover

Wow, meine Begeisterung ist riesig!

Danke recht herzlich, so langsam fange ich an zu kapieren, nach welcher Systematik das aufgebaut ist.

Das bringt mich einen großen Schritt weiter.

You make my day!   8)