---
title: "Varför funkar inte '\" & sortera & \"' ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/74212-varför-funkar-inte-sortera"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SannyW"
published: "2003-04-16T01:50:20.000Z"
updated: "2003-04-16T12:58:08.000Z"
replies: 13
views: 322
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/74212-varför-funkar-inte-sortera"
---

# Varför funkar inte '" & sortera & "' ?

## #1 — SannyW, 2003-04-16T01:50Z

Vad jag försöker göra är sortera på två olika tabeller, försökte först med följande:

Skickade en Request.QueryString med tabellens namn, men det uppskattades.

```
Visa = "SELECT * FROM '" & sortera & "' WHERE (Hemmalag = '" & sortera1 & "' OR Bortalag = '" & sortera1 & "') ORDER BY namn ASC"
```

Då ändrade jag och skrev in båda tabellerna som jag ville sortera från, men då fick jag följande: 

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] Det angivna fältet 'Hemmalag' kan referera till fler än en av de tabeller som är uppräknade i SQL-uttryckets FROM-instruktion.
line 142

```
<%
IF Request.QueryString = "" THEN  
	sortera1 = "team"
else
	
        strLag = request.querystring("lag")
	If strLag = "" then
  		sortera1 = "ID"
	else
  		sortera1 = strLag
	END IF

END IF
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../db/db.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")

   Visa = "SELECT * FROM tabell1,tabell2 WHERE (Hemmalag = '" & sortera1 & "' OR Bortalag = '" & sortera1 & "') ORDER BY namn ASC"
   RecSet.Open Visa, Connect, 3, 3 
%>
```

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

## #2 — Jesper T, 2003-04-16T02:56Z

Så här kanske:

```
 Visa = "SELECT * FROM tabell1 ett ,tabell2 tva WHERE (ett.Hemmalag = '" & sortera1 & "' OR ett.Bortalag = '" & sortera1 & "' OR tva.Hemmalag = '" & sortera1 & "' OR tva.Bortalag = '" & sortera1 & "') ORDER BY ett.namn ASC"
```

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

## #3 — SannyW, 2003-04-16T06:47Z

Ovanstående funkar inte:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] För få parametrar angavs. 1 förväntades.

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

## #4 — SannyW, 2003-04-16T08:07Z

Skickade en Request.QueryString med tabellens namn (sortera), men det uppskattades INTE (glömde detta). 

```
Visa = "SELECT * FROM '" & sortera & "' WHERE (Hemmalag = '" & sortera1 & "' OR Bortalag = '" & sortera1 & "') ORDER BY namn ASC"
```

Söker fortfarande en lösningen i dimman........någon?

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

## #5 — LarsG, 2003-04-16T09:36Z

Ta bort apostroferna kring tabellnamnet.

```
Visa = "SELECT * FROM " & sortera &
```

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

## #6 — SannyW, 2003-04-16T10:02Z

Funkar inte som det skall, den tar "" sortera.

mprog.asp?div=tabell1&lag=team1
mprog.asp?div=tabell2&lag=team1

spelar ingen roll, den hämtar team1 fast den inte borde det. Då team1 inte finns i tabell2. Men den använder sortera i båda fallen.

Dock fungerar det att byta de olika lagen från tabell1.

```
<%
IF Request.QueryString = "" THEN  
	
	sortera1 = "Team1"
	sortera = "tabell1"
else
	
        strLag = request.querystring("lag")

	If strLag = "" then
  		sortera1 = "ID"
	else
  		sortera1 = strLag
	
	END IF	

	strDiv = request.querystring("div")	
	If strDiv = "" then
  		sortera = "ID"
	else
  		sortera = strDiv
	
	END IF
	
END IF
	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../db/db.mdb")

	Set RecSet = Server.CreateObject("ADODB.Recordset")

        Visa = "SELECT * FROM " & sortera & " WHERE Hemmalag = '" & sortera1 & "' OR Bortalag = '" & sortera1 & "' ORDER BY datum ASC"	

   
   RecSet.Open Visa, Connect, 3, 3 
%>
```

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

## #7 — SannyW, 2003-04-16T11:37Z

Kan någon se varför det inte fungerar?

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

## #8 — Sebbe, 2003-04-16T11:44Z

Vad är det som inte fungerar nu? Får du något felmeddelande?

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

## #9 — SannyW, 2003-04-16T11:46Z

Får inget felmeddelande? Den tar bara sortera och går aldrig vidare till

```
strDiv = request.querystring("div")	
	If strDiv = "" then
  		sortera = "ID"
	else
  		sortera = strDiv
	
	END IF
```

