Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Strings als Datum konvertieren ?
zurück: Was mache ich hier falsch ?? weiter: Sicherheitabfrage bei Löschung von Tabelle umgehen??? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
leira
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Mai 2004, 10:50
Rufname:

Strings als Datum konvertieren ? - Strings als Datum konvertieren ?

Nach oben
       

Hallo !

ich habe ein Datumproblem. In meiner Tabelle werden Erscheinungstermine in der Spalte Monat und Spalte Jahr gespeichert (weil man kein genaues Datum angeben kann).
Jetzt wollte ich eine Abfrage erstellen, die alle Datensätze anzeigt, die ab einem gewissen Datum erscheinen. Da ich kein exaktes Datum habe, wollte ich immer den 1. des Monats nehmen und mir aus den Spalten die ich habe das Datum zusammenbasteln und dann mit dem Stichtag vergleichen

Code:
("01." & Monat & "." & Jahr) bzw. (Monat & "/01/" & Jahr) >= #04/01/2004#


Funktioniert so aber irgendwie nicht (vielleicht weil ich für Monate <10 keine führende Null (01, 02, ...) habe und es nicht als Datum erkannt wird ?
Gibt es in Access auch Funktionen wie to_date() um Strings als Datum zu formatieren ?

Danke schonmal,

Leira
Willi Wipp
Moderator


Verfasst am:
28. Mai 2004, 11:10
Rufname:
Wohnort: Raum Wiesbaden


Re: Strings als Datum konvertieren? - Re: Strings als Datum konvertieren?

Nach oben
       

Hi leira,

dafuer gibt es die Funktion DatSeriell([ZiJahr];[ZbMonat];[ZbTag]) (DateSerial(Me![iYear], Me![byMonth], Me![byDay]))

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
leira
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Mai 2004, 13:31
Rufname:

AW: Strings als Datum konvertieren ? - AW: Strings als Datum konvertieren ?

Nach oben
       

Hi Willi,

danke für die schnelle Antwort. Funktioniert soweit ganz gut, wenn ich es selektiere ist auch alles gut, allerdings für die WHERE Bedingung funktioniert es nicht. Wenn ich schreibe :

Code:
SELECT *
FROM table1
WHERE DateSerial([table1].[erscheinung_jahr], [table1].[erscheinung_monat], "1") >= #01/01/2004#;


dann kommt die Fehlermeldung "Datentypen in Kriterienausdruck unverträglich"

Funktionen wie month, year, day und so funktionieren aber.
Woran kann das liegen ?
Willi Wipp
Moderator


Verfasst am:
28. Mai 2004, 13:42
Rufname:
Wohnort: Raum Wiesbaden

Re: Strings als Datum konvertieren? (II) - Re: Strings als Datum konvertieren? (II)

Nach oben
       

Hi leira,

es wird eine Zahl erwartet und kein Text (String). Probiere es Mal so
Code:
SELECT *
FROM   table1
WHERE  DateSerial([erscheinung_jahr], [erscheinung_monat], 1) >= #01/01/2004#;

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
leira
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Mai 2004, 14:19
Rufname:


AW: Strings als Datum konvertieren ? - AW: Strings als Datum konvertieren ?

Nach oben
       

Hallo Willi,

Die DateSerial Funktion funktioniert schon (ist anscheinend egal, ob ich "1" oder 1 schreibe), aber irgendwie scheint sie einen String zurückzugeben und kein Datum....
Wenn ich z.B. abfrage :

Code:
SELECT *
FROM table1
WHERE DateSerial([erscheinung_jahr], [erscheinung_monat], 1) like "*2004"


dann bekomme ich alle vom Jahr 2004. Dann verstehe ich auch warum die Dateitypen bei der Abfrage >= #01/01/2004# unverträglich sind...

Leider löst das aber dann nicht mein Problem, ich brauche ja ein Datum...
Willi Wipp
Moderator


Verfasst am:
28. Mai 2004, 15:06
Rufname:
Wohnort: Raum Wiesbaden

Re: Strings als Datum konvertieren? (III) - Re: Strings als Datum konvertieren? (III)

Nach oben
       

Hi leira,

eigentlich sollte die Funktion einen Wert vom Typ Variant zurueckliefern.
Der folgende Ausdruck liefert unter VBA (Direktfenster) auch Wahr (True) zurueck
Code:
? DateSerial(2004, 12, 5) >= #01/01/2004#

Koennte es sein, das Du zum Teil Null-Werte (nicht 0 sondern nicht belegt) in Deinen Feldern hast?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
leira
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Mai 2004, 16:45
Rufname:

AW: Strings als Datum konvertieren ? - AW: Strings als Datum konvertieren ?

Nach oben
       

Hallo Willi,

Stimmt, es liegt an den NULL Werten !
Ich habe zwar eine Abfrage erstellt :
Code:
SELECT *
FROM table1
WHERE erscheinung_jahr <> NULL;

die mir alle Datensätze gibt, in denen keine NULL Werte vorkommen, auf dieser aufbauend versuche ich dann die Datensätze dem Datum nach zu filtern :
Code:
SELECT *
FROM abfrage1
WHERE DateSerial([erscheinung_jahr], [erscheinung_monat], 1) >= #01/01/2004#;


Aber anscheinend merkt Access, dass in der Tabelle trotzdem noch NULL Werte stehen ? Kann ich das umgehen oder muss ich die NULL Werte loswerden ?
Willi Wipp
Moderator


Verfasst am:
29. Mai 2004, 11:24
Rufname:
Wohnort: Raum Wiesbaden

Re: Strings als Datum konvertieren? (IV) - Re: Strings als Datum konvertieren? (IV)

Nach oben
       

Hi leira,

da gaebe es mindestens 2 Loesungswege.
Haengt davon ab, was mit den DS mit Null-Werten (nicht 0 sonedern nicht belegt) passieren soll.

1. Als "Standard"-Datum interpretieren:
Hier wird der Null-Wert durch einen Standardwert ersetzt, z.B. mit der Nz-Funktion
Code:
SELECT *
FROM   table1
WHERE  DateSerial(Nz([erscheinung_jahr], 1900), Nz([erscheinung_monat], 1), 1) >= #01/01/2004#;

Nachteil: Wenn Du den Wert 0 im Jahr und Monat hast, wird daraus 01.12.1999!

2. Nicht anzeigen:
Hier wird mit einer Zwischenabfrage gearbeitet.
Diese setzt wieder mithilfe der Nz-Funktion die Null-Werte um und schliesst dann 0-Werte aus.
Code:
SELECT *, Nz([erscheinung_jahr],0) AS E_Jahr, Nz([erscheinung_monat],0) AS E_Monat
FROM   T1
WHERE  Nz([erscheinung_jahr],0)>0) AND Nz([erscheinung_monat],0)>0;
speichern als z.B. abfrage1

