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