AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Geburtstage in xxx Tagen anzeigen im Dezember
Thema durchsuchen
Ansicht
Themen-Optionen

Geburtstage in xxx Tagen anzeigen im Dezember

Ein Thema von ereetzer · begonnen am 19. Jan 2013 · letzter Beitrag vom 20. Jan 2013
Antwort Antwort
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#1

Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 19. Jan 2013, 22:18
Hallo,

ich ermittle die nächsten anstehenden Geburtstage. (DB = Access)

Delphi-Quellcode:
      DM.ADOEreignisGeburtstag.SQL.Add('SELECT * FROM Adressen WHERE Format(Geburtstag, "mmdd") Between Format(Date(), "mmdd") And Format(DateAdd("d", :RANGE, Date()), "mmdd") ORDER BY 1');
      DM.ADOEreignisGeburtstag.Parameters.ParamValues['RANGE'] := Edit2.Text;
Das geht auch super solange wir nicht grad Dezember haben. Da bringt´s falsche Ergebnisse sobald es übers Jahr hinaus geht.

Hat jemand eine Idee;

Gruß.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 19. Jan 2013, 22:53
Wenn man es gleich in beide Richtungen offen halten will, also x Tage vor heute bis y Tage nach heute sollte das hier funktionieren, sonst halt abspecken

im Beispiel x = 30 y = 20

Code:

SELECT *
 
FROM Datum

where
DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 
or
DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20
or
DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#3

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 07:23
Danke für Deine Antwort.

Leider werden dabei gar keine Ergebnisse mehr zurückgeliefert (in allen Monaten)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 08:35
Das wundert mich. Wenn ich die Bereiche versuchsweise mit ausgeben lasse

Code:
SELECT *,
DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) as Vorjahr,
DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) as Jahr,
DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) as Folgejahr,
Date()-30 as Untergrenze,
Date() +20 as Obergrenze
FROM Datum

where
DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 
or
DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20
or
DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20

bekomme ich folgendes Ergebnis

Code:
Vorjahr   Jahr   Folgejahr   Untergrenze   Obergrenze   ID   Datum
01.01.2012   01.01.2013   01.01.2014   21.12.2012   09.02.2013   1   01.01.1965
01.01.2012   01.01.2013   01.01.2014   21.12.2012   09.02.2013   4   01.01.2000
20.01.2012   20.01.2013   20.01.2014   21.12.2012   09.02.2013   6   20.01.1955
02.02.2012   02.02.2013   02.02.2014   21.12.2012   09.02.2013   7   02.02.2000
31.12.2012   31.12.2013   31.12.2014   21.12.2012   09.02.2013   8   31.12.2000
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#5

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 09:52
Danke nochmal, ich konnte jetzt nachvollziehen das sobald das Geburtsdatumfeld leer ist, folgende Fehlermeldung kommt:
(das keine Daten angezeigt wurden lag daran das es kein passendes Geburtsdatum gab)

"Datentypen in kriterienausdruck unverträglich".

Bis zu diesem leeren Feld kommen die Ergebnisse, beim leeren Feld bricht es ab.
Kann man in der Abfrage unterbringen, das NULL-Felder nicht berücksichtigt werden sollen?

Danke
ereetzer
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 10:37
'IS NOT NULL'.... Googeln hilft auch.
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#7

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 11:29
hatte es nicht geschrieben, aber IS NOT NULL an sich war mir schon klar, nur an der ausführung hapert as bei mir.

Delphi-Quellcode:
SELECT * FROM Adressen where( Geburtstag IS NOT NULL) AND
(DateSerial(Year(Date())-1, Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20
or
DateSerial(Year(Date()), Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20
or
DateSerial(Year(Date())+1, Month([Geburtstag]), Day([Geburtstag])) between Date()-30 and Date() +20 )
Das geht zum Beispiel nicht (gleiche Fehlermeldung). Und mir fehlen leider auch die Grundkenntniss um diese (für mich) schwierige Abfrage allein zu meistern.

Vielleicht hat noch jemand eine Idee?
Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 11:59
Code:
SELECT *
Where
IIF(DATUM is NULL,false,

DateSerial(Year(Date())-1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20 
or
DateSerial(Year(Date()), Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20
or
DateSerial(Year(Date())+1, Month([Datum]), Day([DATUM])) between Date()-30 and Date() +20
)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#9

AW: Geburtstage in xxx Tagen anzeigen im Dezember

  Alt 20. Jan 2013, 12:13
IIF also, danke. Genauso geht´s

ereetzer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz