Hej! Resultatet sparas ner i en enkel access-tabell som innehåller language, ip, time etc. Helt flat. SQL-satsen blir väl då: Då skulle det bli så här Mellanslag saknas efter Antal och tblsession. Ändrade den till detta: Då måste det vara felaktigt namn på fältet eller tabellen eller något fel med din anslutning conn. Använder samma koppling i JAg chansar på att det kan var så att Language är ett reserverat ord: Det löste det hela! Haka på HAVING COUNT(*) > 9 Ok det löste det hela. Tackar för alla bidrag. sidan används bara för att jag ska kolla vilka språk som är intressanta att översätta sajten till. Om den är långsam har ingen betydelseRECORDCOUNT
Har en databas som sparar ner besök på våra hemsidor. Nu skulle jag vila skapa en sida som räknar antalet besökare per inställt språk. Endast för internt bruk
Hur skriver jag en sådan SQL-sats och hur gör jag sidan för att visa resultatet.
Kolumnen i tabellen TblUsers heter Language
Tack på förhandSv: RECORDCOUNT
Sv: RECORDCOUNT
<code>SELECT Language AS Språk, COUNT(Language) AS Antal FROM Tabell GROUP BY Language</code>
Det recordset du då har fått blir nåt sånt här:
<code>Språk Antal
Svenska 3
Finska 2
Danska 6</code>
Sedan snurrar du igenom det och visar det på din sida:
<code>If Not rst.BOF AND Not rst.EOF Then
rst.MoveFirst
Do
Response.Write rst("Språk") & ", " & rst("Antal")
rst.MoveNext
Loop Until rst.EOF
End If
rst.Close</code>
Mvh, JanneSv: RECORDCOUNT
COUNT(*) funkar väl om inte bättre?
<code>
strSQL = "SELECT Language, COUNT(*) AS Antal" & vbCrLf & _
"FROM Tabell" & vbCrLf & _
"GROUP BY Language"
</code>
Sedan är det inte nödvändigt med movfirst. Viket, om inta jag misstar mig, ger fel om man t.ex. använder en MoveForward cursor. Vilket är standard.
Detta borde funka lika väl:
<code>
Set rst = con.Execute(strSQL)
If rst.EOF Then
Response.Write "Det finns inga poster i databasen"
Else
Do
Response.Write rst("Language") & ", " & rst("Antal")
rst.MoveNext
Loop Until rst.EOF
End If
rst.Close
Set rst = Nothing
</code>
Får ge dig en komplimang för att du är en av de få som använder möjligheten att placera vikoret efter en Do Loop.Sv: RECORDCOUNT
Men detta ger unspecified error in line 21 som är conn.Execute
Någon som ser felet?
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "D:/clients/bobas.se/azatel.se/wwwroot/sitelog/data/Sitelog.mdb"
strSQL = "SELECT Language, COUNT(*) AS Antal" & vbCrLf & _
"FROM tblSession" & vbCrLf & _
"GROUP BY Language"
Set rst = conn.Execute(strSQL)
If rst.EOF Then
Response.Write "Det finns inga poster i databasen"
Else
Do
Response.Write rst("Language") & ", " & rst("Antal")
rst.MoveNext
Loop Until rst.EOF
End If
rst.Close
Set rst = Nothing
%>Sv: RECORDCOUNT
Vad är det för nytta med vbcrlf?
strSQL = "SELECT Language, COUNT(*) AS Antal FROM tblSession GROUP BY Language"Sv: RECORDCOUNT
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "D:/clients/bobas.se/azatel.se/wwwroot/sitelog/data/Sitelog.mdb"
strSQL = "SELECT Language, COUNT(*) AS Antal FROM tblSession GROUP BY Language"
Set rst = conn.Execute(strSQL)
If rst.EOF Then
Response.Write "Det finns inga poster i databasen"
Else
Do
Response.Write rst("Language") & ", " & rst("Antal")
rst.MoveNext
Loop Until rst.EOF
End If
rst.Close
Set rst = Nothing
%>
Fortfarande samma fel
AndersSv: RECORDCOUNT
Sv: RECORDCOUNT
http://www.azatel.se/sitelog/sitelog.asp
Det är en sammanfattning av denna sida jag vill skapa
Kan det vara något med cursor?Sv: RECORDCOUNT
<code>
strSQL = "SELECT [Language], COUNT(*) AS [Antal]" & vbCrLf & _
"FROM [tblSession]" & vbCrLf & _
"GROUP BY [Language]"
</code>Sv: RECORDCOUNT
Kan man på något sätt begränsa visningen till endast de Language som det finns 10 eller fler avSv: RECORDCOUNT
Tror iofs att den räknar count(*) en gång till då men med så få poster gör det nog inget.
För framtiden kan det kanske vara värt att kika på nån lösning.
Hade för mig att man kan använda en 2:a för att använda kolumn 2 (att använda "Antal" går inte)...
/JohanSv: RECORDCOUNT