PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Access: Tag im Jahr herausfinden


DocEW
2004-06-22, 12:20:08
Hi,

ich arbeite gerade an einer Access-DB und habe folgendes Problem:
Ich muß eine Abfrage auf ein Textfeld machen, in dem folgendermaßen verschlüsselt das Datum steht:

...04155... => 2004, 155. Tag

Ich möchte jetzt z.B. alle Datensätze aus Mai 2004 haben, d.h. ich benötige eine Funktion, die mir sagt, daß der 1.5.2004 der soundsovielte Tag ist und der 31.5.2004 der wasweißichwievielte. Gibt's da irgendwas fertiges in Access?
Im Internet habe ich nur sowas
http://www.aboutvb.de/khw/artikel/khwdayofyear.htm
gefunden, ich würde das ganze aber gerne direkt in einer Abfrage als Filterkriterium verwenden.

Gruß,

DocEW

DocEW
2004-06-22, 13:24:10
Ähh, jaaa... also so etwas gibt es:

http://www.ms-office-forum.net/forum/archivethread-94711.html

Dabei ist mir jetzt aufgefallen, daß ich eigentlich den anderen Weg brauche: Um komfortabel abfragen zu können, wäre es besser, wenn ich wüßte, daß der 155. Tag der 5.Mai (oder was auch immer) ist. Geht das auch irgendwie??

DocEW
2004-06-22, 14:29:06
OK, hat sich erledigt. Ich benutze jetzt einfach zwei VB-Funktionen, um hin- und herzuwandeln:

Public Function TagImJahr2Datum(tagImJahr As Integer, jahr As Integer) As Date

Dim datum As Date

datum = DateSerial(jahr, 1, 1)
datum = DateAdd("y", tagImJahr - 1, datum)

TagImJahr2Datum = datum

End Function

Public Function OID2Date(OID As String) As Date

Dim tagImJahr As String, jahr As String

tagImJahr = Mid(OID, 4, 3)
jahr = Mid(OID, 2, 2)

OID2Date = TagImJahr2Datum(Val(tagImJahr), Val(jahr))

End Function

Public Function Date2OID(datum As Date) As String

Dim tagImJahr As Integer, jahr As Integer

tagImJahr = Format(datum, "y")
jahr = Year(datum)

Date2OID = "1" & Right(jahr, 2) & tagImJahr & "000000000"

End Function