Access 97: Text in Datumsformat konvertieren

Hallo!!
Ich habe folgendes Problem: in meiner DB wird das Datum in Textform geführt, d.h. als Text mit 10 Stellen (z.B.„10.10.1999“). Nun möchte ich einige Abfragen durchführen, bei dem ich den Zeitraum angeben muß, was mit den Datum als Text nur zu falschen Ergebnissen führt.
Gibt es eine Möglichkeit, das Textformat in ein Datumsformat zu konvertieren?
Wäre wichtig!!

Vieln Dank im voraus

Klaus

Du kannst in deiner Abfrage mit Year(myDatum), Month(myDatum) und Day(myDatum) alle Informationen kriegen, um auf einen Zeitraum einzuschränken, z.B.
alle Datensätze von 1999 im Zeitraum von Mai bis Oktober:
SELECT * FROM myTabelle WHERE Year(myDatum) = 1999 AND Month(myDatum) >= 05 AND Month(myDatum)

Generell sollte man Datumswerte nicht als Text speichern (das Jahr-2000-Problem resultiert zu 90 % daraus…). Wenn’s denn unbedingt sein muss, sollte man Textfelder auch nur mit Textvergleichen bearbeiten. In deinem Fall also z.B. den Monat mit Teilstr([MeinDatum];3;2) = „10“ vergleichen.

Insofern würde ich Mathias’ Tipps mit Vorsicht behandeln: So etwas wie Jahr(„10.10.1999“) funktioniert nur mehr oder minder zufällig (z.B. nur, wenn als Datumtrennzeichen der Punkt gewählt wurde). Kommt noch hinzu, das derartige Mehrfachkonversionen im hohen Maße ineffizient sind - es muss immer die gesamte Tabelle durchsucht werden, da man über derartige Felder keine Indizes auswerten kann…

Aber wie schon gesagt: Datumswerte in Datumsfeldern ersparen einem den ganzen Firlefanz…

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard

Das Problem kommt daher, daß Visualisierungsprogramm für industrielle Anlagen Daten in die Datenbank schreibt und der Timestamp dieser Software nicht zum Accessformat kompatibel ist; daher hat man sich auf das Textformt geeinigt. Die Idee mit dem Auswerten von Teilen des Textes hatte ich auch schon - allerdings wie Du richtig sagst muß ich immer die komplette Tabelle durchsuchen.

Trotzdem Danke
Klaus

Hallo!!
Ich habe folgendes Problem: in meiner DB
wird das Datum in Textform geführt, d.h.
als Text mit 10 Stellen
(z.B.„10.10.1999“). Nun möchte ich einige
Abfragen durchführen, bei dem ich den
Zeitraum angeben muß, was mit den Datum
als Text nur zu falschen Ergebnissen
führt.
Gibt es eine Möglichkeit, das Textformat
in ein Datumsformat zu konvertieren?
Wäre wichtig!!

Vieln Dank im voraus

Klaus

Danke Matthias!

Werde es mal ausprobieren. Was Reinhard sagt - das mit dem Punkt als Trennzeichen-, ist bei mir kein Problem

Viele Grüße

Klaus

Mit Verlaub: Diese Aussage kann man eigentlich nie verbindlich treffen. Ich hatte auch einmal angenommen, dass mein Programm „immer“ den Punkt als Datumstrennzeichen bekommt - bis mein Kunde ein Steuerungsprogramm aus den USA installierte, das die Registry umgestellt hat. Und plötzlich lief mein Programm nicht mehr…

Also lieber sauber programmieren!

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard und Mattthias,

danke für eure Infos, ich bin jetzt noch fündig geworden mit der VB Funktion CDate kann man Zeichenketten, die von der ‚Erscheinungsform‘ ein Datumsformat haben, in ein echtes Datumsformat umwandeln

Klaus

Das ist klar - deine ursprüngliche Fragestellung war bei deinem Posting durch das Postulat „wird in Textform geführt“ ein bisschen untergegangen.

Die Konversion wird von Access auch ohne CDate bzw. CvDate gemacht, wenn du einem Datumsfeld einen String bzw. ein Textfeld zuweist oder in einer Aktualsierungsabfrage ein Datumsfeld aus einem Textfeld aktualisierst. (Auch hier in Abhängigkeit von den Systemeinstellungen - also Vorsicht!)

Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]