Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Torsten. am Dezember 18, 2012, 19:37:37

Titel: Zeichenfolge in Aktualisierungsabfrage
Beitrag von: Torsten. am Dezember 18, 2012, 19:37:37
Hallo,
ich habe eine Spalte "Jahr" mit folgendem Inhalt (Jahreszahlen):

199704-200006
200504-0
199506-199904
199303-199503
199503-199904
200502-0
200109-0
200004-200009
199411-199508
199507-200008

Nun möchte ich die Tabelle wie folgt aufschlüsseln:
04 1997 06 2000
04 2005 leer leer
06 1995 04 1999
... usw.

Für die ersten 2 Spalten habe ich es so gelöst:

UPDATE test_tbl_map_ref SET test_tbl_map_ref.v_jahr = Left([jahr],6), test_tbl_map_ref.von_jahr = Left([v_jahr],4), test_tbl_map_ref.von_monat = Right([v_jahr],2);

Nun weiß ich nicht wie ich den 2. Bereich (200006 zu 06 2000) auflösen kann, denn mit z.B. ... right([jahr],6) komme ich nicht zum Ergebnis, da ja auch die Zeichenfolge 0 vorliegt und da käme dann 0-4050 raus.

Gibt es die Möglichkeit zu "sagen": links ab dem 8 Zeichen oder ähnlich?

Kann mir jemand helfen?


Gruß TVH


Titel: Re: Zeichenfolge in Aktualisierungsabfrage
Beitrag von: DF6GL am Dezember 18, 2012, 20:00:17
Hi Torsten,  :)


benutz die Mid()-Funktion:


strJahr= mid([Jahr] & "000000",8,4)
strMonat= mid([Jahr] & "000000",12,2)
Titel: Re: Zeichenfolge in Aktualisierungsabfrage
Beitrag von: MzKlMu am Dezember 18, 2012, 20:16:06
Hallo,
ich habs jetzt halt fertig:  ;D
UPDATE test_tbl_map_ref SET Von_Jahr = Left([Jahr],4), Von_Monat = Mid([Jahr],5,2), Bis_Jahr = IIf(Mid([Jahr],8,1)="0",Null,Mid([Jahr],8,4)), Bis_Monat = IIf(Mid([Jahr],8,1)="0",Null,Mid([Jahr],12,2))

Da man mit Datumsfeldern oft rechnen muss, besonders auch im Hinblick auf die Feldnamen (Von, Bis) würde ich Dir raten, aus den Feldern Monat und Jahr ein korrektes Datum zu bilden. Dazu musst Du aber noch einen Tag erfinden, z.B. der 1. oder der 15.
Titel: Re: Zeichenfolge in Aktualisierungsabfrage
Beitrag von: Torsten. am Dezember 18, 2012, 20:24:02
Hallo Franz,
schön von Dir zu "hören".
Ich habe noch das Komma vor der 8 und der 12 in ein Semikolon geändert und dann hat es geklappt.
Vielen Dank

@MzKIMU
Auch Dir vielen Dank für Deine Mühe, dass werde ich mir in Ruhe anschauen.

Problem ist gelöst.

Gruß TVH