Avatar billede dtm Nybegynder
23. november 2003 - 21:13 Der er 35 kommentarer og
3 løsninger

dividere og gange i en tilføj-formular

Hvor kan dette ikke lade sig gøre?...

spillerid=Request.Form("spillerid")
navn=Request.Form("navn")
dato=Request.Form("dato")
klasse=Request.Form("klasse")
spillested=Request.Form("spillested")
score=Request.Form("score")
indgange=Request.Form("indgange")
snit=Request.Form("snit")
hojesteserie=Request.Form("hojesteserie")

Set Query = Conn.Execute("SELECT * From spiller WHERE id = " & spillerid & " ")

sql="insert into spillerresult (spillerid,navn,dato,klasse,spillested,score,indgange,snit,procent,hojesteserie) values ('"& spillerid &"','"& navn &"','"& dato &"','"& klasse &"','"& spillested &"','"& score &"','"& indgange &"','"& snit &"','"& snit/Query("aarssnit")*100 &"','"& hojesteserie &"');"

Conn.execute(sql)


Mit problem er der hvor jeg har skerevet>> snit/Query("aarssnit")*100

Hvordan for jeg den til at gøre det??..
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:19 #1
prøv:
cint(snit)/cint(query("arrssnit))*100
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:19 #2
CInt laver en String (streng) om til en Integer (tal).
Du kan jo ikke dividere strenge :)
Avatar billede dtm Nybegynder
23. november 2003 - 21:30 #3
ja det virker.... Men resultatet bliver ikke det samme som hvis jeg regner det ud på en lommeregner...
den får resultatet til 173,91
og lommeregneren kommer frem 174,29

regne stykker den ligger sammen er 40/22,95*100
Avatar billede nmh Nybegynder
23. november 2003 - 21:39 #4
Dit problem er også at 22,95 ikke er et heltal.
Skriv derfor
cint(snit)/cdbl(query("arrssnit))*100
Avatar billede netro Nybegynder
23. november 2003 - 21:39 #5
Brug CdBl
Avatar billede nmh Nybegynder
23. november 2003 - 21:40 #6
Cint("173,92") bliver 174, og så fås netop 173,91.
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:41 #7
det er ved nok bedst at bruge:
cdbl(snit)/cdbl(Query("aarssnit"))*100
Avatar billede netro Nybegynder
23. november 2003 - 21:41 #8
Hvis snit ikke er et heltal, ja...
Avatar billede dtm Nybegynder
23. november 2003 - 21:42 #9
for det meste er ingen af dem heltal..... men det kan forekomme....
Avatar billede nmh Nybegynder
23. november 2003 - 21:43 #10
Men der bør også testes på, der ikke kommer et 0 i nævneren.
Er du sikker på, at brugeren faktisk har indtastet et tal og ikke noget, der ikke kan konverteres til et tal.
Avatar billede nmh Nybegynder
23. november 2003 - 21:45 #11
Brug derfor
if IsNumeric(snit) then
  Snit=cdbl(snit)
else
  'gør noget nu, hvor der ikke er tale om et tal.
end if
Tilsvarende for åårssnit
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:46 #12
"Hvis snit ikke er et heltal, ja..." :)
Det var jo noget ligende der ødelage mit CInt :)
Avatar billede dtm Nybegynder
23. november 2003 - 21:47 #13
et 0 ?? er ikke helt med på hvad du mener....

aarssnit, er næsten aldrig et heltal, men det kan ske.....
snit, kan oftere forekomme at være et nul.

De vil adrig nogensinde være et 0....

Har nu indsat cdbl istedet, og nu passer udregningen.... :-)
Avatar billede netro Nybegynder
23. november 2003 - 21:47 #14
Hvis snit ikke har fået tildelt en værdi, skal du først konvertere til en streng, da betingelsen ellers kan returnere sand.

if IsNumeric(CStr(snit)) then
Avatar billede dtm Nybegynder
23. november 2003 - 21:48 #15
ups...

