Bericht mit gefilterten Daten drucken

15/05/2008 - 17:02 von Jürgen Großmann | Report spam
Hallo
Ich möchte einen Bericht über VBA Öffnen und darin nur die Daten anzeigen
welche ich mit einem Formular filtere. Ich bekomme aber efolgende
Fehlermeldung
30611 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter
übergeben.

Dnach wird der bericht zwar geöffnet aber ohne Daten.
Worin liegt der Fehler bzw. was mache ich falsch
Gruß Jürgen

Hier der Code den ich verwende.

DoCmd.OpenReport "rpt_cd_track_liste", acViewPreview, , , ,
Me!lst_CDName

______________________________________________________________________________________________
Private Sub Report_Open(Cancel As Integer)

If Nz(Me.OpenArgs, "") = "" Then
Exit Sub
End If

Read CLng(Me.OpenArgs)

End Sub
_______________________________________________________________________________________________________
Private Sub Read(lngID As Long)
Dim strsql As String
Dim orst As DAO.Recordset

If lngID = 0 Then
Else
strsql = "SELECT tbl_Interpreten.Interpreten, tbl_CD.CDName,
tbl_Interpreten.interpretID, tbl_CD.CDID"
strsql = strsql & " FROM tbl_Interpreten INNER JOIN tbl_CD ON
tbl_Interpreten.interpretID = tbl_CD.CDInterpret" & lngID
strsql = strsql & " GROUP BY tbl_Interpreten.Interpreten, tbl_CD.CDName,
tbl_Interpreten.interpretID, tbl_CD.CDID"
strsql = strsql & " ORDER BY tbl_Interpreten.Interpreten, tbl_CD.CDName"

Set orst = CurrentDb.OpenRecordset(strsql, dbOpenSnapshot)

If orst.EOF Then
GoTo Read_NODATA
End If

With orst
Me.CDName = !CDName
Me.Interpret = !Interpret
.Close
End With

End If

Read_Exit:
Exit Sub

Read_NODATA:
orst.Close
GoTo Read_Exit

End Sub
 

Lesen sie die antworten

#1 Karl Donaubauer
15/05/2008 - 17:22 | Warnen spam
Jürgen Großmann wrote:
Ich möchte einen Bericht über VBA Öffnen und darin nur die Daten
anzeigen welche ich mit einem Formular filtere. Ich bekomme aber
efolgende Fehlermeldung
30611 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter
übergeben.

Hier der Code den ich verwende.

DoCmd.OpenReport "rpt_cd_track_liste", acViewPreview, , , ,
Me!lst_CDName
...

...
strsql = strsql & " FROM tbl_Interpreten INNER JOIN tbl_CD ON
tbl_Interpreten.interpretID = tbl_CD.CDInterpret" & lngID



Das Resultat dieser Zeile ist sowas wie

tbl_Interpreten.interpretID = tbl_CD.CDInterpret4711

Dieses Feld ist unbekannt, daher die Fehlermeldung.

Wahrscheinlich bràuchtest du hier stattdessen eine zusàtzliche
Zeile:

strsql = strsql & " WHERE tbl_Interpreten.interpretID =" & lngID

strsql = strsql & " GROUP BY tbl_Interpreten.Interpreten,
tbl_CD.CDName, tbl_Interpreten.interpretID, tbl_CD.CDID"
strsql = strsql & " ORDER BY tbl_Interpreten.Interpreten,
tbl_CD.CDName" ...



Die Frage ist allerdings, warum du solchen Aufwand treibst.
Kannst du die Datenherkunft des Berichtes nicht einfach fix
in die entsprechende Eigenschaft schreiben und nur beim
OpenReport die Bedingung mitgeben?

DoCmd.OpenReport "rpt_cd_track_liste", acViewPreview, , _
"interpretID = " & Me!lst_CDName

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com
+ Entwickler-Konferenzen für Access (AEK) und SQL Server (SEK)

Ähnliche fragen