Juni 26, 2022, 20:13:56

Neuigkeiten:

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


Bericht pro Kunde

Begonnen von ostill, Oktober 27, 2021, 20:13:51

⏪ vorheriges - nächstes ⏩

ostill

einen wunderschönen guten abend,

ich habe da mal eine prinzipielle frage:

ich erstelle über eine abfrage einen bericht für zum beispiel 3 kunden
bericht 1 hat 3 seiten - bericht 2 z.b. 2 seiten und bericht 3 hat 5 seiten
ingesamt 10 seiten
wie sende ich diese berichte per email an kunde a ( 3 seiten per pdf ) kunde b (2 seiten per pdf)
und kunde c 5 seiten per pdf

mir fehlt da gerade so der zugang dazu , denn in der berichtsvorschau habe ich gesamt 10 seiten / wie trennt access das auf ?
 

MzKlMu

Oktober 27, 2021, 20:20:28 #1 Letzte Bearbeitung: Oktober 27, 2021, 20:24:33 von MzKlMu
Hallo,
filtere den Bericht jeweils für einen Kunden, den kannst du dann senden.

Was ist denn aus dem Thema "Berichtskopf/Seitenkopf" geworden?
Du hast nicht mehr geantwortet.
Gruß
Klaus

ostill

danke werde mich die tage mal dran machen :-)
antort zu gruppenkopf siehe gruppenlopf :-)
schreibe ich gleich rein

ostill

sorry aber lässt mich jetzt nicht los- lag schon im bett -

ich habe ein formular, auf dem ich aus z.b. 65 datensätzen / kunden per kontrollkästchen auswählen, welcher kunde nun einen berich erhält.

wenn ich nun drei kunden per kontrollkasten auswähle, dann erhalte ich auch drei berichte kunde a 3 seiten kunde b 2 Seiten und kunde c 5 seiten

in der berichtsvorschau steht aber nicht wie erhofft bei kunden a seite 1 von 2 sondern seite 1 von 10
insofern fehlt noch die abtrennung der berichte auf die kundennummer

Bericht filtern geht dann wohl anders, oder

mein ziel wäre kunde a z.b. seite 1 von 2 und seite 2 von 2, um diesen bericht dann per mail zu versenden

wenn ich jeden bericht pro kunde einzeln öffnen müsste, würde es schon sehr lange dauern, wenn ich z.b. 50 berichte öffne ...

sorry aber das musste ich noch loswerden & vilen Dank für eure geduld, ich hoffe ihr kennt die "verzweilung" wenn Ihr x Tage und Stunden an einer DB sitzt und ihr mnachmal das gefühl habt eins gelös, 10 neue probleme kommen

Danke euch

ostill

 

DF6GL

Hallo,


Zitatwenn ich jeden bericht pro kunde einzeln öffnen müsste, würde es schon sehr lange dauern, wenn ich z.b. 50 berichte öffne .

Da bleibt nichts anderes übrig... wie auch MzKiMu gepostet hat.


Warum dauert es so lange?  Sowas, einschließlich dem Versand, löst man mit Hilfe eines Button-Klicks und ein paar Prozeduren...


Außerdem solltest Du die Seitenansicht anstelle der Berichtsansicht verwenden, um das genaue Layout für den Ausdruck, bzw. die für die genereierte PDF-Datei zu sehen.



Und dies:

Zitatwenn ich nun drei kunden per kontrollkasten auswähle, dann erhalte ich auch drei berichte kunde a 3 seiten kunde b 2 Seiten und kunde c 5 seiten

kann dann nicht stimmen.  Du erhältst einen Bericht, der Daten über 3 Kunden ausgibt.

ostill

ich begrüsse euch - also ich habe nun im formular, in dem ich die kunden,die einen bericht erhalten sollen,
per haken ausgewält - zum test drei an der zahl - siehe bild 1

dann habe ich eine schältfläche mit nachfolgendem vba code versehen

Private Sub Befehl63_Click()
DoCmd.SendObject acSendReport, "Kontoabstimmung_drucken_4", acFormatPDF, , , , "Betrifft irgendwas", "Beispiel Text", True

es funkioniert so semi - es wird für den ersten Kunden eine mail erstellt - mit dem Formular - alles toll
allerdings auch nur für den "ersten" kunden - für die beiden danach passiert nix ... 


 

DF6GL

Hallo,


tja, so einfach geht das ja nicht..


Du musst in einem Recordset die markierten Datensätze laden und per Schleife für jeden Kunden den individuellen Bericht drucken.

ostill

Hi & hallo,
vielen Dank für den Recordset Hinweis - habe ich nun auch erstellt -

Nun wähle ich z.B. 4 Kunden aus - Drücke auf Bericht senden -
es geht eine Outlook-Nachricht auf, aber im Feld an stehen alle 4 mailadressen der ausgewählten Kunden

Bericht ist als PDF angehängt- Text im Betreff steht drin - Text in der Nachricht steht auf drin

eigentlich schick aber.... es sollte eigentlich pro Datensatz ein Bericht erstellt werden; nun erstellt accesss einen bericht mit 4 mailadressen

Code sende ich mal mit

-----------------------------------------------------------------------

Dim rs As DAO.Recordset
    Dim mailadd As String
   
    Set rs = CurrentDb().OpenRecordset("KontoabstimmungTest")
    Do While Not rs.EOF
        mailadd = mailadd & "; " & rs!emailadresse
        rs.MoveNext
    Loop
    DoCmd.SendObject acSendReport, "Kontoabstimmung_drucken_4", _
                     acFormatPDF, Mid(mailadd, 3), , , _
                     "Leergut Kontoabstimmung", "Sehr geehrte Damen und Herren, .......", True
   
rs.Close
    Set rs = Nothing

End Sub
-----------------------------------------------------------------------------------------------------

Kann mir jemand helfen; Ziel wäre z.B. 5 Kunden auswählen - dann auf Knopf drücken -
dann geht Outlook auf (oder der Prozess läuft im Hintergrund) - Kunde 1 bekommt mail mit Text & PDF als Anhang -

GRüsse

ostill

 


PhilS

Das DoCmd.SendObject gehört in die Schleife, so dass es für jeden Datensatz einmal ausgeführt wird.
Allerdings fehlt da noch eine Beschränkung der Daten in dem Bericht auf den jeweils aktuellen Kunden. Evtl. hilft dazu: Gefilterten Access-Bericht als PDF exportieren - Anstelle der PDF-Ausgabe setzt du dann SendObject ein.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Beaker s.a.

Zitatso dass es für jeden Datensatz einmal ausgeführt wird.
Aber nur an eine Adresse, und nicht jedes mal an alle
mailadd = mailadd & "; " & rs!emailadresse
--
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.