Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

DateDiff in Select Abfrage im VBA Code

Begonnen von JB, Oktober 11, 2016, 17:08:45

⏪ vorheriges - nächstes ⏩

JB

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

MzKlMu

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 .....
Gruß Klaus

DF6GL

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 "
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

JB

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


JB

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 :)

DF6GL

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.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access