Avatar billede swamboo Seniormester
28. august 2003 - 21:22 Der er 22 kommentarer og
1 løsning

Count hjælp - den mangler ping

Jeg forsøger mig med følgende kode - aner ikke om den er rigtig - det er første gang jeg leger med count mm.

sql = "SELECT DISTINCT top 3 dato FROM tabel1 order by dato desc"

set rstemp = conntemp.execute(sql)

    do while not (rstemp.eof or rstemp.bof)

    response.write "<br>" & rstemp("DATO")
   
SQL = "SELECT COUNT(dato) AS Antal FROM tabel1 where dato = "& rstemp("dato")
Set rs = myConn.Execute(SQL)

Response.Write "Der er " & rs("Antal") & " bes&oslash;g denne dag"
   
   
    rstemp.movenext
    loop
    rstemp.close

Men den skriver: Et objekt er obligatorisk: '' til linien Set rs = myConn.Execute(SQL)

Kan denne kode virke? og hvorfor skriver den fejl??
Avatar billede mm12010 Nybegynder
28. august 2003 - 21:28 #1
SQL = "SELECT COUNT(dato) AS Antal FROM tabel1 where dato = #"& rstemp("dato") &"#"
Avatar billede swamboo Seniormester
28. august 2003 - 21:31 #2
Tak mm... Men det giver desværre den samme fejl til næste linie. Et objekt er obligatorisk: ''
Avatar billede nielle Nybegynder
28. august 2003 - 21:33 #3
Du skal bruge den samme connection begge steder. Det ene stede kalder du den med:

set rstemp = conntemp.execute(sql)  ' her hedder den "conntemp"

- og det næste sted med:

Set rs = myConn.Execute(SQL)  ' her hedder den pludselig "myConn"
Avatar billede nielle Nybegynder
28. august 2003 - 21:34 #4
Desuden plejer det at hedde "... count(*) ..."
Avatar billede mm12010 Nybegynder
28. august 2003 - 21:34 #5
hvad skriver denne linie:

response.write "<br>" & rstemp("DATO")
Avatar billede lap Nybegynder
28. august 2003 - 21:36 #6
group by?
Avatar billede swamboo Seniormester
28. august 2003 - 21:40 #7
Tak - selvfølgelig skal der samme connection - men sådan kan det jo gå når man klipper fra forskellige kilder som nybegynder... Men den skriver 0 besøg alle dage - kan det være fordi den tæller dage, og ikke formatet 26-08-03 ??
Avatar billede swamboo Seniormester
28. august 2003 - 21:41 #8
rstemp("DATO") = 26-08-03  (f.eks.)
Avatar billede swamboo Seniormester
28. august 2003 - 21:45 #9
Ok - det virker nu... Tak! nielle - det var vist din fortjeneste...
Er der nogen der ved en let måde at få 28-08-03 = 37861 ???
Avatar billede nielle Nybegynder
28. august 2003 - 21:47 #10
Det skyldes sikkert at der er forskel på hvordan dato formatet ser ud i databasen og i ASP.

Hvis daten i databasen ser sådan her ud: 2003-08-28 så vil rsTemp("dato") se således her ud 8/28/2003 (hvis det er amerikansk). Dermed bliver din 2. SQL-sætning:

SQL = "SELECT count(*) AS Antal FROM tabel1 where dato='" & rsTemp("dato") & "'"

- omdannet til:

SQL = "SELECT count(*) AS Antal FROM tabel1 where dato='8/28/2003'"

- hvilket altid vil give 0 hits.
Avatar billede swamboo Seniormester
28. august 2003 - 21:50 #11
Du har ret... Følgende virker: SQL = "SELECT COUNT(id) AS Antal FROM tabel1 where dato = 37858"    37858 er = 26-08-03, som hvis du laver et datofelt til et talfelt i Excel. Er der en let måde at køre det sammen på??
Avatar billede nielle Nybegynder
28. august 2003 - 21:56 #12
Du kan vist slå dine 2 SQL sætninger sammen til en:

SQL = "SELECT TOP 3 Dato, count(*) AS Antal FROM tabel1 GROUP BY Dato ORDER BY Date DESC"
Avatar billede swamboo Seniormester
28. august 2003 - 22:02 #13
OKAY - men det giver fejlen:
Too few parameters. Expected 1.

Men det kunne være sejt hvis det kunne virke!!!
Avatar billede nielle Nybegynder
28. august 2003 - 22:04 #14
Det der lyder nu ikke som en SQL fejl. Kunne man få lidt flere detaljer?
Avatar billede swamboo Seniormester
28. august 2003 - 22:07 #15
Tabel1 indeholder: ID , DATO , ...
Min kode hedder nu:

<%

dim antal
SQL = "SELECT TOP 3 Dato, count(dato) AS Antal FROM tabel1 GROUP BY Dato ORDER BY Date DESC"

set rstemp = conntemp.execute(sql)
do while not (rstemp.eof or rstemp.bof)

response.write "<br>" & rstemp("DATO")

Response.Write "Der er " & rstemp("Antal") & " bes&oslash;g denne dag"
   
    rstemp.movenext
    loop
    rstemp.close
%>

Har du brug for flere oplysninger??
Avatar billede nielle Nybegynder
28. august 2003 - 22:13 #16
Ret count(dato) til count(*).

Hvilken linje er det som giver anledning til fejlen?
Avatar billede swamboo Seniormester
28. august 2003 - 22:16 #17
Ingen forskel...

Denne linie brokkes der over: set rstemp = conntemp.execute(sql)
Avatar billede swamboo Seniormester
28. august 2003 - 22:17 #18
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/Hjemmesider/test-mappe/admin.asp, linje 19
Avatar billede nielle Nybegynder
28. august 2003 - 22:24 #19
<%
SQL = "SELECT TOP 3 Dato, count(*) AS Antal FROM tabel1 GROUP BY Dato ORDER BY Dato DESC"
set rsTemp = ConnTemp.Execute(SQL)

do while not rsTemp.eof
  Response.Write "<br>" & rsTemp("DATO")
  Response.Write "Der er " & rsTemp("Antal") & " bes&oslash;g denne dag"
  rsTemp.MoveNext
loop
rsTemp.Close
%>
Avatar billede nielle Nybegynder
28. august 2003 - 22:25 #20
Der var i hvert fald en af "Dato" flerene som var blevet til et "Date" i stedet. Min fejl.
Avatar billede swamboo Seniormester
28. august 2003 - 22:28 #21
DU er simpelthen bare SÅ dygtig!!!! Er helt ked af at du kun fik sølle 15 point for al dit arbejde!!!! Havde næsten lyst til at åbne et spg. mere for at give dig 50 point mere...!!!

1000 tak - jeg vil nærlæse koden, så jeg kan fatte hvad der sker. 1000 tak!!!
Avatar billede swamboo Seniormester
28. august 2003 - 22:29 #22
Jeg glemte helt at skrive at nu virker det HELT efter mit ønske!!!!
endnu en gang 1000 tak!!!
Avatar billede nielle Nybegynder
28. august 2003 - 22:30 #23
Takker, men nej 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