Avatar billede webbe Nybegynder
15. april 2004 - 09:19 Der er 9 kommentarer og
1 løsning

Antallet af felter og værdier passer ikke sammen

Hej eksperter

Jeg får en "underlig" fejlmeddelelse når jeg forsøger at indsætte en linie i min tabel om at antallet af felter og værdier ikke passer sammen, selv om de rent faktisk gør det.

Problemet opstår dog kun når jeg indtaster et kommatal i et af mine formularfelter - hvilket jeg ikke forstår noget af.

Min formular ser sådan ud:

<form method="post" action="" name="form">
                            <input type="hidden" name="knr" value="<%=bid%>">
                            <input type="hidden" name="vnr" value="<%=rs("VNR")%>">
                            <input type="hidden" name="bsession" value="<%=bsession%>">
                            <input type="text" name="antal" class="boxbatch">
                            &nbsp;
                            <input type="button" name="ok" class="knapl" value="Føj til kurv" onClick="batchadd();">
                            <br>
                            Vejl pris:
                            <input type="text" name="vejl" class="boxbatch">
                          </form>

Og mit asp-script:

knr = request.querystring("knr")
vnr = request.QueryString("vnr")
antal = request.QueryString("antal")
vejl = CInt(request.QueryString("vejl"))

sqlBatchLine = "INSERT INTO Ordrebatch (BKNR,BVNR,BAntal,BPris,BCD) VALUES ("&""&knr&","&vnr&","&antal&","&vejl&",'"&Date()&"')"
Conn.Execute(sqlBatchLine)

Hvad fa.... er der galt???
Avatar billede fennec Nybegynder
15. april 2004 - 09:22 #1
ændre , tal til .

replace("dine tal",",",".")
Avatar billede ellebaek Nybegynder
15. april 2004 - 09:23 #2
Du skal huske at hvis du har med tekst at gøre skal der '' omkring i din sql...
Men prøv det her, det virker muligvis..

knr = CInt(request.querystring("knr"))
vnr = CInt(request.QueryString("vnr"))
antal = CInt(request.QueryString("antal"))
vejl = CInt(request.QueryString("vejl"))


sqlBatchLine = "INSERT INTO Ordrebatch (BKNR,BVNR,BAntal,BPris,BCD) VALUES ("&knr&","&vnr&","&antal&","&vejl&",'"&Date()&"')"
Conn.Execute(sqlBatchLine)

Hvordan ser hele din fejl ud ?
Avatar billede webbe Nybegynder
15. april 2004 - 09:27 #3
min sql er rigtig nok (har taget højde for talpinger og den slags) - for når jeg indtaster et heltal (uden komma) fungerer scriptet som det skal.

prøver lige fennec's løsning - selv om jeg er i tvivl om hvordan min Access DB vil reagere på det.
Avatar billede fennec Nybegynder
15. april 2004 - 09:30 #4
Jeg vil gætte på at det skal være sådan:

sqlBatchLine = "INSERT INTO Ordrebatch (BKNR,BVNR,BAntal,BPris,BCD) VALUES ("&knr&","&vnr&","&antal&","& replace(vejl,",",".")&",'"&Date()&"')"
Avatar billede webbe Nybegynder
15. april 2004 - 09:33 #5
fennec:

din løsning virkede næsten - nu melder den ikke fejl, men fjerner bare det der står efter kommaet/punktumet - kan jeg på nogen måde løse det!?
Avatar billede fennec Nybegynder
15. april 2004 - 09:36 #6
har du angivet typen i databasen til at være komma-tal, ellers afrunder databasen selv talet?
Avatar billede webbe Nybegynder
15. april 2004 - 09:39 #7
Har angivet feltet til at være tal og heltal, med to decimaler - skal det angives som decimal istedet for heltal?
Avatar billede webbe Nybegynder
15. april 2004 - 09:43 #8
Jeps - det skulle jeg.

Tak for hjælpen fennec - pointene er dine.
Avatar billede fennec Nybegynder
15. april 2004 - 09:45 #9
det skulle jeg også lige til at sige....
Avatar billede fennec Nybegynder
15. april 2004 - 10:20 #10
du kan også bruge "Reelt tal", det fylder ikke så meget som "decimal" i databasen. Den kan dog "kun" have 7 tal efter kommaet, hvor "decimal" kan have 28
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