Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datum Formatierung funktioniert nicht für Oktober

Begonnen von boehnli01, Oktober 03, 2013, 21:44:06

⏪ vorheriges - nächstes ⏩

boehnli01

Hallo zusammen

Ueber ein Make-Query formatiere ich das Datum "02 Oct 2013 03:55:52" mit  DateValue([wh end]) in 02.10.2013 um. Das hat bis jetzt immer wunderbar geklappt, aber funktionert mit dem Oktober Daten nicht mehr. Das heisst alle Daten bis Ende September werden richtig formatiert, aber ab Oktober nicht mehr. In dem Make-Query kommt eine error msg: It set 113 fields to Null due to type conversion failure.

Kann mir da jemand weiterhelfen ?

Vielen Dank.


boehnli01

:-) Genau so ist es.

Das Datumsformat kommt aus einem excell download. Wie kann ich das ändern, bzw richit in Access formatieren ?

Danke.

DF6GL

Hallo,


benutze ein Konvertierungsfunktion ähnlich wie folgt (als Public-Funktion in einem Standardmodul) und ruf die in der Abfrage auf:


Function fktDateValue(d As String) As Date
Dim a, i As Long

a = Array("Mar", "Mär", "May", "Mai", "Oct", "Okt", "Dec", "Dez")
For i = LBound(a) To UBound(a) - 2 Step 2
  d = Replace(d, a(i), a(i + 1))
Next

fktDateValue = DateValue(d)

End Function

boehnli01

Super. Vielen Dank.

Nun möchte ich noch "02 Oct 2013 03:55:52" in "02 Okt 2013 03:55:52" umwandeln. Mit DateValue bekomme ich ja nur das Datum ohne Zeit.

Danke für die Hilfe.


DF6GL

Hallo,

::) ::)


Function fktDateDE(d As String) As String
Dim a, i As Long

a = Array("Mar", "Mär", "May", "Mai", "Oct", "Okt", "Dec", "Dez")
For i = LBound(a) To UBound(a) - 2 Step 2
  d = Replace(d, a(i), a(i + 1))
Next

fktDateDE = d
End Function


Bekommst Du eine solche Änderung nicht selber hin ??

boehnli01


boehnli01

Hallo zusammen - das Modul unten hat bis anhin wunderbar funktioniert, aber nun erscheint das Datum in der Make Abfrage als "#Error".  Könnte mir bitte jemand weiterhelfen. 

Function fktDateValue(d As String) As Date
Dim a, i As Long

a = Array("Mar", "Mär", "May", "Mai", "Oct", "Okt", "Dec", "Dez")
For i = LBound(a) To UBound(a) - 2 Step 2
  d = Replace(d, a(i), a(i + 1))
Next

fktDateValue = DateValue(d)

End Function


Vielen Danke für die Hilfe
Cédric

DF6GL

Hallo,


wie lautet denn der String, den Du der Funktion übergibst?

wie lautet der SQL-String der "Make Abfrage"

boehnli01

Hi DF6GL - das Modul habe ich folgendermassen in die Abfrage eingebunden:
DATE: fktDateValue([wh end])

Und so sieht der SQL aus:
SELECT fktDateValue([wh end]) AS [DATE], tab_CMS_Report_HU_prep.PO, tab_CMS_Report_HU_prep.PO_QTY, IIf([WORKST_NAME]="FULL PACK PALLET","FULL PALLET","PICKING TRAIN") AS FULLBACK, tab_CMS_Report_HU_prep.WORKST, tab_CMS_Report_HU_prep.WORKST_NAME, tab_CMS_Report_HU_prep.PICKED_QUANTITY, tab_CMS_Report_HU_prep.[#HU], tab_CMS_Report_TIME_raw.[HU Count] AS [#HU TOTAL], fktDateDE([wh begin]) AS PICK_START, fktDateDE([wh end]) AS PICK_END, tab_CMS_Report_HU_prep.OPERCODE, tab_CMS_Report_HU_prep.OPERNAME INTO tab_CMS_Report_prep
FROM tab_CMS_Report_HU_prep LEFT JOIN tab_CMS_Report_TIME_raw ON tab_CMS_Report_HU_prep.PO = tab_CMS_Report_TIME_raw.[Po Number]
ORDER BY tab_CMS_Report_HU_prep.PO;

Danke Cédric

DF6GL

Hallo,

und was steht in [wh end] , wenn die "Fehlfunktion" beim Ausführen der Abfrage auftritt?

Tipp: setz einen Haltepunkt an den Codeanfang der Funktion und prüfe dort den  übergebenen Wert ..

Du kannst auch ein
Debug.Print d
in die Funktion einsetzen und die übergebenen Werte im Direktfenster anzeigen lassen.

Vermutlich wird für Oktober  nicht Oct verwendet..


btw: Tausendmal (mindestens) schon erzählt:  Auf reservierte Wörter, Sonder- und Leerzeichen in (Objekt-) Namen dringend verzichten!

boehnli01

Hallo - die Fehlfunktion ist #Error

Sieh DB anbei. Der Dezember schein die Ursprung des Fehlers zu sein.

Danke für die hilfe.

Cédric

DF6GL

Hallo,


korrigier die Funktion wie folgt:

Option Compare Database
[color=red]Option Explicit  'immer verwenden![/color]
Function fktDateValue(d As String) As Date
Dim a, i As Long

a = Array("Mar", "Mär", "May", "Mai", "Oct", "Okt", "Dec", "Dez")
For i = LBound(a) To UBound(a)[color=red] [b]- 1[/b][/color] Step 2
  d = Replace(d, a(i), a(i + 1))
Next
fktDateValue = DateValue(d)

End Function

boehnli01

Hallo - ich copy/paste die angepasste Funktion gemäss Deiner Antwort, aber erhalte immer noch die gleiche Error Meldung. Was mache ich falsch ?

Gruss Cédric