1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Access Filter fuer Report

Discussion in 'Office-Programme' started by stippiderkoch, Apr 2, 2010.

Thread Status:
Not open for further replies.
  1. Hallo Access-Gemeinde.
    Ich benötige Hilfe. Leider eilt es.
    Ich habe einen Report der mit Datum von / bis gefiltert werden soll.
    Es klappt insoweit, das der Filter gefüllt wird. Beim Aufruf des Reports ist der Filter jedoch leer. Was mache ich falsch?

    Im Formular Report1 wird das Datum vorgegeben und kann überschireben werden.
    Der Report ist Auswertung Lager, Datenherkunft die Abfrage Auswertung Lager03

    Nachstehend der Code:
    Private Sub Auswertung_Lager_Click()
    ' Prüfung ob die Datenherkunft des Berichtes leer ist
    If DCount("*", "Auswertung Lager03") > 0 Then
    'Bericht aufrufen
    DoCmd.OpenReport "Auswertung Lager", acViewPreview, "Auswertung Lager03 =" & Filter1:mad:
    Else
    MsgBox "Der Bericht enthält keine Daten.", vbInformation + vbOKOnly, "Keine Daten"
    DoCmd.Close acForm, "Report1", acSaveNo
    End If
    End Sub
    -------------------------------------------------------------------------------------------------
    Private Sub Form_Load()
    BDatum = Date - 365
    EDatum = Date
    Text1.Value = BDatum
    Text2.Value = EDatum
    Call setFilter1
    End Sub
    ----------------------------------------------------------------------------------------------------
    Private Sub setFilter1()
    Dim BDat As String, EDat As String
    BDat = Format$(BDatum, "\#dd/mm/yyyy\#")
    EDat = Format$(EDatum, "\#dd/mm/yyyy\#")
    Filter1 = "(gebuchtam >=" & BDat & ") and (gebuchtam <=" & EDat & ")":)
    End Sub
    ' Das Anfangstum wurde geändert
    Private Sub Text1_KeyUp(KeyCode%, Shift%)
    BDatum = CDate(Text1.Text)
    Call setFilter1
    End Sub
    'Das Enddatum wurde geändert
    Private Sub Text2_KeyUp(KeyCode%, Shift%)
    EDatum = CDate(Text2.Text)

    Call setFilter1
    EndSub


    Danke im Voraus
     
  2. Hascheff

    Hascheff Moderator

    Hallo Stippi,
    weil's eilig ist, schieß ich einfach mal schnell aus der Hüfte:
    Setz mal in der Zeile "DoCmd.OpenReport" zwischen
    "acViewPreview" und "Auswertung Lager03 =" noch ein zweites Komma.

    Gruß
    Hascheff
     
  3. Hey Hascheff,

    leider war der Schnellschuss nicht erfolgreich.
    Muss weiter rätseln. Bin Deiner Meinung, es fehlt ein Komma oder irgendwas in der Art.

    Trotzdem Danke
     
  4. Hascheff

    Hascheff Moderator

    Hast du "Option explicit" vor den Code gestellt und die Variablen sauber deklariert? Da globale Variablen vorkommen, halte ich das für sinnvoll.

    Setze einen Haltepunkt im Code und verfolge Schrit für Schritt die Entwicklung der Variablen.
     
  5. Hi,
    ja Variablen sind sauber. Ich bin auch den Code Schritt für Schritt durchgegangen. Was ich nicht sehe ist der Wert des Feldes das in der Abfrage gefiltert werden soll. Wenn ich es aber über Kriterien anspreche
    erhalte ich die richtige Lösung.
    Habe in einer neuen Datenbank eine Tabelle angelegt und das gleiche Formular mit dem Code erstellt. Dazu einen Bericht und schon klappt alles.
    Sieht so aus, als ob auf Abfragen der Filter über das Formular mit den Datumeingaben nicht funktioniert.
    Habe nun mit der Abfrage eine neue Tabelle angelegt. Funktioniert aber auch nicht, da nun nicht mehr das Feld die Eigenschaft " Datum kurz" behält, sondern die Eigenschaft auf "Standarddatum" verändert wird.

    Habe also erst mal die Lösung über Abfrage/Kriterien installiert. Würde aber die schönere Lösung vor.

    LG Stippiderkoch
     
  6. Hascheff

    Hascheff Moderator

    Wenn du in einer Abfrage flexibel filtern willst, musst du daf&#252;r sorgen, dass die Abfrage den Datentyp erkennt. Also wenn du in einem Feld vom Typ Datum als Kriterium [Wunschdatum] eingibst, poppt beim Ausf&#252;hren der Dialog auf, der nach dem Kriterium [Wunschdatum] fragt. Wenn du jetzt ein Datum eingibst, erkennt Access nicht den Datentyp, es wird nichts angezeigt.

    Damit es funktioniert, musst du in der Entwurfsansicht im oberen Bereich rechtsklicken und "Parameter" w&#228;hlen. Dort kannst du [Wunschdatum] als Typ Datum deklarieren. Es spielt dann keine Rolle, ob du sp&#228;ter im Dialog die Kurz- oder Langform eingibst.

    Gru&#223;
    Hascheff
     
Thread Status:
Not open for further replies.

Share This Page