Avatar billede andreaspedersen Nybegynder
18. august 2003 - 14:21 Der er 15 kommentarer og
1 løsning

Fange forkert dato i DateValue konvertering

Jeg har en formular som bl.a. indeholder nogle dato felter som skal udfyldes manuelt af brugeren.
Den side som gemmer formularen i databasen bruger DateValue til at formatere den angivne dato og det virker fint.

Problemet er hvis brugeren har tastet FORKERT.. Så retunere DateValue en "Type Mismatch" hvilket jeg udemærket forstår... Kan man fange den fejl og så sende brugeren tilbage til formularen i stedet for at exploren bare viser den fejl.

Håber i forstår mig :-)

Venlig hilsen
Andreas
Avatar billede Six Nybegynder
18. august 2003 - 14:26 #1
Forstået.

Man kan validere det med javascript.

Men hvad med at give formen en "yy-mm-dd" i value, så brugerne ved hvordan de skal indtaste dato?
Avatar billede ldanielsen Nybegynder
18. august 2003 - 14:33 #2
on error resume next
dtmMyDate = Cdate(Request.form("Dato"))
blnDatoKorrekt = (err.number = 0)
on error goto 0

Kræver at serveren er win2k
Avatar billede andreaspedersen Nybegynder
18. august 2003 - 14:41 #3
Fjappe: har du evt. et eksempel på hvordan en sådan "maske" køres i stilling?

Idanielsen: Desværre skal det implementeres på en NT4 Server, det var ellers noget i den stil der jeg helst ville bruge for at undgå alt det javascript.. :-)
Avatar billede Six Nybegynder
18. august 2003 - 14:54 #4
hmm altså med javascript? eller bare "yy-mm-dd" tingen ?
Avatar billede andreaspedersen Nybegynder
18. august 2003 - 15:06 #5
det skal nok være javascript, da det ikke er en almindelig form.. det er et form object som hører til aspsmartupload...
Avatar billede Six Nybegynder
18. august 2003 - 15:10 #6
Jeg er desværre ikke den skarpeste kniv i skuffen til javascript. Men hvordan ser yymmdd formatet ud? så kan det være jeg kan komme på noget.
Avatar billede andreaspedersen Nybegynder
18. august 2003 - 15:13 #7
egenlig har jeg jo brugt datevalue netop for at undgå at være knyttet til noget specifikt format i input delen.. den acceptere både "1 januar 2003" eller "01-01-01" eller "1/1 2001" derfor ville det fedeste være noget alá Ida's løsning, men det kan jeg bare ikke hitte ud af...

Selv er jeg heller ikke nogen ørn i javascript.. men hvis jeg skal diktere et format skal det være "dd-mm-yy"

håber der er nogen som har den fede løsning ;-)
Avatar billede Six Nybegynder
18. august 2003 - 15:17 #8
har du mulighed for at vise i hvilken sammenhæng den skal bruges ?
Avatar billede andreaspedersen Nybegynder
18. august 2003 - 15:23 #9
Jeg kan forklare det..

Projektet går ud på at brugeren skal kunne uploade nogle dokumenter med nogle tilknyttede informationer så andre nemt kan finde frem til dokumentet igen.

disse informationer er bl.a. nogle datoer.. "sidste ændring", "løbetid", "kontrakt dato" osv. Nogle af disse datoer fylder jeg ud for brugeren automatisk, men andre af dem skal manuelt indtastes.

Jeg bruger så DateValue for at brugen kan få lov at bruge hvad han/hun nu syntes er nemmest.. men hvis nu der er en indtastningsfejl får jeg den browser fejl når jeg forsøge at konvertere datoen.......... altså ville det være genialt hvis jeg kunne "fange" den fejl og sende brugeren tilbage til formularen med besked om at kontrollere et datofelt.
Avatar billede Six Nybegynder
18. august 2003 - 15:29 #10
hmm jeg har lige læst lidt.

Jeg havde en del problemer første gang jeg skulle trække oplysninger ud fra en access database med dato'er.
Jeg opdagede, at det var fordi dato'er kræver # (ligesom strenge/tekst kræver ' og tal skal være uden).

Eksempel:

strQuery= "SELECT Dato, Begivenhed, Starttid FROM Begivenheder WHERE Dato = #" & dtmDato & "# ORDER BY Starttid;"

Lånt fra: http://activedeveloper.dk/forum/forum.asp?mid=30286

Kan det måske løse problemet ?
Avatar billede andreaspedersen Nybegynder
18. august 2003 - 15:35 #11
nej nej.. :-)

Hvis brugeren indtaster et gyldigt datoformat af den ene eller anden slags, sørge datevalue for en ensretning og derefter gemmer jeg i databasen. Det og udtræk bagefter har jeg ingen problemer med.

JEg har kun et problem hvis nu brugeren taster "13-13-2003" så laver DateValue den før omtalte "type mismatch" fejl, den vil jeg gerne fange og dermed undgå at brugeren får en Explorer fejlside smidt i hovedet... hvis du kigger på idanielsen's indlæg kan du se noget af dem som jeg havde i tankerne, ved bare ikke hvordan man gør!
Avatar billede Six Nybegynder
18. august 2003 - 15:43 #12
ok.

Kunne det så ikke tænkes at du laver f.eks. satte enkelte vars. f.eks. mm dd yy

og så validere mm og dd

if mm > 13
elseif Response.Redirect "jada.dk"

?
Avatar billede Six Nybegynder
18. august 2003 - 15:44 #13
håber du fanger, hvad jeg mener.. den er lidt kryptisk nu jeg sidder og læser den.
Avatar billede Slettet bruger
18. august 2003 - 17:44 #14
Det kan godt være jeg ikke har fattet et klap, men hvad med IsDate()?

http://www.w3schools.com/vbscript/func_isdate.asp
Avatar billede andreaspedersen Nybegynder
19. august 2003 - 08:26 #15
Selvfølgelig...!!..

tak, tak og TAK!
Avatar billede Slettet bruger
19. august 2003 - 10:41 #16
Det var så lidt.  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB