# Datum in Tag, Monat, Jahr teilen?



## Jacizzle (23. August 2005)

Ich hab mal eine Frage. Und zwar, gibt es die Möglichkeit, wenn ich aus einer Datenbank ein Datum auslese, dass ich dann das Datum aufteilen kann in Tag, Monat, Jahr?

Weil ich hab folgendes Problem: Ich wähle über ein Formular, ein Kombinationsfeld, einen bestimmten Monat aus. In der Datenbank stehen mehrere Geburtsdatum(s?) 

Ich möchte halt nun aus der Datenbank alle Leute auslesen, die in diesem Monat geburtstag haben.. Ich hab mal irgendwo gelesen das es spezielle funktionen gibt um das Datum aufzuteilen, aber ich hab hier nichts gefunden, vielleicht kann mir ja mal einer nen Link schicken oder so..

Danke im vorraus


----------



## Orakel (23. August 2005)

Hi,

normalerweise gibt es sogenannte Aggregatsfunktionen, mit denen man hier arbeiten kann. Die sind aber stark abhängig von der Datenbank, die man benutzt. Und wenn mich nicht alles täuscht, gibt es bei den meisten auch eine year, month und day Funktion.

Prüfs einfach mal für Deine Datenbank.

Gruß
Das Orakel


----------



## zioProduct (24. August 2005)

Angenommen du hasst ein TextField, wo du das Datum eingeben kannst, nachdem gesucht werden soll, versuchs mal mit:

```
TxtDatum.SetFocus
            If IsDate(TxtDatum.Text) Then
                sBuf1 = Month(TxtDatum.Text)
                sBuf = "#" + sBuf1 + "-"
                sBuf1 = Day(TxtDatum.Text)
                sBuf = sBuf + sBuf1 + "-"
                sBuf1 = Year(TxtDatum.Text)
                sBuf = sBuf + sBuf1 + "#"
                sql = "SELECT * FROM DeineTabelle LEFT OUTER JOIN VergleichsTabelle ON DeineTabelle1.spalte = DeineTabelle2.spalte WHERE Datum >= " + sBuf
            End IF
```
 Oder so ähnlich, weiss nathürlich nicht wie deine DB aufgebaut ist, aber das dient dir zumindest als Ansatz

mfg
zioP


----------



## Jacizzle (24. August 2005)

Okay.. Gestern war ich ein klein wenig neben der Kappe, weil ich schon mehr als 7 stunden programmierung hinter mir hatte ;o)..

Also das ganze wird so laufen:

Ich habe ein Formular in Access, in diesem Formular hab ich ein Combo-feld in dem ich von Januar bis Dezember auswählen kann und wenn ich den Button ok drücke, will ich eine Liste ( über ein Bericht eben ) ausgeben, in denen alle Menschen stehen, die genau in diesem Monat Geburtstag haben...

Ich benutz ne MSSQL Datenbank, wo Menschen drin stehen mit Geburtsdatum, das Datum steht nu leider aber komplett drin, also als z.B. : 26.08.1983.. und ich brauch logischer Weise den Monat..

Aber ich kanns ja auslesen und in nen unsichtbares Textfeld schreiben und dann so weiter machen wie du gesacht hast zioProduct, oder geht das auch noch anders? Ich versuchs einfach mal so erstmal, wenn nicht hört ihr nommal von mir ;o) 

Danke aber trotzdem schonmal...


----------



## zioProduct (24. August 2005)

Naja alles was ich jetzt schreibe ist ausm Kopf also keine gewähr 

Du suchst also nach den Monatsnamen, dann würde ich zuerst ne definition Starten, also sprich:

String jan = "01"
String feb = "02"
etc..

Nun definierst du den ausgewählten Monat als deinen String, Sprich --> Januar = jan = "01"

Nun musst du nicht mehr nach Januar suchen, sondern nach 01, das würde ich versuchen, indem Ich das DatumFeld, von deiner Tabelle, nach "." splitte was dir dann, wenn du das mit nem Array machst, Array[0] ="20" / Array[1] ="01" / Array[2] ="2005", nun muss einen Vergelich anstellen, 
zB:
If jan = array[2] then
Dim sJan as String
sJan = "Select * FROM Kunden Where Date(ARRAY[2]) = ' " + jan +" ' "
db.execute(sJan) // DataBase muss open sein
rsJan = db.OpenRecordset(sJan, dbReadOnly) // recordset definiert
KundenName = rsJan.Fields("Name")
etc..

Anpassen etc musst du selbst, dies dient auch nicht als Code den du Kopieren kannst, aber ich denke du kommst so auf den richtigen weg, die richtigen Befehle musst du selber finden =

Hoffe es hilft
mfg
zioP


----------

