Neuigkeiten:

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

Mobiles Hauptmenü

Bericht soll mit Hilfe eines Formulars gefiltert werden

Begonnen von silentwolf, April 09, 2011, 15:59:51

⏪ vorheriges - nächstes ⏩

silentwolf

Hallo,
habe schon einige Beiträge gelesen über das Filtern eines Berichts mit Kombinationsfeld.
Aber leider bei mir funtioniert das nicht :(
Was muss man denn hier machen?

Momentan habe ich eine Abfrage erstellt mit allen Feldern die ich haben möchte. Und mit dieser Abfrage einen Bericht erstellt.
Nun möchte ich aber den Bericht filtern mit einem Formular und eventuel mehreren Kombiboxen.
Wäre Euch dankbar wenn Ihr mir helfen könntet.

Danke
Albert

bahasu

Hi Albert,

wie der acces Hilfe zu entnehmen ist, sind die folgenden Parameter beim Aufruf eines Berichtes einsetzbar:
DoCmd.OpenReport ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs


z.B. DoCmd.OpenReport "DeinBericht", acPreview, , "DeinFeld = '" & Me!DeinAuswahlfeld & "'"
öffnest Du Deinen Bericht in der Berichtsvorschau (acPreview) und wählst die Daten aus, die die obige Bedingung erfüllen. Hier jetzt mal vorausgesetzt, dass das Kombifeld ein Text-Feld ist.

Harald
Servus

silentwolf

Hallo Harald,
danke für Deine Anwort!
Leider funktioniert es bei mir aber nicht :(
Werde es aber für Heute mal aufgeben.
Vielen Dank
Albert

bahasu

Hi Albert,
Zitat von: silentwolf am April 09, 2011, 17:48:02
Leider funktioniert es bei mir aber nicht :(

kannst Du näher beschreiben, was nicht funktioniert?
Denkbare Macken: Error Meldung - falsche Selektion - gar keine Selektion - ...

Harald
Servus

silentwolf

Hallo Harald,
danke für deine Antwort!
Also bei mir filtert sich der Report einfach nicht.
Hier ist mein Code

Private Sub cmdKontenAuswahl_Click()
DoCmd.OpenReport "rptEinahmenAusgaben", acPreview, , "KontenNr = '" & Me!cboKonten & "'"
End Sub

Der Bericht ist mit einer Abfrage erstellt worden. Das Kombinationsfeld mit dem Asistenten auch von der Abfrage.
Wenn ich nun den Report öffne zeigt es keine Daten an.
Hab schon ewig herumprobiert aber es funktioniert nicht also gar nichts.

Danke
Albert

database

Hallo,

Das Feld 'KontenNr' MUSS am Bericht vorhanden sein.
Das Kombifeld cboKonten muss aus seiner gebundenen Spalte Daten liefern, die dem Eintrag im Feld KontenNr entsprechen.
Wenn das Kombifeld ordnungsgemäß erstellt wurde, enthält die gebundene Spalte den Primärschlüssel der Kontentabelle - und der wird vermutlich nicht dem Eintrag in KontenNr übereinstimmen.

Wie ist den dein Kombi aufgebaut? Was steht denn in der gebundenen Spalte drin?

pahiti78

Hallo,

ich muss dieses Thema auch noch einmal aufgreifen. Ich habe ebenfalls einen Bericht den ich nach Kundennummern filtern möchte. Dies sollte vorher einem Formular geschehen. Und zwar möchte im Feld txtWert eine Kundennummer eingeben und der Bericht rpKudenauswertung sollte danach nur die Transaktionen, welche die Kudennummer betreffen anzeigen. ICh bekomme aber nur Fehlermeldungen. Vielleicht weiß jemand, was ich falsch mache. PS.Vers_kdNr ist das Feld im Bericht, welches sgefiltert werden soll. Anbei meine Filterbdingungen.

Option Compare Database
Option Explicit
Dim m_rpKundenauswertung As Report


Private Sub btnFilterAnwenden_Click()
Dim strwhere As String
strwhere = "VERS_KDNR" & txtWert
With m_rpKundenauswertung
.Filter = strwhere
.FilterOn = True
.txtFilter.Visible = True
.txtFilter = strwhere
.lblFilter.Visible = True
End With

End Sub
Gruß
Matze

silentwolf

Hallo,
bin ja auch nicht der Super Profi gg aber vieleicht hilft mein Kommentar ja ein wenig :)
Warum filterst Du denn nicht vorher und dann mit einem Button den Bericht ansteuern.

Also zuerst in einem Formular nach deinen Kunden Suchen und wenn Du den richtigen hast mit einem Button den Bericht öffnen der Dir dann diesen Anzeigt.
So würde ich es halt mal versuchen  ;D

HTH


pahiti78

Hallo, danke erstmal für die Info,
Genauso soll es dann ja sein. Aber irgendwie haut mein Filter nicht hin.
Gruß
Matze

silentwolf

Ist doch kein Problem :) bin ja auch immer froh wenn mir jemand hilft gg :)

