Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Optionsgruppe als Filter für ein Listenfeld

Begonnen von mad, November 14, 2019, 20:14:26

⏪ vorheriges - nächstes ⏩

mad

Hallo,

Zitatmach halt das, was Dir empfohlen wird:
mache ich:
ZitatWenn ich das Bild des Berichtsentwurf ansehe, sollten die Felder im Seitenkopf in den Detailbereich verschoben werden.....
Dabei werden alle Adressen auf einen Bericht gedruckt, und das ganze so oft soviele DS ich ausgewählt hatte. Ist nicht das was ich möchte! Ich denke diese Felder sollten im Seitenkopf bleiben.

Zitatentferne "acViewPreview" und lass die Berichte mal drucken.....
Vermutlich muss die Seitenansicht manuell geschlossen werden.
Auch hier wird irgendwas gedruckt.

Die Anregung von Josef P.,
DoCmd.OpenReport "Bericht_Vorlage_hoch", acViewReport, , "[PID] = " & lngPID, acDialog
hat zumindestens die beiden Berichte wie DS ausgewählt angezeigt. Konnte diese aber nicht drucken.
Und jeden Bericht einzeln zu schliessen ist auch nicht sehr praktikabel.

Gruss
mad

DF6GL

#16
Hallo,

Dabei werden alle Adressen auf einen Bericht gedruckt, und das ganze so oft soviele DS ich ausgewählt hatte. Ist nicht das was ich möchte! Ich denke diese Felder sollten im Seitenkopf bleiben.

Nein!!

Der Bericht druckt nur dann mehrere Datensätze, wenn die Filterung nicht stimmt.

ZitatAuch hier wird irgendwas gedruckt.

Ja, und was genau?


Sobald ich die Felder vom Seitenkopf in den Detailbereich verschoben hatte, wurde pro Listenfeldauswahl je ein Bericht mit den entspr. Daten gedruckt....


PS:
Lad Deine akt. Datei nochmal hier hoch...

Anbei die DB mit modifizierem Bericht...



mad

Hallo,

habe nochmals beide Varianten hochgeladen.
1x Variante mit den Vorschlägen von DF6GL, ohne:
ZitatDoCmd.OpenReport "Bericht_Vorlage_hoch", , ,"[statusID_P] = 1"
1x die Variante mit den Vorschlägen von JosefP

Gruss
mad

DF6GL

#18
Hallo,

bei "deiner meiner" Version fehlt ein Komma:
DoCmd.OpenReport "Bericht_Vorlage_hoch", , ,  "[PID] = " & lngPID

und bei Josef's Lösung muss die Berichtsansicht (acViewReport) manuell geschlossen werden, was alles schon angemerkt wurde...

mad

Hallo,

mit dem "Komma" funktionierts.
Gibt es keine Möglichkeit das der/die Berichte vor dem drucken geöffnet/angezeigt werden, und ich erst dann den druck starte?

Gruss
mad

Josef P.

Du kannst alle benötigen Datensätze in einem Bericht ausgeben und dann drucken.
Dazu musst du allerdings die Steuerelemente vom Seitenkopf in den Detailbereich bzw. in einen Gruppenkopf von PID verschieben (wie bereits von Franz zuvor erwähnt).
Die "Seite n von m"-Anzeige muss auch angepasst werden, wenn die Ausgabe je PID jeweils mit Seite 1 beginnen soll.

Code zum Anzeigen aller DS in einem Bericht:
Private Sub btnSerienbrief_Click()

Dim lngPID As Long
Dim SqlFilter As String

If Me!lstKontakte.ItemsSelected.Count > 0 Then
     SqlFilter = GetSelectedListboxItemFilterString(Me.lstKontakte, "[PID]")
     DoCmd.OpenReport "Bericht_Vorlage_hoch", acViewPreview, , SqlFilter
Else
     MsgBox "Bericht wird nicht geöffnet, da keine Datensätze ausgewählt."
End If


End Sub

Private Function GetSelectedListboxItemFilterString(ByVal lb As ListBox, ByVal DataFieldName As String) As String

   Dim itm As Variant
   Dim FilterValueString As String
   Dim FilterString As String

   For Each itm In lb.ItemsSelected
      FilterValueString = FilterValueString & "," & lb.Column(0, itm)
   Next
   
   If Len(FilterValueString) > 0 Then
      FilterValueString = Mid(FilterValueString, 2) ' 1. "," wegschneiden
      FilterString = DataFieldName & " in (" & FilterValueString & ")"
   End If
   
   GetSelectedListboxItemFilterString = FilterString

End Function


mfg
Josef


mad

Hallo DF6GL u. Josef P.,

muß mich sehr herzlich bei Euch für die tolle und verständnisvolle Unterstützung bedanken.

Vielen Dank
mad

PS.: jetzt muß ich mich noch dransetzen um den Rest in den Bericht zu bringen