collapse

* Benutzer Info

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

* Wer ist Online

  • Punkt Gäste: 65
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14053
  • stats Beiträge insgesamt: 67475
  • stats Themen insgesamt: 9092
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Ein Bericht mit einer Abfrage unterschiedliche Kriterien mehrere PDFs  (Gelesen 853 mal)

Offline NadineG

  • Newbie
  • Beiträge: 3
Hallo,
ich bin Anfänger in Sachen VBA. Auch nach Googlen hab ich noch keine Lösung für meine Frage. Ich habe eine Funktion, diese öffnet einen Bericht, speichert diesen als PDF mit einem Dateinamen welcher sich u.a. auch aus dem Inhalt des Berichtes zusammensetzt.

Mit nur einem Filter funktionert das ganze super Gut. Nun meine Frage: Wie bekomme ich es hin verschiedenen Filter anzuwenden und im Ergebnis auch mehrere PDF's zu erhalten.

Private Sub btnExport_Click()

On Error GoTo Fehler

'Speicherpfad
Dim sFolder_for_PDF As String
sFolder_for_PDF = "C:\....."

'Speichername
Dim sFilename As String
sFilename = Me!Jahr & "_" & Me!Mandant & "_" & Me!Inkasso & "_Inkasso.pdf"

'Zusammensetzung Speicherpfad und Speichername
Dim sfull_Filename As String
sfull_Filename = sFolder_for_PDF & "/" & sFilename

'Welcher Bericht wird geöffnet
Dim Berichtsname As String
Berichtsname = "Inkasso"

'Welcher Filter wird angewendet
Dim Filter As String
Filter = "[Mandant] = 'Mandant1' AND [Inkasso] = 'Inkasso1' AND [Jahr] =  " & Format(Date, "yyyy") & " "
Filter = "[Mandant] = 'Mandant1' AND [Inkasso] = 'Inkasso2' AND [Jahr] =  " & Format(Date, "yyyy") & " "
Filter = "[Mandant] = 'Mandant2' AND [Inkasso] = 'Inkasso1' AND [Jahr] =  " & Format(Date, "yyyy") & " "
Filter = "[Mandant] = 'Mandant2' AND [Inkasso] = 'Inkasso2' AND [Jahr] =  " & Format(Date, "yyyy") & " "

'Bericht wird im Hintergrund geöffnet - Bericht wird gespeichert - Bericht wird geschlossen
DoCmd.OpenReport Berichtsname, acViewPreview, , Filter, acHidden
DoCmd.OutputTo objectType:=acOutputReport, ObjectName:=Berichtsname, OutputFormat:=acFormatPDF, outputFile:=sfull_Filename
DoCmd.Close acReport, Berichtsname, acSaveNo

Exit Sub
Fehler:
    MsgBox "Der Bericht konnte nicht gespeichert werden!"
End Sub

Vielen Dank schonmal im Voraus.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Hi,

du könntest eine Verarbeitungsschleife um den entscheidenden Befehlsblock bauen, in der alle gewünschten Filter abgearbeitet werden, oder du könntest auch die Filterkriterien ganz dynamisch-flexibel aus einem Formular holen.
Freundliche Grüße
MaggieMay
 

Offline NadineG

  • Newbie
  • Beiträge: 3
Hallo,

danke für den Tipp. Wie müsste ich das mit der Schleife anstellen?

Danke.
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1328
Du wendest in Deinem Code immer nur den letzten Filterausdruck an, weil der Wert der Variablen Filter überschrieben wird, bevor er in OpenReport zur Anwendung kommt.

In eier Schleife könnte das dann so aussehen:Private Sub btnExport_Click()

   Dim sFolder_for_PDF As String
   Dim sFilename       As String
   Dim sfull_Filename  As String
   Dim Filter          As String
   Dim i               As Long
   Dim j               As Long

   'Welcher Bericht wird geöffnet
   Const Berichtsname  As String = "Inkasso"
   
   On Error GoTo Fehler

   'Speicherpfad
   sFolder_for_PDF = "C:\foo\bar\"

   For i = 1 To 2
      For j = 1 To 2
         'Speichername
         sFilename = Me.Jahr & "_Mandant" & CStr(i) & "_Inkasso" & CStr(j) & ".pdf"
         'Zusammensetzung Speicherpfad und Speichername
         sfull_Filename = sFolder_for_PDF & sFilename
         'Welcher Filter wird angewendet
         Filter = "Mandant = 'Mandant'" & CStr(i) & " AND " & _
                  "Inkasso = 'Inkasso'" & CStr(j) & " AND " & _
                  "Jahr    =  Year(Date())"
         'Bericht wird im Hintergrund geöffnet - Bericht wird gespeichert - Bericht wird geschlossen
         With DoCmd
            .OpenReport Berichtsname, acViewPreview, , Filter, acHidden
            .OutputTo acReport, Berichtsname, acFormatPDF, sfull_Filename
            .Close acReport, Berichtsname, acSaveNo
         End With
      Next
   Next

   Exit Sub

Fehler:
   MsgBox "Der Bericht konnte nicht gespeichert werden!"
End Sub
Grüße von der (⌒▽⌒)
 

Offline NadineG

  • Newbie
  • Beiträge: 3
Hallo,

viiielen Dank vorerst. Ich glaube ich muss mich erstmal mit Schleifen ein wenig genauer Beschäftigen.

Gruss Nadine
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1882
Hauptsache da kommen nicht noch etliche Mandanten dazu  >:(
--
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.