Also such mal nach einen Suchformular in 10 Minuten das ist recht gut und auch gut beschrieben :)
Dann kannst Du mal den Filter mit diesen Formular erstellen und danach kannst einen Button in dieses Formular einfügen der Dir dann diesen DS im Bericht öffnet druckt und so weiter.

HTH


DF6GL

HAllo,



Option Compare Database
Option Explicit
Dim m_rpKundenauswertung As Report

Private Sub btnFilterAnwenden_Click()
Dim strwhere As String
strwhere = "VERS_KDNR = '" & nz(Me!txtWert,"*" ) & "'"   ' falls VERS_KDNR  vom Datentyp TETX ist
DoCmd.Openreport "rpKundenauswertung",acPreview,,strwhere
End Sub

pahiti78

Oh super, haut hin. Was muss ich noch machen, wenn ich in einem Textfeld im Formular noch einen Monat oder ein Datum eingeben möchte. ;)
Gruß
Matze

DF6GL

Hallo,

was jetzt?

eine Monatszahl (und eine unbedingte Jahreszahl dazu) oder ein Datum oder einen Datumsbereich?


Ich würde zwei Textfelder ("txtAnfDatum", "txtEndDatum")  empfehlen, in die jeweils das Anfangsdatum und das Enddatum eingegeben werden:

Dann hieße das etwa so:

strwhere = "VERS_KDNR = '" & nz(Me!txtWert,"*" ) & "'  and [Datumsfeld]  between " & Format (nz(Me!txtAnfDatum,#01/01/1900#), "\#yyyy-mm-dd\#") & " and  " & Format (nz(Me!txtEndDatum,#31/12/2099#), "\#yyyy-mm-dd\#")

pahiti78

Hallo,

also hat super geklappt. Am Anfang hat ich ein paar Probleme. Jetzt läufts aber.
Kann man in diesem Filterformular noch nen Button einfügen, welcher zum Beispiel Preiserhöhung heißt. Dann würde ich in ein txtfeld die Erhöhung (zum Beispiel 30%) eintragen und der Bericht sollte dann den bereits formulierten Umsatz um 30% erhöhen und mir diese Werte anzeigen. Geht soetwas? Wie kann man so etwas im Formular formulieren?
Gruß
Matze

Beaker s.a.

Hallo pahiti,

ZitatKann man in diesem Filterformular noch nen Button einfügen, welcher zum Beispiel Preiserhöhung heißt. Dann würde ich in ein txtfeld die Erhöhung (zum Beispiel 30%) eintragen und der Bericht sollte dann den bereits formulierten Umsatz um 30% erhöhen und mir diese Werte anzeigen. Geht soetwas? Wie kann man so etwas im Formular formulieren?

Das geht wohl am besten, wenn Du ein berechnetes Feld in die dem Bericht zu Grunde liegende Abfrage einfügst:
Luftcode, Feldnamen anpassen
UmsatzHoch: [FeldMitUmsatz]*(1+(Nz(Forms!DeinForm!DeinAufschlagfeld,0))

Das Öffnen des Berichts bleibt dann wie gehabt.
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)