Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: JB am Oktober 11, 2016, 17:08:45

Titel: DateDiff in Select Abfrage im VBA Code
Beitrag von: JB am Oktober 11, 2016, 17:08:45
Hi,

ich würde gerne über VBA einer Liste Werte zuweisen, die ein gewissen Alter überschritten haben. Dazu habe ich Folgendes gecoded:

Me.List_Outdated_Contracts.RowSource = "SELECT Name FROM Contracts WHERE Year = val('" & Me.Year & "') AND Coordinator = '" & Me.Coordinator & "' AND (DateDiff("m",End_Date,Date())>=0 "

Wenn ich das AND (DateDiff("m",End_Date,Date())>=0 weglasse, funktioniert das auch perfekt, nur leider halt nicht mit.

Kann mir jemand kurz helfen, was ich da falsch mache?

Viele Grüße & Danke

Jelto
Titel: Re: DateDiff in Select Abfrage im VBA Code
Beitrag von: MzKlMu am Oktober 11, 2016, 17:13:21
Hallo,
beschreibe mal verbal die Where Klausel und welches Alter ist gefragt.

PS:
Jahr (Year) ist ja eine Zahl. da reicht dann
... Year = " & Me.Year & " And .....
Titel: Re: DateDiff in Select Abfrage im VBA Code
Beitrag von: DF6GL am Oktober 11, 2016, 17:48:56
Hallo,


Me!List_Outdated_Contracts.RowSource = "SELECT [Name] FROM Contracts WHERE [Year] = " & Me![Year] & "  AND Coordinator = '" & Me!Coordinator & "' AND (DateDiff('m',End_Date,Date())>=0 "
Titel: Re: DateDiff in Select Abfrage im VBA Code
Beitrag von: JB am Oktober 12, 2016, 09:03:33
Hi,

vielen Dank für die Antworten, leider hat der Code von DF6GL nicht geholfen.

Also was möchte ich: Ich habe in meiner Datenbank Verträge gespeichert, die einem Geschäftsjahr zugeordnet sind (über Year) und die ein Ablaufdatum (End_Date) haben. Jetzt möchte ich alle Verträge, die dem Geschäftsjahr zugeordnet sind aber die schon abgelaufen sind in meiner Liste angezeigt bekommen. Das ganze filter ich außerdem nach dem zuständigen Koordinator.

Vieleicht hilft das weiter.

Danke!

Jelto

Titel: Re: DateDiff in Select Abfrage im VBA Code
Beitrag von: JB am Oktober 12, 2016, 09:07:10
Der Code von DF6GL passt doch, wenn man noch eine Klammer ergänzt :)

Me.List_Outdated_Contracts.RowSource = "SELECT Name FROM Contracts WHERE Year = val('" & Me.Year & "') AND Coordinator = '" & Me.Coordinator & "' AND (DateDiff("m",End_Date,Date()))>=0 "

Besten Dank für die Hilfe :)
Titel: Re: DateDiff in Select Abfrage im VBA Code
Beitrag von: DF6GL am Oktober 12, 2016, 13:19:07
ZitatHallo,

wenn man noch eine Klammer ergänzt :)


oder (m. E. besser) die Klammer zwischen and und datediff weglässt.....

wobei :

val('" & Me.Year & "')     Quatsch ist. Besser wäre hier (wie auch bei den anderen Form-Textfeldern) die Prüfung auf NULL-Inhalt und das akt. (oder ein anderes) Datum als Ersatzwert zu nehmen:

Nz(Me!Year,Date)     

"Year" unbedingt in Eckklammern stehen muss.  Year ist ein reserviertes Wort und bedeutet den Aufruf der Funktion Year()  auch im SQL-Statement.

"Name" unbedingt in Eckklammern stehen muss, da es ebenfalls um ein reserviertes Wort handelt und u. U. der Name der Tabelle und nicht der Inhalt des Feldes "Name" geliefert wird.