Jump to content
  • 0

tekstveld naar datum


pjotter

Question

Kom net achter iets waar ik even geen antwoord op heb en wat ik nog niet ben tegen gekomen?

Ik heb een tekstveld wat ik importeer.

Als ik dat na import omzet naar een datum veld dan heb ik 2 verschillende uitkomsten.

1 als de tekst is opgemaakt als vb: 01/01/2008 dan krijg ik keurig datum 01-01-2008

2 als de tekst is opgemaakt als vb: 01-01-2008 dan krijg ik de datum 01-01-2007?

Ik gebruik voor omzetten van de tekst gewoon:

Date ( Middle ( datumtekst ; 3 ; 2 ); Left ( datumtekst; 2) ; Right ( datumtekst ; 4 ) )

Hoe kan het dat ik in voorbeeld 2 voor het jaartal 2007 krijg (laatste 4 laatste tekens zijn echt 2008?)

De export is een tekst veld omdat de datum ook als volgt kan worden weergegeven :01 jan 2008

Link to comment

9 answers to this question

Recommended Posts

  • 0

Dat ik met een aangepaste formule er wel uit kom dat kan maar wat ik zo vreemd vindt is dat wanneer is xx/xx/xxxx neem als tekst en ik dit omzet ik wel het juiste jaartal krijg en bij xx-xx-xxxx het jaartal -1?

Ik heb een bestandje bijgevoegd omdat ik de beweegredenen niet ken waarom // een heel andere uitkomst heeft dan --?

 

Met get as date werkt het wel met // en met -- maar ik kan ook de tekst aangeleverd krijgen als: 1 jan 2008

vandaar dat ik die niet gebruikte. In de totale formule zit namelijk ook een stukje met case( jan =1 enz)

datum.fp7

Link to comment
  • 0
Bovenstaande oplossingen werken niet op alle systemen.

FM herkent jan-feb enz dan niet

 

Om de formule niet al te lang te maken heb ik een veld bijgemaakt.

 

gr

Harry

Dat omzetten is niet het probleem dat werkt op zich allemaal prima ik heb het ozetten van jan naar 1 gewoon in de formule geplaatst van date(mont,day,year). Ik kan alleen niet uitstaan dat ik niet weet waarom / als scheidings teken wel de juiste datum geeft en - niet. Als ik alleen het jaar neem (Right ( datumtekst ; 4)) dan krijg ik keurig het juiste jaartal. ALs ik vervolgens dit dit invoeg in de eerste datum omzetting dan krijg ik weer 1 jaar lager.

Link to comment
  • 0
Ik kan alleen niet uitstaan dat ik niet weet waarom / als scheidings teken wel de juiste datum geeft en - niet.

Omdat delen niet hetzelfde is als aftrekken.

 

En dat komt allemaal door die 3 in Middle ( datumtekst ; 3 ; 2 ). Hiermee krijg je dus voor de maand "-0" of "/0". Aangezien de Date functie getallen verwacht probeert hij deze 'tekst' te interpreteren. Daarom moet het een 4 zijn. Dan krijg je "01" in beide gevallen, dat wordt dus maand 1.

 

Uiteraard werkt deze formule alleen wanneer de datumtekst in het formaat xx-xx-xxxx wordt gepresenteerd, evenals GetAsDate (). Filter je de niet numerieke karakters eruit, dan wordt het al helemaal onvoorspelbaar. 1-1-'08 zou ook kunnen.

 

In een goede datum omzettingsformule moet je al die uitzonderingen afvangen. Omdat je niet weet wie het allemaal gaat invoeren, is dat niet mogelijk. Ik heb het ooit gehad dat gebruikers invoerden: "ergens in februari vorig jaar" of "Eerste kerstdag 2005".

 

Zorg daarom dat datums in een datumveld worden ingevoerd. Wanneer het via een webformulier gebeurt, pas dan een validatie toe, die de gebruiker bij fouten opnieuw laat invoeren.

Link to comment
  • 0

Kijk een duidelijke uitleg maar wel een vreemde voor me. dat-4 iets anders is dan /4 is logisch, dus tot zover duidelijk.

Ik zie ook dat de 3 dat effect heeft en dat de 4 de juiste uitkomst geeft maar dan is het nog steeds vreemd dat dus FM dit alleen bij de - doet?

Delen, vermenigvuldigen of optellen heeft geen enkel effect.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...