PDA

Vollständige Version anzeigen : dynamischer Filter für Bericht


helpless
09.02.2001, 07:51
Hi Spotlighter,
habe ein Problem das ich nicht lösen kann (blöder Satz .. würde ja ansonsten hier nicht schreiben :-) ). Witz beiseite ..
ich will in einem Formular eine Auswahl aus 4 Feldern einem Bericht als "Filter" zugrunde legen. Ist ein Feld leer, soll dies als eine Art Wildcard dienen, also für dieses Feld alle Datensätze listen.
Folgendermaßen habe ich es schon versucht (in diesem Fall eben nur als Filter für die Artikel-Nr):
Eingabe bei Kriterien (Atrikel-Nr):
Wenn([Formulare]![Planung]![ArtikelFilter]>0;[Formulare]![Planung]![ArtikelFilter];>[Formulare]![Planung]![ArtikelFilter])
So .. das Ergebnis ist, dass ich wohl filtern kann wenn eine Nr drin steht, nicht aber die Wildcard bekomme, wenn eben nichts (bzw. 0) drinsteht.
habe es auch schon mit "*" und Wie "*" ... versucht. Es listet mir einfach dann nichts.
Anderer Versuch war, in dem Bericht beim öffnen fogendes einzugeben:
Private Sub Report_Open(Cancel As Integer)

Dim SQLString1 As String
Dim ArtikelString As Long


SQLString1 = "SELECT DISTINCTROW ....hier die ewig lange SQL-Anweisung, die ich aus der Ansicht SQL aus dem Abfrageentwurf habe.." _
& "FROM ..." _
& "HAVING ((([Planung - Daten für Druck].[Artikel-Nr]) = Forms![Planung]![ArtikelFilter])) " _
& "ORDER BY ..."

Me.RecordSource = SQLString1

End Sub

Klappt auch nicht :-(

Am Besten wäre es ja, wenn man die Kriterien in die Abfrage für den Bericht eingeben könnte (oder nicht?).

Gebe ich die Kriterien 'Wie "*"', '>0' usw. direkt (manuell) in die Abfrage ein, funzt es! Nicht aber wenn ich es übergebe.

Mache ich was bei der Übergabe falsch? Kann ich direkt aus VB die Kriterien der Abfrage festlegen?

Es wäre super wenn mir jemand helfen könnte, da ich nun schon tagelang an diesem Problem hänge und dringenst in der Sache weiterkommen sollte!!!!!!!!!!!!!!!

Heathen
09.02.2001, 10:48
Versuch es mal mit folgendem Code im Formular:

Dim stlink As String


stlink = IIf(Me.Text3 > 0, "[Artikel]=" & Me.txtArtikelnummer, "")


DoCmd.OpenReport "Bericht", acViewPreview, , stlink

helpless
09.02.2001, 11:49
Yeah,

tausend Dank Heathen, so hat's gefunzt:

Private Sub ArtikelFilter_AfterUpdate()

Dim stlink As String

If Me.[ArtikelFilter] = 0 Then
stlink = ""
ElseIf Me.[ArtikelFilter] > 0 Then
stlink = "[Artikel-Nr]=" & Me.[ArtikelFilter]
End If

DoCmd.OpenReport "Planung", acViewPreview, , stlink

End Sub

Puuuuhhhh, du hast mir die Sorge für's Wochenende abgenommen, dafür aber Arbeit über's ganze Wochenende beschert (was mir in diesem Fall auch Spaß macht!).