PDA

Vollständige Version anzeigen : Abfrage Datum - 90 Tage


mhoffmann78
25.09.2003, 11:21
Hallo Leute,

folgendes Problem habe ich derzeitig.
Ich möchte gerne aus der Tabelle "bfirma" das Datum auslesen, dieses minus 90 rechnen und dann abfragen ob es von heute bis zum datum weniger als 90 tage sind. wenn dies der fall ist soll ein Hinweis auf dem Startformular kommen. Wie kann ich dies realisieren bzw. geht das überhaupt?

Danke Marko

Morli
25.09.2003, 11:31
Hallo Marko,

schau mal in der OH unter DateAdd und DateDiff nach. Damit kannst Du genau das durchführen, was Du machen willst. Solltest Du nicht klarkommen, dann melde Dich wieder.

Morli

Lanz Rudolf
25.09.2003, 11:34
Hallo
Also generel ein Datum + 90 Tage bekomst Du mit:
Format(DeinDatum+90,"dd.mm.yyyy")
in deinem fall würde ich eine abfrage erstellen wo in einer neuenspalte ca. folgenses stehen würde:
Dat90: Format(DeinDatum+90,"dd.mm.yyyy")
und dieses würde ich vergleichen mit
Format(Now()+90,"dd.mm.yyyy")

s. auch Anhang

racoon0506
25.09.2003, 11:35
Zum Auslesen eines Wertes aus einer Tabelle kansst du DLookup verwenden.
Mit DateAdd() lässt sich vom Datum dann auch die 90 Tage abziehen.
Die Differenz lässt sich mit DateDiff berechnen.


(Baaa, war ich langsam!)

mhoffmann78
25.09.2003, 11:36
Danke für Deine schnelle Antwort. Aber was ist OH?

Marko

racoon0506
25.09.2003, 11:39
OnlineHilfe (innerhalb von Access...)
desöfteren auch OLH (OnLineHilfe) genannt.....

MRR
25.09.2003, 11:40
1. If DeinDatum-90 <= Datum()
2. Online-Hilfe :D

Morli
25.09.2003, 11:41
OH ist ganz einfach die Online Hilfe in Access. Gib da mal DateAdd oder DateDiff ein und probier mal ein wenig rum.

Morli

mhoffmann78
29.09.2003, 10:28
Hallo Leute,

ich schnall das nicht mit dem Datum.
Eine OnlineHilfe hab ich auch nicht gefunden wo soll die denn genau sein?

Wie soll ich diese Abfrage machen? Als Modul, Makro oder Ereignisprozedur? Ich muss dazusagen, das Access nicht so mein Ding ist und ich sogut wie nie damit arbeite. Kann mir vielleicht jemand von Euch helfen?

Danke Marko

elmar
29.09.2003, 10:37
Online-Hilfe bekommt man mit der Taste F1 . Ausserdem im Menu, siehe Bildchen im Anhang

gruß
elmar

MRR
29.09.2003, 10:43
Hi Marko,
wenn es Dir hilft, lade Deine DB doch mal hier hoch (Datei anhängen), dann können wir es sicher gleich so hinbekommen, wie Du es brauchst.
Generell: Tabelle markieren, Einfügen/Abfrage, Doppelklick auf *-Symbol, Datumsfeld nochmal alleine doppelklicken. In dieser Spalte in der Zeile Kriterien gibst Du ein:
NameDesDatumsfeldes - 90 <= Datum()

Kommst Du damit klar?

mhoffmann78
29.09.2003, 10:45
so nun hab ich mal F1 gedrückt und dort nach DateAdd bzw. DateDiff gesucht aber nichts gefunden! Er kann mit meiner Frage nichts anfangen wird mir gesagt.

Marko

mhoffmann78
29.09.2003, 10:48
wart hier ist die db.

mhoffmann78
29.09.2003, 10:51
achso es handelt sich um das feld dat_freibes

elmar
29.09.2003, 10:58
Sorry, meinte natürlich die Hilfe im Code-Fenster!

