Datumskonvertierung in access 97

  • #1
H

HelpME

Guest
Ola,

ich habe ein Problem mit ACCESS 97. In einer Spalte habe ich Datumsangaben als Text in der Form 20021204. Ich benötige eine Lösung, die diesen Text bei Anlegen einer Abfrage in einer weiteren Spalte als korrektes Datum in der Form 04.12.2002 ablegt.

Ich habe über 2 Mio Datensätze und bislang keine Lösung gefunden, die ACCESS akzeptiert. Die mit Funktionen erzeugten Daten sehen zwar so aus, die Abfrage mit Zwischen funktioniert aber nicht korrekt.

Bin für jede Idee dankbar, die ich begreifen kann :D
 
  • #2
Hallo HelpMe,

PCDJoe hat mich mit der Nase auf Dein Problem gestoßen, also wollen wir mal sehen ob ich Dir Helpen kann.

Im zweiten Abschnitt schreibst Du die Daten sehen zwar so aus und danach folgt das Du ein Problem mit einer Auswahlabfrage zwischen hast.

Sehen die Daten nur so aus oder sind sie tatsächlich konvertiert, stehen sie nur per Abfrage zur Verfügung oder sind sie im Datensatz enthalten. Welches Problem oder welcher Fehler tritt bei der Auswahlabfrage mit zwischen auf.

Also antworte mal und ich werd versuchen Dir zu helfen.

Gruß
Kurt Körner
 
  • #3
Ola Kurt,

danke für die schnelle Reaktion (HelpME ist mein Alias, wenn ich mich andererorten einlogge, damit ich nicht aus Versehen MOD-Rechte irgendwo hinterlasse)

Das komische Datum steht in einem Feld, bsp KOMDAT In der Abfrage sind drei Felder neu generiert:
Tag: rechts([KOMDAT];2]
Monat: TeilStr([KOMDAT];5;2)
Jahr: Links([KOMDAT];4]

Natürlich ist der Inhalt dieser Felder Text. Der Ausgangstext 20021203 wird korrekt in 03 12 und 2002 zerlegt, Glätten führt zu keiner Änderung.

Ein weiteres Feld Datum soll aus diesen drei Bestandteilen ein Datum zusammenbasteln.

Vorgefunden habe ich Datum: [Tag]+.+[Monat]+.+[Jahr]

In der Tabellenansicht steht dieses Datum rechts: Das meinte ich mit sieht so aus. (Das & anstelle des + ergab keine Änderung, auch eine anderere Benennung statt Datum löste das Problem nicht.)

Diese Abfrage ist nun wieder Grundlage einer weiteren. Dort soll mit hilfe von zwischen ein Kriterium immer monatsweise die Werte liefern.
Die Abfrage meldet keinen Fehler, liefert aber Unsinn. (Die Automatik macht 01.12.2002 aus dem Wert. Das Erzwingen mit #liefert einen Fehler wegen der Datentypen.

Eine andere Variante, das Datum per Funktion zusammenzusetzen, lieferte zwar scheinbar den richtigen Datentyp (das # erscheint automatisch ) generierte aber ebenfalls eine Fehlermeldung.

Kurz, ich habe keine funktionierende Lösung gefunden oder immer den gleichen Fehler übersehen ...
 
  • #4
Ola,

die Lösung könnte folgendermaßen sein:

Dat: DatWert(Rechts([KOMDAT];2) & . & TeilStr([KOMDAT];5;2) & . & Links([KOMDAT];4))

In diesem Fall führt ein Kriterium wie
Zwischen #01.02.2002# Und #01.06.2002#

zumindest bei meinen Beispieldaten zum richtigen Ergebnis.
 
  • #5
Also hast Du ja die richtige Lösung selbst gefunden. Vorher hattest Du aus dem Datum ein Textfeld gemacht und dann darauf versucht eine Funktion (zwischen) mit einem Datumswert zu machen, das führt natürlich zu Fehler.

Vieles in Access ist halt Versuch und Irrtum, Bücher oder Helpdateien liefern oft garkeine oder nur unverständliche Erklärungen. MS will halt immer alles durch die Brust ins Auge erklären.

Also mach's mal Gut
und Gruß
Kurt Körner
 
Thema:

Datumskonvertierung in access 97

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.848
Beiträge
708.002
Mitglieder
51.499
Neuestes Mitglied
sugarland
Oben