Und dann passiert etwas fuer mich unerklaerliches!
Man muss in der darauf folgenden Abfrage die neudefinierten Felder fuer den Aufbau des Datums verwenden!
Wenn man sonst in der Ausgangstabelle in einem DS beim Jahr und beim Monat einen Null-Wert hatte,
kommt trotzdem eine Fehlermeldung: Data type mismatch in criteria expression (A97)

=> Fuer die WHERE-Klausel die neu definierten Felder verwenden!
Code:
SELECT *
FROM   abfrage1
WHERE  DateSerial([E_Jahr],[E_Monat],1) >= #01/01/2004#;

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
leira
Im Profil kannst Du frei den Rang ändern


Verfasst am:
29. Mai 2004, 12:46
Rufname:


AW: Strings als Datum konvertieren ? - AW: Strings als Datum konvertieren ?

Nach oben
       

Hallo Willi,

Danke für die ausführliche Antwort !

Ich denke ich werde den 1. Weg nehmen, da ich monat und jahr nur als Datum brauche, um über die restlichen Daten zu filtern (alle Datensätze ab z.B. Oktober 2003 oder so ähnlich).

Vielen Dank auch für die Zeit, die Du Dir genommen hast um mir zu helfen !

Viele Grüße,

Leira
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnung in Abhängigkeit vom Datum 1 Christian22 1005 03. Feb 2005, 14:00
lothi Berechnung in Abhängigkeit vom Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum im Formularkopf 6 didide 822 06. Jan 2005, 17:19
lothi Datum im Formularkopf
Keine neuen Beiträge Access Tabellen & Abfragen: in einer Wenn dann Funktion aufs Datum gruppieren 10 Gast 692 06. Jan 2005, 10:22
Skogafoss in einer Wenn dann Funktion aufs Datum gruppieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum und Uhrzeit automatisch speichern 3 peinberger 1120 30. Dez 2004, 10:33
mapet Datum und Uhrzeit automatisch speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Alter auf Basis akt. Datum ausrechnen 2 jomei 1635 22. Dez 2004, 09:15
jomei Alter auf Basis akt. Datum ausrechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Access Abfrage mit größer als Parameter Datum 2 Terrific 14869 06. Dez 2004, 19:46
Gast Access Abfrage mit  größer als Parameter Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum konvertieren 2 pad8626 1237 03. Dez 2004, 16:25
pad8626 Datum konvertieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum 5 Jogler 1002 29. Nov 2004, 13:27
borstel Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Accessdaten Datum in Englischer Form in Serienbrief von Word 1 Hajo 1128 24. Nov 2004, 11:49
Gast Accessdaten Datum in Englischer Form in Serienbrief von Word
Keine neuen Beiträge Access Tabellen & Abfragen: Achtstelligen Zahlen-Stringwert als Datum formatieren 2 cmaier 1303 15. Nov 2004, 15:10
cmaier Achtstelligen Zahlen-Stringwert als Datum formatieren
Keine neuen Beiträge Access Tabellen & Abfragen: 3. ältestes Datum 3 shaaree 794 27. Sep 2004, 11:03
Skogafoss 3. ältestes Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Zahl umwandeln 2 Lorenz 1018 01. Sep 2004, 18:45
Lorenz Datum in Zahl umwandeln
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editor Forum