---
title: "två sökmotorfrågor"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/77435-två-sökmotorfrågor"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "magnusfeldth"
published: "2003-05-19T18:26:55.000Z"
updated: "2003-05-19T20:14:25.000Z"
replies: 10
views: 342
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/77435-två-sökmotorfrågor"
---

# två sökmotorfrågor

## #1 — magnusfeldth, 2003-05-19T18:26Z

detta är min kod för en enkel sökmotor:

```
 <% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

SQL2 = "select top 5 * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)

do until recset.EOF
%>
<% If RecSet.EOF Then %>
Sökordet <b>" & Request.Form("sokord") & "</b> gav inga träffar! 
<% end if %>
<%=recset("ID")%>&nbsp;<%=recset("Rubrik")%><br>
<%
recset.Movenext
Loop
recset.Close %>
```

Vad jag vill lägga till är ett meddelande om sökningen inte gav några träffar, samt ett meddelande om en sökning ger mer än 5 träffar att man kan gå till "länk" för att se samtliga sökresultat.
Mitt försök med

```
<% If RecSet.EOF Then %>
Sökordet <b>" & Request.Form("sokord") & "</b> gav inga träffar! 
<% end if %>
```

visade sig helt felaktigt...

Permalänk: https://www.webforum.nu/p/77435

## #2 — Eclipse, 2003-05-19T19:12Z

```
<%

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

SQL2 = "select top 5 * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)

If RecSet.EOF Then
	response.write "Sökordet <b>" & Request.Form("sokord") & "</b> gav inga träffar!" 

ELSE
	do until recset.EOF
	response.write recset("ID") & " " & recset("Rubrik") & "<BR>"

	recset.Movenext

	Loop

	recset.Close
END IF
%>
```

Detta är din kod men i en annan ordning. Jag är inte helt säker på att ett fält vid namn ID fungerar. Testa intID i stället och se om det blir någon skillnad. ID kan vara reserverat.

Permalänk: https://www.webforum.nu/p/1056218

## #3 — @nders, 2003-05-19T19:21Z

ID är icke reserverat, och kan således användas fritt. :)

För att lösa den andra frågan om "fler än fem träffar", så är det ju bara att ställa en SELECT COUNT-fråga med samma villkor som sökfrågan.

Mvh

Permalänk: https://www.webforum.nu/p/1056231

## #4 — magnusfeldth, 2003-05-19T19:22Z

och hur skriver jag det? (n00bie men jag lär mig!)

Permalänk: https://www.webforum.nu/p/1056233

## #5 — @nders, 2003-05-19T19:26Z

```
strSQL = "select count(*) from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set objRS = connect.execute(strSQL)
intAntal = CInt(objRS(0))
if intAntal > 5 then
  ' Alldeles för många, för böveln!
end if
```

Mvh

Permalänk: https://www.webforum.nu/p/1056240

## #6 — magnusfeldth, 2003-05-19T19:28Z

och den skall ställas istället för den andra söksträngen 

```
SQL2 = "select top 5 * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)
```

, eller?

Permalänk: https://www.webforum.nu/p/1056244

## #7 — @nders, 2003-05-19T19:37Z

Du ville väl ha det resultatet utskrivet också? Alltså; koden utöver den kod som skriver ut de 5 första av sökresultaten.

Permalänk: https://www.webforum.nu/p/1056256

## #8 — magnusfeldth, 2003-05-19T20:00Z

då har jag problem var den skall sättas in...

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'ID' as part of an aggregate function. 

/assistenten.asp, line 379
```

```
<h3><b>Sökresultat:</b><br>
              <% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

SQL2 = "select top 5 * from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set RecSet = connect.execute(SQL2)

If RecSet.EOF Then %>
Sökordet <b><%= Request.Form("search1") %></b> gav inga träffar! Du är tydligen för puckad för att söka! Kan du ens öppna en dörr? Om du kan det, gå ut och skäms!
<% else %>
<% do until recset.EOF
%>

<%=recset("ID")%>&nbsp;<%=recset("Rubrik")%><br>
<%
recset.Movenext
Loop 
recset.Close %>
<% end if %>
<% Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("addemalmbergadmin/tubsockan.mdb")

strSQL = "select count(*) from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
set objRS = connect.execute(strSQL)
intAntal = CInt(objRS(0))
if intAntal > 5 then %>
Alldeles för många, för böveln!
<% end if %>
</h3>
```

Permalänk: https://www.webforum.nu/p/1056287

## #9 — Sebbe, 2003-05-19T20:08Z

Jag tror nog att detta ska funka.

```
strSQL = "select ID, (select count(*) from sockrates where rubrik like '%" & request.form("search1") & "%') as ggr from sockrates where rubrik like '%" & request.form("search1") & "%' ORDER BY ID DESC"
------
intAntal = objRS("ggr")
```

Hoppas nu inte att jag har helt fel. :r

Permalänk: https://www.webforum.nu/p/1056303

## #10 — @nders, 2003-05-19T20:08Z

Hemskt ledsen, bort med ORDER BY ur den andra SQL-frågan:

```
strSQL = "select count(*) from sockrates where rubrik like '%" & request.form("search1") & "%'"
```

Mitt misstag. Kattenpejst slog till igen.

Mvh

Permalänk: https://www.webforum.nu/p/1056305

## #11 — magnusfeldth, 2003-05-19T20:14Z

thanks, nu funkar det!

Permalänk: https://www.webforum.nu/p/1056311

---

Tråden på webben: https://www.webforum.nu/amne/asp/77435-två-sökmotorfrågor
