collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 51
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 14072
  • stats Beiträge insgesamt: 67582
  • stats Themen insgesamt: 9104
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Bericht(e) senden, Empfänger kommen aus einer Tabelle  (Gelesen 461 mal)

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Bericht(e) senden, Empfänger kommen aus einer Tabelle
« am: September 22, 2018, 13:43:12 »
Hallo zusammen,

ich muss tgl. mehrere Berichte an unterschiedliche Empfänger versenden.

Bei den Berichten handelt es sich eigentlich nur um einen Bericht, allerdings mit empfängerbezogenen Daten.
Die Basis für den Bericht bildet eine Abfrage, so dass auch diese wissen muss welche Abfrage zu welcher Mailadresse gehört.
Abfragekrieterium und Mailadressen werden in einer Tabelle gepflegt.

Mein Ziel ist es nun, das alle Berichte mit den jeweiligen Daten nacheinander an den richtigen Empfänger geht.

Könnt Ihr mir mit einem entsprechenden VBA-Code helfen?

Lieben Dank im Vorraus

Andreas
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #1 am: September 22, 2018, 15:45:01 »
Hallo Andreas,
Zitat
Die Basis für den Bericht bildet eine Abfrage, so dass auch diese wissen muss welche Abfrage zu welcher Mailadresse gehört.
Nicht ganz klar, eine und welche widersprechen sich.
Vorgehensweise, die mir einfällt
 - Recordset mit den Empfängern öffnen
 - in einer Schleife durch dieses RS den Bericht mit Kriterium öffnen und versenden.
gruss ekkehard

P.S. Vielleicht lädst du eine kleine Beispiel-DB mit ein paar Spieldaten hier hoch.
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #2 am: September 23, 2018, 10:55:20 »
Hallo Ekkehard,

im Anhang habe ich Dir einmal eine kleine DB erstellt.

Ich hoffe, dass diese verständlich ist.....

Liebe Grüße

Andreas
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #3 am: September 23, 2018, 15:46:32 »
Hallo Andreas,
Sorry, aber so wird das nichts; - keine Schlüssel, keine Beziehungen …
Da habe keine Lust dazu.
Beschäftige dich erstmal ein wenig mit den Grundlagen der Datenbankerstellung.
Gute Links findest du z.B. beim Forumsmitglied MzKlMu.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #4 am: September 24, 2018, 10:12:49 »
Hallo Ekkehard,

es handelte sich hierbei ja auch nur um ein Beispiel, um zu verdeutlichen, was ich eigentlich meinte.

Die "echte" DB ist zu groß, um sie Euch zur Verfügung zu stellen.