Måste vara något fel i mitt upplägg av if-satser tror jag...... Men vet inte vad?

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

## #10 — SannyW, 2003-04-16T11:48Z

Blev lite kryptiskt, alltså den hämtar tabell1 hela tiden. skiftar inte till tabell2 trots att jag söker den i request.querystring("div") = tabell2 !

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

## #11 — Sebbe, 2003-04-16T12:00Z

```
<%
strLag = CStr(Request.QueryString("lag"))
strDiv = CStr(Request.QueryString("div"))

If strDiv <> "" AND strLag <> "" Then
  strSort = strDiv
  strSort1 = strLag
ElseIf strDiv = "" AND strLag = "" Then
  strSort = "ID"
  strSort1 = "ID"
ElseIf strDiv = "" AND strLag <> "" Then
  strSort = "ID"
  strSort1 = strLag
ElseIf strDiv <> "" AND strLag = "" Then
  strSort = strDiv
  strSort1 = "ID"
End If

strSQL = "SELECT * FROM " & strSort & " WHERE Hemmalag = '" & strSort1 & "' OR Bortalag = '" & strSort1 & "' ORDER BY datum ASC"
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, objConn, 3, 3
%>
```

Blir det bättre så?

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

## #12 — SannyW, 2003-04-16T12:35Z

NEEEEEEEEEEEEEJ!!! Upptäckte precis att jag är en jubel-IDIOT. Har glömt att redigera tabell2 så tabell1 och 2 innehåller samma uppgifter. Då är det inte lätt att försöka selectera ut något som inte finns.

Stort tack till Sebbe, din kod ser proffsigare ut :)

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

## #13 — solbulle, 2003-04-16T12:40Z

Sebbe: tycker det där verkar vara lite "kaka på kaka"...

```
<%
strLag = CStr(Request.QueryString("lag"))
strDiv = CStr(Request.QueryString("div"))

If strDiv <> "" Then
  strSort = strDiv
Else
  strSort = "ID"
End If

If strLag <> "" Then
  strSort1 = strLag 
Else
  strSort1 = "ID"
End If

strSQL = "SELECT * FROM " & strSort & " WHERE Hemmalag = '" & strSort1 & "' OR Bortalag = '" & strSort1 & "' ORDER BY datum ASC"
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, objConn, 3, 3
%>
```

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

## #14 — SannyW, 2003-04-16T12:58Z

Tack till solbullen, också. Funkar också perfekt!

Nedan följer fullständig kod:

```
<%

strLag = CStr(Request.QueryString("lag"))
strDiv = CStr(Request.QueryString("div"))

If strDiv <> "" Then
  strSort = strDiv
Else
  strSort = "ID"
End If

If strLag <> "" Then
  strSort1 = strLag 
Else
  strSort1 = "ID"
End If

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../db/db.mdb")
Set objRS = Server.CreateObject("ADODB.Recordset")

strSQL = "SELECT * FROM " & strSort & " WHERE Hemmalag = '" & strSort1 & "' OR Bortalag = '" & strSort1 & "' ORDER BY datum ASC"

objRS.Open strSQL, objConn, 3, 3
%>

<font><b>
<% IF NOT objRS.EOF or NOT objRS.BOF THEN
response.write request.querystring("lag")
Else
response.write "Finns inga poster i databasen!"
End IF %>
</b></font>
<p>Klicka bara på Plus och Minus</p>

<table border="0" cellpadding="0" cellspacing="0"> 
<tr>
<td width="150">Namn</td>
<td></td>
<td width="20" align="center"></td>
<td>Antal</td>
<td width="20" align="center"></td>
<td></td>
</tr>

<%Do Until objRS.EOF %>

<tr>
<td nowrap align="right"><b><%=objRS("Datum")%></b> <%=objRS("Tid")%></td>  <td><b><%=objRS("Hemmalag")%></b></td>  <td align="center">-</td>  <td><b><%=objRS("Bortalag")%></b></td>  <td nowrap align="center"><b><%=objRS("Resultat")%></b></td>  <td nowrap align="right">&nbsp;</td>  <td nowrap>&nbsp;</td>  </tr><tr><td colspan="7" bgcolor="#E0EBF8"><img src="images/1x1_tom.gif" width="1" height="1" border="0" alt=""></td></tr>  
</tr>

<% 
	x = x+1
	objRS.MOVENEXT
	Loop
	objRS.Close %>
```

Tackar alla för hjälpen. En ev. utveckling av scriptet är att få div=tabell1 och visa ALLA posterna i tabell1 och skriver man div=tabell2 visas alla ALLA posterna i tabell2.

För nog klura lite............

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/74212-varför-funkar-inte-sortera
