Avatar billede moviez Nybegynder
19. juli 2001 - 12:46 Der er 13 kommentarer og
1 løsning

Sum ?

det er underligt at det havde altid virket på denne måde, men nu virker den ik mere ?

sql = \"SELECT SUM(alder),COUNT(*) FROM bruger where kon=\'kvinde\' and godkendt=true\"

fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Cannot have Memo, OLE, or Hyperlink Object fields in aggregate argument (alder).
Avatar billede does Nybegynder
19. juli 2001 - 12:50 #1
Har du ikke tabel strukturen du kan vise mig ??
Avatar billede nute Nybegynder
19. juli 2001 - 12:51 #2
din kolonne \'alder\' er ikke et numerisk felt.

/nute
Avatar billede moviez Nybegynder
19. juli 2001 - 12:51 #3
bruger [tabel]
brugernavne
password
kon (mand,kvinde)
alder (1,2,3,4,5 osv)
godkendt (ja/nej)
Avatar billede moviez Nybegynder
19. juli 2001 - 12:53 #4
det virkede nute :o)
Avatar billede moviez Nybegynder
19. juli 2001 - 12:56 #5
hvordan kan jeg så beregne hvor mange kvinde der har registere sig i procent ?

sql = \"SELECT SUM(kvinde),COUNT(*) FROM bruger where kon=\'kvinde\' and godkendt=true\"
Avatar billede nute Nybegynder
19. juli 2001 - 13:00 #6
jeg har aldri sett den måten å bygge opp en SQL før, men hvis det fungerer så er jo det ok :)

Jeg ville gjort følgende:

<%
sql = \"SELECT SUM(kvinde) AS kvTotal,COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"

deretter kan du regne ut prosent:

prosent = (RS(\"kvTotal\") * 100) / RS(\"total\")

/nute
Avatar billede moviez Nybegynder
19. juli 2001 - 13:06 #7
mon du mener det på denne måde ??

            <%
  Set Rs = Server.CreateObject(\"ADODB.Connection\")
  DBPath = \"DBQ=\" & server.mappath(\"database.mdb\")
  Rs.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; \" & DBPath
  sql = \"SELECT SUM(kvinde) AS kvTotal,COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"
  prosent = (RS(\"kvTotal\") * 100)
%>
<%=RS(\"total\")%>

Fejl:
Microsoft VBScript runtime error \'800a01c2\'

Wrong number of arguments or invalid property assignment: \'rs\'
Avatar billede nute Nybegynder
19. juli 2001 - 13:12 #8
hmmm....først vil jeg nevne at du bruker litt misvisende navn på dine variabler. Normalt så bruker man variabelnavnet RS til et RecordSet object, ikke et Connection object, men....det er du selv om...

Jeg ville gjort følgende:

dbConn = \"SERVER=local; DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"database.mdb\")
Set Conn = Server.CreateObject(\"ADODB.Connection\")

sql = \"SELECT SUM(kvinde) AS kvTotal,COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"
 
Set RS = Conn.Execute( sql )

prosent = prosent = (RS(\"kvTotal\") * 100) / RS(\"total\")

<%= prosent %>

/nute
Avatar billede moviez Nybegynder
19. juli 2001 - 13:15 #9
den giver stadig fejl:

ADODB.Connection error \'800a0e78\'
Unknown runtime error

jeg tror nok der er noget glat her:
sql = \"SELECT SUM(kvinde) AS kvTotal,COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"
Avatar billede nute Nybegynder
19. juli 2001 - 13:23 #10
som jeg skrev...jeg har aldri sett den måten å bygge en SQL på. Hvis jeg skulle skrive det samme, så hadde jeg gjort følgende:

dbConn = \"SERVER=local; DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"database.mdb\")
Set Conn = Server.CreateObject(\"ADODB.Connection\")

sqlKvinner = \"SELECT SUM(kvinde) AS kvTotal FROM bruger where kon=\'kvinde\' and godkendt=true\"
sqlTotal = \"SELECT COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"

Dim kvTotal, total
Set RS = Conn.Execute( sqlKvinner )
kvTotal = RS(\"kvTotal\")
Set RS = Conn.Execute( sqlTotal )
total = RS(\"total\")

deretter kan du prøve å skrive ut kvTotal og total for å se om du har noen verdier i dem. Hvis du ikke har noen verdier i dem, så er det noe galt med din(e) sql statements og dette vil generere en runtime error...

/nute
Det er en penere måte å gjøre det på.
Avatar billede moviez Nybegynder
19. juli 2001 - 13:30 #11
nu er jeg ik med, hvilken en skal jeg bruge...kan du ik lave den til mig så den ser sådan ud eks.

<% blhalbjasd %>
<%=ialt%>

på forhånd tak for hjælpen !
Avatar billede nute Nybegynder
19. juli 2001 - 13:34 #12
hvis jeg skulle finne prosent av kvinner ut fra en total, så ville jeg gjort sånn:

<%
dbConn = \"SERVER=local; DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"database.mdb\")
Set Conn = Server.CreateObject(\"ADODB.Connection\")

sqlKvinner = \"SELECT SUM(kvinde) AS kvTotal FROM bruger where kon=\'kvinde\' and godkendt=true\"
sqlTotal = \"SELECT COUNT(*) AS total FROM bruger where kon=\'kvinde\' and godkendt=true\"

Dim kvTotal, total
Set RS = Conn.Execute( sqlKvinner )
if( NOT RS.EOF ) then
  kvTotal = RS(\"kvTotal\")
else
  kvTotal = 0
end if
Set RS = Conn.Execute( sqlTotal )
if( NOT RS.EOF ) then
  total = RS(\"total\")
else
  total = 0
end if

response.write \"Kvinner: \" & kvTotal
response.write \"Total: \" & total
response.write \"Prosent kvinner: \" & ( kvTotal * 100 ) / total
%>

/nute
Avatar billede moviez Nybegynder
19. juli 2001 - 14:35 #13
den viser stadig fejl:

ADODB.Connection error \'800a0e78\'
Unknown runtime error



Avatar billede nute Nybegynder
19. juli 2001 - 14:38 #14
gir den ikke et hint om i hvilken linje den gir feil i ? Hvis den ikke gjør det, så fjern en og en linje fra bunnen. Start med å fjerne linjen:
response.write \"Prosent kvinner: \" & ( kvTotal * 100 ) / total

For å se hvor feilen oppstår. Jeg har på fornemmelsen av at det nettopp er denne linje som skaper problemer. Hvis det er denne linje, så prøv å bytte ut:

kvTotal = RS(\"kvTotal\")
med
kvTotal = CInt(RS(\"kvTotal\"))

og

total = RS(\"total\")
med
total = CInt(RS(\"total\"))

/nute


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