Avatar billede zetn Nybegynder
14. juni 2003 - 09:56 Der er 17 kommentarer og
1 løsning

Kode Hjælp?

Jeg skal have have plusset en del tal fra en database, men tallene står som 40%,89% osv. Så jeg skal først fjerne % tegnet, men den gider ikke rigtig:

strSQL2 = "select * from elementer where projektid = ' "  & id & " '"
set rs5 = conn.execute(strSQL2)

pro = "0"

do while not rs5.eof
if rs5("status") = "Afsluttet" then
sProcent = "100%"
iTal = Int(Left(sProcent, Len(sProcent)-1))
else
sProcent = rs("status")
iTal = Int(Left(sProcent, Len(sProcent)-1))
end if

pro = "" & pro & "+" & iTal & ""

rs5.movenext
loop

Jeg får bare udtrækket 0....
Avatar billede eagleeye Praktikant
14. juni 2003 - 11:45 #1
Det lyder underligt for enten skulle den komme ind i then eller else delen for så vidt jeg kan ser er kode OK...

Dog kan jeg se i SQL at du har ' " & id & " '"
Altså et mellemrum mellem ' og " og ligeledes i den anden ende, så prøv at fjerne det så SQL bliver:


strSQL2 = "select * from elementer where projektid = '"  & id & "'"
Avatar billede eagleeye Praktikant
14. juni 2003 - 11:45 #2
Eller vil den lede efter mellemrun så tallet og så mellemrum: ' 2 '
Og ikke kun tallet: '2'
Avatar billede zetn Nybegynder
14. juni 2003 - 11:54 #3
Nu har jeg rettet i den, men får udfaldet:
0+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+100+95+100+60+100+100+0+100+0+100+100+100+100+100+100+100+100+100+95+100+100+100+0+100+100+100+100+100+100+0+100+0+50

Jeg skulle gerne have dem plusset så jeg kun får ét udtal
Avatar billede eagleeye Praktikant
14. juni 2003 - 11:57 #4
Så skal linjen:

pro = "" & pro & "+" & iTal & ""

Laves om til dette, ellers ligges de i en streng:

pro = pro + iTal
Avatar billede zetn Nybegynder
14. juni 2003 - 11:59 #5
Den melder fejl, kan ikke se hvilken da ISS ikke virker og jeg bliver nød til at uploade og kan ikke se hvad fejlen er så.
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:01 #6
Prøv også at ændre

pro = "0"

Til, så pro også starter med at være et tal:

pro = 0
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:02 #7
Ang. fejlen, prøv at slå denne fra i IE, så skulle du gerne få en bedre fejl kode/beskrivelse:

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede zetn Nybegynder
14. juni 2003 - 12:02 #8
Så har jeg fået det til at virke
Avatar billede zetn Nybegynder
14. juni 2003 - 12:06 #9
Så mangler jeg bare gennemsnittet, dette har jeg dog osse lavet.

91.6666666666667 <-- Kan jeg ikke gøre så det bliver rundet op til 92. og hvis det var 91.45 så blev det nedrundet til 91. ?

kan man det?
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:10 #10
Så skal du bruger round i stedet for Int i denne linje:
iTal = Int(Left(sProcent, Len(sProcent)-1))


Sådan her ,0 angiver antal tal efter komma'et:
iTal = Round(Left(sProcent, Len(sProcent)-1),0)
Avatar billede zetn Nybegynder
14. juni 2003 - 12:15 #11
pro = "0"

do while not rs5.eof
if rs5("status") = "Afsluttet" then
sProcent = "100%"
iTal = Round(Left(sProcent, Len(sProcent)-1),0)
else
sProcent = rs5("status")
iTal = Round(Left(sProcent, Len(sProcent)-1),0)
end if

pro = pro + iTal

rs5.movenext
loop

proc = prot / rs4("antal")


Så bliver proc = 0

det burde gerne blive til 92 jo :)
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:20 #12
Men det antal du skal divedere med skal være antallet at tal som er lagt sammen så man må tælle dem:


pro = "0"
antal = 0
do while not rs5.eof
if rs5("status") = "Afsluttet" then
sProcent = "100%"
iTal = Round(Left(sProcent, Len(sProcent)-1),0)
else
sProcent = rs5("status")
iTal = Round(Left(sProcent, Len(sProcent)-1),0)
end if

pro = pro + iTal
antal = antal + 1

rs5.movenext
loop

proc = prot / antal
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:21 #13
Der står også prot og ikke pro i linje ;)

proc = prot / rs4("antal")

Det skal være:

proc = pro / antal   

eller hvis du har antallet i rs4("antal")

proc = pro / rs4("antal")
Avatar billede zetn Nybegynder
14. juni 2003 - 12:21 #14
antallet bliver talt her:

strSQL = "SELECT count(elementid) as antal from elementer WHERE projektid = '" & id & "'"
Set rs4 = Conn.Execute(strSQL)

det er 72
Avatar billede zetn Nybegynder
14. juni 2003 - 12:23 #15
Får stadig: 91,6666666666667%
Avatar billede eagleeye Praktikant
14. juni 2003 - 12:31 #16
Ja det gennemsnittet der skal du også havde round på:



proc = Round(pro / rs4("antal"),0)
Avatar billede zetn Nybegynder
14. juni 2003 - 12:35 #17
Udemærket eagleeye...

Du har virkelig fortjent de point her...

Tak for hjælpen!

med venlig hilsen
WUlff.JJ
Avatar billede thmi99 Nybegynder
14. juni 2003 - 13:49 #18
Hej eagleeeye

Hvorfor svare du dog ikke mine mails

Mvh Thomas
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