Nouba
29.09.2003, 11:06
Hallo Marko,

ich habe im Formular eine Bedingung für die Formatierung festgelegt.
DateDiff("d";[dat_freibes];Date())>90

mhoffmann78
29.09.2003, 11:18
Hallo Nouba,

also ich muss sagen ich voll doof.
Deine Bedingung ist zwar nicht das, was ich brauche aber trotzdem danke.
Die Bedingung die Du eingefügt hast finde ich aber trotzdem nicht.

Warum muss bloss immer alles in Access gemacht werden und nicht in PHP+mySQL das kann ich wenigstens.

Marko

elmar
29.09.2003, 11:34
Habe die Bedingung von Nouba auch nicht gefunden...

hier mein Vorschlag:


Dim pruef_datum As Date
pruef_datum = Me.dat_global

pruef_datum = pruef_datum - 90

MsgBox pruef_datum

End Sub


Ehrlich gesagt: ich habe auch noch nicht endgültig verstanden, was Du genau erreichen willst.
Ich habe vom Global-Datum hier 90 Tage abgezogen. Das pruef_datum könnte man denn weiterverwenden und in das andere Feld schreiben (?)

mhoffmann78
29.09.2003, 11:45
In der tbl baufirmen stehen alle Baufirmen drin mit den wir was zu tun haben. Nun ist es gesetzlich so, das bei einer Baufirma die uns keine gültige Freistellungsbescheinigung vorlegen kann wir die MwSt. für Sie abführen müssen. Daher diese Datenbank.

Es soll folgendes passieren:

Wenn unsere Sekretärin morgens die DB startet soll im Hauptformular ein Hinweis kommen wessen Freistellungsbescheinigung innerhalb der nächsten 90 Tage abläuft.

Nun zu den Daten:
In der Table baufirmen stehen die ganzen Daten drin. Ausschlaggebend für uns ist das Feld dat_freibes. Das Datum was darin steht soll minus 90 Tage gerechnet werden und anschlissend mit dem aktuellen Datum verglichen werden. Wenn es 90 oder weniger Tage bis zum Datum (dat_freibes) sind soll eben bei öffnen der DB im Hauptformular der Hinweis "Die Freistellungsbescheining der Firma xyz läuft am dd.mm.yyyy ab. Bitte eine neue Bescheinigung anfordern."

War dies jetzt etwas verständlicher erklärt?

Marko

Nouba
29.09.2003, 11:48
Ich habe Bedingte Formatierung für das Feld eingestellt.

mhoffmann78
29.09.2003, 12:50
@Elmar

Danke erstmal für deinen Code. Dieser war für mich schon wesentlich aufschlussreicher. Ich habe dort noch etwas hinzugefügt und würde nochmals Deine Hilfe benötigen. Hier erstmal der Code:


Private Sub Form_Current()
Dim pruef_datum As Date
pruef_datum = Me.dat_freibes
pruef_datum_90 = pruef_datum - 90
pruef_firma = Me.firmenname
If pruef_datum_90 <= Format(Now()) Then
MsgBox pruef_datum
End If
End Sub


Nun habe ich nur noch 2 Probleme.

1. Der Code zeigt mir immer nur die erste Firma an wo die 90 Tage grenze überschritten wurde. Alle anderen lässt er weg.

2. Ich möchte das bei MsgBox folgendes steht nur zeigt er mir dann nicht mehr das datum an sonder pruef_datum_90

So sollte es aussehen:
MsgBox ("Die Freistellungsbescheinigung der Firma xyz läuft zum 15.09.2003 ab")

Danke Marko

elmar
29.09.2003, 12:55
Hallo Marko,
habe in der Zwischenzeit etwas gewerkelt. Sieh Dir mal die DB in der Anlage an. (Dein letzter erklärender Bericht war aufschlussreich!)
Grüße
elmar

PS: Auf das letzte Posting von Dir reagiere ich erst mal nicht, bis Du die DB geprüft hast.

mhoffmann78
29.09.2003, 12:59
DANKE ELMAR

so ist es fein. Das ist es.

Marko