Avatar billede goose Nybegynder
12. oktober 2004 - 17:58 Der er 11 kommentarer og
1 løsning

Opdaterer dato felt i access database med ingenting

Lyder måske lidt kryptisk ;o)
Jeg har en formular hvori man bl.a. kan indtaste en dato, men den er ikke tvungen.

Når jeg så opdaterer min database får jeg en fejlmeddelse hvis der ingen dato er opgivet.
Såfremt datofeltet er udfyldt er der ingen problemer.

Jeg har prøvet lidt af hvert:

if slut_dato_aktiv = "checked" then
slut_dato = request.form("slut_dato")
slut_dato_inaktiv = ""
slut_dato_aktiv = "checked"
else
slut_dato = NULL
slut_dato_inaktiv = "checked"
slut_dato_aktiv = ""
end if

- eller

if slut_dato_aktiv = "checked" then
slut_dato = request.form("slut_dato")
slut_dato_inaktiv = ""
slut_dato_aktiv = "checked"
else
slut_dato = ""
slut_dato_inaktiv = "checked"
slut_dato_aktiv = ""
end if

- eller

if slut_dato_aktiv = "checked" then
slut_dato = request.form("slut_dato")
slut_dato_inaktiv = ""
slut_dato_aktiv = "checked"
else
' slut_dato = NULL
slut_dato_inaktiv = "checked"
slut_dato_aktiv = ""
end if

- men alle sammen giver fejl :o(

Nogen guldkorn ?

/Goose
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 18:10 #1
Problemet må da ligge i tabellen. Feltet er vel sat til NOT NULL ?

Nu er jeg ikke den vildeste ASP haj, men det lyder da lidt "åndssvagt" med

if slut_dato_aktiv = "checked" then
...
...
slut_dato_aktiv = "checked"

Giver det ikke sig selv ?

Hvad siger fejlmeddelsen ? :)
Avatar billede goose Nybegynder
12. oktober 2004 - 18:19 #2
Det kan godt være det lyder åndsvagt, men det er fordi der er nogle betingelser der skal være opfyldt, og den del virker skam godt nok.

Fejlmeddelse: Data type mismatch in criteria expression.

Datofeltet er af typen kort datoformat og feltet er sat til ikke at være obligatorisk, hvilket i min termologi betyder at den tillader nulværdier.

Som sagt er det kun hvis datofeltet ikke er udfyldt det fu*ker op.

/Goose
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 18:26 #3
Her er forklaringen:

http://www.xlinesoft.com/asprunner/docs/error_data_type_mismatch_in_criteria_expression.htm

Løsning giver de ikke, men jeg vil da anbefale dig at skifte datatype på feltet :)
Avatar billede peter_hansen Nybegynder
12. oktober 2004 - 18:32 #4
man kunne også lave en if sætning
så kan du bare undlade at tilføje data til dette felt

i din SQL update eller Insert

lidt lige som

If IsDate(SlutDato) then
strSQL = "update bla bla
else
strSQL = "update bla bla
end if
Avatar billede goose Nybegynder
12. oktober 2004 - 18:32 #5
Ja jeg kender godt fejlbeskeden, og det ville unægtelig være lidt træls at bruge noget andet end datotypen når jeg senere skal lave udtræk i datoorden :o(

Jeg venter lige og ser om der ikke skulle dumpe en forbi med den gyldne løsning.

/Goose
Avatar billede goose Nybegynder
12. oktober 2004 - 18:35 #6
peter_hansen >> det er under opdatering af databasen det går galt, hvis der f.eks. i forvejen står en dato som jeg gerne vil have fjernet ved en update, så er det jeg har problemet når jeg ikke kan overskrive den eksisterende dato med NULL f.eks.

/Goose
Avatar billede peter_hansen Nybegynder
12. oktober 2004 - 18:37 #7
hvis det er fordi du vil have dem i dato orden

kunne du lave et true/false felt i database for aktiv eller ikke aktiv
som du så kan update, så når du trækker dato ud kan du sætte kritere
where aktiv =true order by dato
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 18:43 #8
Hvis du laver din egen dato "yy-mm-dd" og bruger varchar i stedet for, eller yymmdd og bruger int, vil det jo virke fint. Det er da i hvert fald en løsning :)
Avatar billede peter_hansen Nybegynder
12. oktober 2004 - 18:48 #9
en anden løsning kunne også være at update med en dummy dato

feks 12-12-1900

når du så sorter kan du sætte kriterie

where dato not='12-12-1900' order by dato
Avatar billede goose Nybegynder
12. oktober 2004 - 18:58 #10
Ja det blev perter_hansen 's løsning med kombinationen af en "fake" dato.

Smider du lige et svar ?

/Goose
Avatar billede peter_hansen Nybegynder
12. oktober 2004 - 19:21 #11
takker, og sjovt nok egentligt at man ikke kan nulstille det.
Avatar billede goose Nybegynder
12. oktober 2004 - 19:26 #12
Ved ikke hvor sjovt det er, jeg syntes det er pi**e træls ;o)

/Goose
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