Schade... :'( :'(

Wünsche allen einen erfolgreichen Wochenstart

Andreas
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7429
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #5 am: September 24, 2018, 10:16:38 »
Hallo,
Zitat
es handelte sich hierbei ja auch nur um ein Beispiel,
gerade in einem Beispiel sollte man Beziehungen und alle Schlüsselfelder anlegen. Dann hat der Helfende sehr schnell einen Überblick.
Hole das nach, lade die DB noch mal hoch und Du wirst hier geholfen.  ;D
Gruß
Klaus
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1892
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #6 am: September 24, 2018, 11:39:54 »
Hallo Andreas,
Zitat
Die "echte" DB ist zu groß
Wenn die genauso aussieht wie das Beispiel, solltest du allerdings zunächst
mal ein Bild des Beziehungsfensters posten, und ein paar Erläuterungen zum
Zweck der DB geben. Denn ich befürchte, dass da noch so Einiges im Argen liegt.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #7 am: September 24, 2018, 16:40:59 »
Eine mögliche Gestaltung wäre:'Dein VBA Formular-Modul mit dem Knopf

Option Compare Database
Option Explicit

#If 0 Then
SQL-Abfragetext von qry_QR:
-------------------------------------------------------------------------------
SELECT d.Datum,
       p.Name,
       d.Tour,
       d.Stopps,
       d.Collis,
       d.Partner
FROM   tbl_Partner AS p
       INNER JOIN tbl_Daten AS d
               ON p.Partner_ID = d.Partner
WHERE  d.Datum = [Forms]![frm_senden]![Datum];
-------------------------------------------------------------------------------

SQL-Abfragetext von spPartnerIdMailByDate:
-------------------------------------------------------------------------------
SELECT p.Partner_ID,
       p.Mail
FROM   tbl_Partner AS p
       INNER JOIN tbl_Daten AS d
               ON p.Partner_ID = d.Partner
WHERE  d.Datum=[@Datum];
-------------------------------------------------------------------------------

#End If

#Const AsMail = False  'auf True zum Mailversand sezten

Private Sub Befehl2_Click()
   Const QRY As String = "spPartnerIdMailByDate"

   Dim ReportFilter As String

   'nur wenn ein gültiges Datum vorliegt
   If IsDate(Me.Datum) Then
      'der Parameterabfrage
      With CurrentDb.QueryDefs(QRY)
          'das Datum zuweisen
         .Parameters("@Datum") = Me.Datum
         'ein Recordset öffnen
         With .OpenRecordset(dbOpenSnapshot, dbForwardOnly)
            'bis zum Ende des Recordsets
            Do Until .EOF
               'Filterausdruck zum Öffnen des Berichts erstellen
               ReportFilter = BuildCriteria("Partner", dbLong, !Partner_ID)
               'Bericht versteckt in der Vorschau öffnen
               DoCmd.OpenReport "rpt_QR", acViewPreview, , ReportFilter, acHidden

#If AsMail Then
               'Email erstellen und senden
               'der Bericht wird hier als RTF exportiert
               'ab Access 2007 kann acFormatPDF verwendet werden
               'Betreff(Subject) und Text der Email anpassen.
               'AFAIKsind 255 Zeichen erlaubt- müsstest Du testen.
               DoCmd.SendObject acReport, "rpt_QR", acFormatRTF, !Mail, , , _
                                "Touren am " & Me.Datum, _
                                "Hallo," & vbLf & vbLf & vbLf & _
                                "Du bist für folgende Touren eingeteilt:"
#Else
               'oder
               '
               'Export in einen Ordner
               DoCmd.OutputTo acOutputReport, "rpt_QR", acFormatRTF, _
                              "c:\temp\" & Format$(Me.Datum, "yyyymmdd_") & _
                              !Partner_ID & ".rtf"
               'hier könnte man Outlook oder CDO für den Versand automatiersen
               'oder ein Programm wie blat.exe den Versand durchführen lassen.
#End If
               'Vorschau schließen
               DoCmd.Close acReport, "rpt_QR", acSaveNo
               'zumnächsten Datensatz (Partner für ein gewähltes Datum)
               .MoveNext
            Loop
            'Recordset schließen
            .Close
         End With
      End With
   End If
End Sub
Grüße von der (⌒▽⌒)
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #8 am: September 24, 2018, 17:24:02 »
Hallo Lachtaube,

ganz, ganz lieben Dank für den code.

Sobald ich ihn testen konnte melde ich mich wieder.

Möchte dennoch die Beispiel-DB nochmals hochladen. Habe die Beziehung und Schlüssel nachgetragen.

Liebe Grüße

Andreas
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #9 am: September 26, 2018, 16:09:54 »
Hallo Lachtaube,

Erst nochmals vielen Dank für den Code, doch leider komme ich damit nicht klar.
Bin auch blutiger Anfänger..... :-[ :-[

Sowie ich SELECT eingebe, kommt die Fehlermeldung, das case benötigt wird.....

Darf ich Dich vielleicht bitten, dir die tatsächliche DB noch einmal anzuschauen und mir eine mögliche Lösung schicken.

Ganz, ganz lieben Dank im Voraus

Andreas
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #10 am: September 26, 2018, 16:36:06 »
Hi Andreas,

oben nach #If 0 Then stehen als Freitextkommentare jeweils Abfragetexte (kein VBA-Code), die in der SQL-Ansicht einer gespeicherten Abfrage so einzutragen sind. Erst hinter #End If wird der VBA-Code ausgewertet.
Grüße von der (⌒▽⌒)
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #11 am: September 26, 2018, 19:13:55 »
Hallo Lauchtaube,

kaum macht man es richtig, funktioniert es, doch leider noch nicht ganz perfekt.

Der Bericht im Mail passt nicht zu dem jeweiligen Partner.

Es kommt mir so vor, als wenn der erste Bericht an den ersten Partner in der Tabelle geht. Das ist aber nur eine Vermutung eines Laien...

Kannst Du dir das bitte nochmals anschauen.

Ganz lieben Dank im Voraus

Andreas
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #12 am: September 26, 2018, 21:10:20 »
Nun Andreas, aus der Ferne kann ich nichts zu den falschen Email-Zuordnungen sagen - an der Logik scheint es nicht zu liegen.

PS: Datenbankanhänge hier möglichst nur als Archiv hochladen und die Datenmenge darin auf vernünftige Dimensionen reduzieren und Daten ggf. anonymisieren.
Grüße von der (⌒▽⌒)
 

Offline Lalikowski

  • Access-Profi
  • **
  • Beiträge: 117
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #13 am: September 27, 2018, 08:53:18 »
Guten Morgen Lachtaube,

habe es nun nochmals getestet.
Es scheint noch mehr nicht zu stimmen.

1. Es wird ein Gesamtreport, mit allen Partnern, generiert.
2. Dieser Report geht per Mail immer nur an Partner_1

Liebe Grüße

Andreas
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1340
Re: Bericht(e) senden, Empfänger kommen aus einer Tabelle
« Antwort #14 am: September 27, 2018, 12:31:07 »
a) schließt Du den Bericht nicht nach jedem Senden.
b) gehst Du im Recordset nicht zum nächsten Datensatz
Das ergibt dann eine Endlosschleife mit immer denselben Daten.
Grüße von der (⌒▽⌒)