snit, kan oftere forekomme som et heltal...
Avatar billede netro Nybegynder
23. november 2003 - 21:48 #16
Hvis de aldrig er nuk, er der ingen problemer. Du kan som bekendt bare ikke divere med nul.
Avatar billede netro Nybegynder
23. november 2003 - 21:48 #17
nul
Avatar billede dtm Nybegynder
23. november 2003 - 21:49 #18
Alle får tildelt en værdi....
Avatar billede netro Nybegynder
23. november 2003 - 21:49 #19
dividere
Avatar billede netro Nybegynder
23. november 2003 - 21:50 #20
- som er numerisk?
Avatar billede dtm Nybegynder
23. november 2003 - 21:50 #21
jep, det er altid tal der bliver brugt....
Avatar billede netro Nybegynder
23. november 2003 - 21:51 #22
Så er der ingen ko på isen, og du kan nøjes med:

cdbl(snit) / cdbl(Query("aarssnit")) * 100
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:53 #23
Hvilken type er aarssnit i databasen?

dim tmp
tmp = ""

if IsNumeric(snit) then
  if IsNumeric(aarssnit) then
    tmp = cdbl(snit)/cdbl(Query("aarssnit"))*100
  else
    response.write "aarssnit er skal være et tal"
  end if
else
  response.write "snit skal være et tal"
end if

if tmp <> "" then
sql="insert into spillerresult (spillerid,navn,dato,klasse,spillested,score,indgange,snit,procent,hojesteserie) values ('"& spillerid &"','"& navn &"','"& dato &"','"& klasse &"','"& spillested &"','"& score &"','"& indgange &"','"& snit &"','"& snit/Query("aarssnit")*100 &"','"& hojesteserie &"');"

Conn.execute(sql)
conn.close
set conn = nothing
end if
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:53 #24
Skulle have været:

if tmp <> "" then
sql="insert into spillerresult (spillerid,navn,dato,klasse,spillested,score,indgange,snit,procent,hojesteserie) values ('"& spillerid &"','"& navn &"','"& dato &"','"& klasse &"','"& spillested &"','"& score &"','"& indgange &"','"& snit &"','"& tmp &"','"& hojesteserie &"');"

Conn.execute(sql)
conn.close
set conn = nothing
end if
Avatar billede thesurfer Nybegynder
23. november 2003 - 21:58 #25
hvorfor er der et ";" sidst i linie?:

hojesteserie &"');"
Avatar billede dtm Nybegynder
23. november 2003 - 22:03 #26
Jeg har løst min problem takket været jer.... hvem skal have pointene??
Avatar billede thesurfer Nybegynder
23. november 2003 - 22:04 #27
Vi kan vel alle ligge et svar..

Men, skal det der ";" ikke væk?
Avatar billede dtm Nybegynder
23. november 2003 - 22:11 #28
nææ det har altid været der....
Avatar billede thesurfer Nybegynder
23. november 2003 - 22:14 #29
Der skal altså ikke være noget ";" :)
Det er jo ikke JavaScript, det her :)

Se selv:

strSQL = "Insert into personer (Fornavn, Efternavn, Telefon, Foedselsdato) values('Fætter','Guf','99887766','20-04-1964')"
Conn.Execute(strSQL)

Taget fra http://html.dk/tutorials/asp/lektion20.asp
Avatar billede netro Nybegynder
23. november 2003 - 22:28 #30
Det er underordnet, om du afslutter dit statement med et semikolon.
Avatar billede netro Nybegynder
23. november 2003 - 22:29 #31
Så lægger jeg da også et.
Avatar billede dtm Nybegynder
23. november 2003 - 22:33 #32
Er det ikke mest fair, at pointene går til TheSurfer?
Avatar billede nmh Nybegynder
23. november 2003 - 22:37 #33
Her et svar, men jeg synes også thesurfer skal have pointene
(flest i hvert fald)
Avatar billede thesurfer Nybegynder
23. november 2003 - 22:37 #34
Jeg synes at du skulle dele dem..

Jeg var først med CInt, hvilket var en delvis løsning.
nmh kom med cdbl som er en "viderebyggelse" på fejlen/infoen fra CInt.
Hvis man kigger på tidslinien, kan du se at netro også kom med cdbl.
Avatar billede nmh Nybegynder
23. november 2003 - 22:49 #35
takker for point. :o)
Avatar billede dtm Nybegynder
23. november 2003 - 22:51 #36
Jeg takker for hjælpen... :-)
Avatar billede thesurfer Nybegynder
23. november 2003 - 22:58 #37
Takker for points. :)
Avatar billede netro Nybegynder
23. november 2003 - 23:44 #38
Tak :~]
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