Filter im Formular

Hallo zusammen!

Ich will so eine Art „Beiträge nach dem letzten Login“ programmieren. Ich habe ein selbstgemachtes Usersystem und kann Logdaten mit schreiben.
Jetzt will ich alle Datensätze aus einer Tabelle anzeigen und in den Filter sowas schreiben wie:

Int(Time) > #02/03/09 09:09:09#

Also alle Beiträge, die im Time Feld einen neueren (größeren) Wert haben als jetzt z.B. der 02.03 … oder der 03.02 wie auch immer.

Das funktioniert allerdings nicht so wirklich. Kann mir jemand helfen?

Grüße!

Hallo,

Int(Time) > #02/03/09 09:09:09#

ne ne ne… das kann schon mal gar nicht funktionieren :frowning:
Beide Werte: Datum und Zeit müssten separat betrachtet werden!

Time ist ein reservierter Begriff in Access und darf für die Benennung von Felder etc. nicht verwendet werden!

INT hat bei Datum-/Zeitwerten nichts zu suchen!

Also alle Beiträge, die im Time Feld einen neueren (größeren)
Wert haben als jetzt z.B. der 02.03 … oder der 03.02 wie
auch immer.

einfacher geht es mit der DATEDIFF Funktion:

Beispiel für sekundengenaue Kontrolle:
if DateDiff(„s“,Now,[Feld_mit_Datum_und_Zeit]) > 0 then

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Ok danke schomal.

Kann ich das so 1:1 in das Formularfeld schreiben? Ich weiß immer nicht wieviel Code das Feld verträgt, weil das ja eigentlich einer WHERE Abfrage entspricht?

Grüße

ps: Wenn ich das direkt so in SQL eingebe, als WHERE Bedingung (als ich meinte mein „Int(Time) > #02/02/09 09:09:09#“) dann liefert das das richtige Ergebnis.

ähm, deine Frage war nach einem Filter im Formular!

Ich gehe dann davon aus (mangels Informationen):

  • Endlosformular: (Name unbekannt)
  • Datenherkunft: Tabelle (Name unbekannt)
  • Formular-Filter soll gesetzt werden (per VBA)

oder

  • Endlosformular: (Name unbekannt)
  • Datenherkunft: Abfrage (Name unbekannt)
  • Filter soll in Abfrage gesetzt werden

Wenn du uns/mir ein paar Informationen mehr geben könntest, könnte man auch detaillierter antworten :smile:
sorry, meine Glaskugel ist gerade zum polieren…

Formularfelder haben mit Filtern eigentlich nichts zu tun!?
Aber vielleicht könntest du mal genauer beschreiben, WAS du WIE vor hast?

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Netwolf!

Tut mir leid…
Also pass auf.

Ich habe ein Formular TChangeLog, das Änderungen in der Datenbank mit den Feldern:

ID, Autor, Änderung, Zeit

Speichert.
Der Autor ist eine ID einer Userliste, also habe ich eine Join-Abfrage mit einer Usertabelle die dann die Grundlage für mein Formular ist.

Also das Formular FNews basiert auch TChageLog und TUser.

Jetzt habe ich in TUser zwei Felder Login_now und Login_last, das ich bei jedem Login überschreibe, also Login_now wird zu Jetzt() und Login_last bekommt den Wert des Letzten Login_now.
(Ist nicht sooo genau, aber meine Zwecke erfüllt das)

Jetzt will ich in dem Formular FNews alle Änderungen sehen, die seit dem Login_last getätigt wurden, also brauche ich etwas, das ich in dieses Filterfeld des Formulars schreibe.

Ich kann ganz gut programmieren, leider kenne ich mich mit Access nur dürftig aus, weswegen er mir partout diesen Filter nicht setzt.
Ich weiß wirklich nicht warum, habe mittlerweile auch einfachere Filter probiert, sowas wie ID = 4 aber das geht auch nicht so wirklich.

Grüße

Hallo k,

ich glaube ich verstehe nun was du meinst:

  • öffne das Formular im Entwurfmodus
  • doppelklicke oben links auf den schwarzen Kasten (wo die Lineale zusammenlaufen)
  • nun bist du bei den Eigenschaften des Formulars
  • wähle den Reiter [Daten]
  • in die Zeile Filter trägst du folgendes ein:
  • datediff(„s“,[Login_last],Now)>0
  • Filter zulassen: JA

oder besser

  • Reiter [Ereignis]
  • Zeile: Beim Öffnen
  • [Ereignisprozedur]
  • hinten auf die drei Punkte […]

Me.Filter = „DateDiff(‚s‘, Nz([last_login], 0), Now) > 0“
Me.FilterOn = True

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Netwolf,

vielen, vielen Dank!
Ich denke das geht, muß es noch ein bißchen testen.
Ich weiß schon wie man auf die einzelnen Felder (also das Filterfeld z.B.) kommt, aber danke trotzdem :stuck_out_tongue:

Grüße!