Avatar billede xtremer Nybegynder
11. august 2002 - 14:39 Der er 17 kommentarer og
2 løsninger

Count af antal søgeresultater der er fundet

Hvordan tæller man hvor mange resultater der er fundet på en søgning i en access database ???
Avatar billede kovalt Nybegynder
11. august 2002 - 15:44 #1
SELECT count(den kolonne der skal tælles) as AntalHits

Taller står herefter i kolonnen en AntalHits
Avatar billede xtremer Nybegynder
11. august 2002 - 16:14 #2
Jeg skal ikke tælle en kolonne, med de søge resultater der blev fundet på en bestemt søgning.
Avatar billede mugs Novice
11. august 2002 - 17:32 #3
Hvis du vil tælle det antal poster der opfylder indholdet (værdien), af eet eller flere felter i din formular kan du bruge funktionen Dcount.
Avatar billede xtremer Nybegynder
11. august 2002 - 17:46 #4
Har ikke så meget forstand på det, så kan du ikke skære det ud i pap for mig hvordan jeg skal sætte det ind i denne kode:

' Siden med søgeresultater

' Database connection
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("links.mdb")
' Henter søgeorden fra formularen
strKeyword = Trim(Request.Form("søgeord"))

If Len(strKeyword) = 0 Then
' Hvis der ikke er skrevet i formularen sendes brugeren tilbage
    Response.Clear
    Response.Redirect ("7_soeg_0.shtml")
Else
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT * FROM links WHERE"
strSQL = strSQL & " (godkendt = 'ja') AND ("
strSQL = strSQL & " (id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (hits LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (søgeord LIKE '%" & strKeyword & "%'))"

        Response.Write "<tr><td width=""100%"" colspan=""2""><font size=""1""><b>Søgeresultater for  » </b>" & strKeyword & "</b></font></td></tr>"


' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
' Hvis søgningen gav resultat
    Do While Not rs.EOF
If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If
        Response.Write "<tr><td valign=top><div class=""header1""><font size=1><b><a href=""links.asp?mode=id&id=" & rs("ID") & """

target=""_self"">" & rs("Navn") & "</a></b></div><br>" & rs("Beskrivelse") & "<br><br><i>Denne side har der været besøgt <b>" & rs("Hits") & "

gange</i></b></font></td></tr>"

        rs.MoveNext
Avatar billede mugs Novice
11. august 2002 - 17:49 #5
Beklager, har ingen forstand på ASP eller hvad det nu er. Måske du skulle oprette spørgsmålet i en anden kategori?
Avatar billede hossein Nybegynder
11. august 2002 - 18:57 #6
Hvis du har ikke side paging så:
Response.Write "Total record som blev fundet: " & " Rs.recordCount & "<br>"
Avatar billede xtremer Nybegynder
11. august 2002 - 19:33 #7
Hej Hossein

Kan ikke rigtigt få det til at virke, hele scriptet ser således ud:

<%
strMode = Request.Querystring("mode")
select case strMode
case "id"

Response.Buffer = True

' Her opdateres hits når brugeren bliver sendt til et link
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("links.mdb")
If Request.QueryString("id") <> "" Then
    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "SELECT * FROM links WHERE (ID = " & Request.QueryString("id") & ")"
    rs.Open strSQL, myConn, 1, 3
    If Not (rs.BOF Or rs.EOF) Then
        rs("Hits") = rs("Hits") + 1
        strURL = rs("URL")
        rs.Update
        rs.Close
        myConn.Close
        Set rs = Nothing
        Set myConn = Nothing
        Response.Clear
        Response.Redirect(strURL)
    End If
End If
%>

<% case "search"
' Siden med søgeresultater

' Database connection
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("links.mdb")
' Henter søgeorden fra formularen
strKeyword = Trim(Request.Form("søgeord"))

If Len(strKeyword) = 0 Then
' Hvis der ikke er skrevet i formularen sendes brugeren tilbage
    Response.Clear
    Response.Redirect ("7_soeg_0.shtml")
Else
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT * FROM links WHERE"
strSQL = strSQL & " (godkendt = 'ja') AND ("
strSQL = strSQL & " (id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (hits LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (søgeord LIKE '%" & strKeyword & "%'))"

        Response.Write "<tr><td width=""100%"" colspan=""2""><font size=""1""><b>Søgeresultater for  » </b>" & strKeyword & "</b></font></td></tr>"
Response.Write "Total record som blev fundet: " &  Rs.recordCount & "<br>"


' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
' Hvis søgningen gav resultat
    Do While Not rs.EOF
If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If
        Response.Write "<tr><td valign=top><div class=""header1""><font size=1><b><a href=""links.asp?mode=id&id=" & rs("ID") & """

target=""_self"">" & rs("Navn") & "</a></b></div><br>" & rs("Beskrivelse") & "<br><br><i>Denne side har været besøgt <b>" & rs("Hits") & "

gange</i></b></font></td></tr>"

        rs.MoveNext
    Loop

Else
response.redirect ("7_soeg_1.shtml")
End If

rs.Close
Set rs = Nothing


end select %>
Avatar billede xtremer Nybegynder
11. august 2002 - 19:36 #8
For følgende fejl:

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/DestinationSamsoe/dsmenusoeg.asp, line 175, column 75
Response.Write "Total record som blev fundet: " & " Rs.recordCount & "<br>"
Avatar billede hossein Nybegynder
11. august 2002 - 19:49 #9
Prøv det, skal være efter If not:
'Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Response.Write "Total record som blev fundet: " &  Rs.recordCount & "<br>"

skal virke, ellers kan du sende til mig.
Avatar billede xtremer Nybegynder
11. august 2002 - 19:57 #10
Nu virker scriptet men den siger : Total record som blev fundet: -1

Selvom den fandt 3 poster på søgningen ??
Avatar billede hossein Nybegynder
11. august 2002 - 20:47 #11
Det eneste du skal ændre er: If not rs.eof then
Avatar billede xtremer Nybegynder
11. august 2002 - 21:03 #12
Giver desværre samme resultat
Avatar billede hossein Nybegynder
11. august 2002 - 21:16 #13
det er noget med din 1. if og din do while. Vi fjerner i første omgang do while sætningen. Også

rs.movenext
end if (og ikke loop). prøv
Avatar billede hossein Nybegynder
11. august 2002 - 21:17 #14
rs.movenext
end if
next
Avatar billede hossein Nybegynder
11. august 2002 - 21:19 #15
det er den som du skal fjerne:
  Do While Not rs.EOF
If farve=1 Then
bg="#FCFCFC"
Farve= Farve + 1
Else
bg="#E5E5E5"
farve=1
End If
Avatar billede xtremer Nybegynder
11. august 2002 - 22:09 #16
Tak for hjælpen men det hjalp ikke....så jeg lukker spørgsmål
Avatar billede hossein Nybegynder
12. august 2002 - 09:11 #17
Hvis du vil kan du sende til mig så kan jeg kigge på det mach3@get2net.dk
Avatar billede xtremer Nybegynder
12. august 2002 - 16:14 #18
Oki...sender det lige til dig :-)
Avatar billede hossein Nybegynder
12. august 2002 - 20:52 #19
Jeh har ikke modtaget
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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