---
title: "distinct funkar inte som det ska och den listar inte ut all info från databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/131498-distinct-funkar-inte-som-det-ska-och-den-listar-inte-ut-all-info-från-databas"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Dashi"
published: "2005-07-16T15:22:07.000Z"
updated: "2005-07-16T23:16:56.000Z"
replies: 12
views: 452
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/131498-distinct-funkar-inte-som-det-ska-och-den-listar-inte-ut-all-info-från-databas"
---

# distinct funkar inte som det ska och den listar inte ut all info från databas

## #1 — Dashi, 2005-07-16T15:22Z

Det vill inte funka riktigt som det ska, distinct funkar inte på selecten grupp under den bara skriver ut all info, och selecten undergrupp och tredjegrupp får inget info alls, visas bara välj undergrupp och respektive välj tredjegrupp. Får inget felmeddelande. Hittar ni något fel?

Mvh //Darek

```
<% If Request.Querystring("produkter") = "" Then %>

<% visa = "SELECT DISTINCT grupp, undergrupp, tredjegrupp FROM produkter"
RS.Open visa, conn, adOpenStatic, adLockOptimistic %>

<table width="90%" border="0" cellspacing="0" cellpadding="0">
      <tr> 
        <td>
            <SELECT name="vgrupp">
              <OPTION selected value="item">Välj grupp!</OPTION>
              <%Do Until rs.EOF%>
              <OPTION value="<%=RS("grupp")%>"><%=RS("grupp")%></OPTION>
              <% rs.MoveNext
	  Loop %>
            </select>
            <select name="vundergrupp">
              <option selected value="item">Välj undergrupp!</option>
              <%Do Until rs.EOF%>
              <option value="<%=RS("undergrupp")%>"><%=RS("undergrupp")%></option>
              <% rs.MoveNext
	  Loop %>
            </select>
            <select name="vtredjegrupp">
              <option selected value="item">Välj tredjegrupp!</option>
              <%Do Until rs.EOF%>
              <option value="<%=RS("tredjegrupp")%>"><%=RS("tredjegrupp")%></option>
              <% rs.MoveNext
	  Loop
	  RS.Close %>
            </select>
        </td>
        <td>&nbsp;</td>
      </tr>
</table>
<%End If%>
```

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

## #2 — TainEvil, 2005-07-16T21:07Z

Att du inte får någon info alls i två av dina select-boxar beror på att du i din första box loopar igenom hela recordsetet till slutet. Alltså är RS.EOF = True när du kommer till nästa.

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

## #3 — Dashi, 2005-07-16T21:13Z

> **TainEvil skrev:**
>
> Att du inte får någon info alls i två av dina select-boxar beror på att du i din första box loopar igenom hela recordsetet till slutet. Alltså är RS.EOF = True när du kommer till nästa.

oki då får jag stänga rs och sen köra en ny sats på den andra och göra likadant med den tredje?

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

## #4 — TainEvil, 2005-07-16T21:17Z

Antingen det, eller så fylla samtliga boxar innan du stegar fram ditt recordset, men det beror givetvis på vilket resultat du vill uppnå...

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

## #5 — SannyW, 2005-07-16T21:27Z

Skulle man få se lite information om din databas struktur, undrar lite varför du har tre olika kolumner grupp, undergrupp, tredjegrupp?

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

## #6 — Dashi, 2005-07-16T21:35Z

> **SannyW skrev:**
>
> Skulle man få se lite information om din databas struktur, undrar lite varför du har tre olika kolumner grupp, undergrupp, tredjegrupp?

produktmenyn, och jag sitter och bygger på admin delen nu.. men det funkar ändå inte som de ska, för jag vill att den ska visa undergruppen where markerade gruppen är när man väljer en o.s.v...

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

## #7 — TainEvil, 2005-07-16T21:39Z

Då kan du nog bara fylla den första med grupp och sedan bygga undergrupp dynamiskt utifrån vald grupp med en egen select osv.

Sen vet jag inte om du behöver köra med DISTINCT, går säkert lika bra med en GROUP BY.

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

## #8 — Dashi, 2005-07-16T21:43Z

> **TainEvil skrev:**
>
> Då kan du nog bara fylla den första med grupp och sedan bygga undergrupp dynamiskt utifrån vald grupp med en egen select osv.
> 
> Sen vet jag inte om du behöver köra med DISTINCT, går säkert lika bra med en GROUP BY.

jo men allt måste läsas från databasen eftersom kunden ska kunna ändra menyn själv och menyn läses från databasen osså :)

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

## #9 — TainEvil, 2005-07-16T21:49Z

Så hur ser då strukturen på din databas ut?

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

## #10 — Dashi, 2005-07-16T22:07Z

grupp \| undergrupp \| tredjegrupp \| artikelnr \| produktnamn \| pris

Data \| processor \| AMD - socket 775 \| 25469 \| AMD 2,0 GHZ \| 2498
Data \| processor \| Intel - Socket 478 \| 25498 \| Intel 3,0 GHZ \| 6330

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

## #11 — SannyW, 2005-07-16T23:02Z

Möjligen en av världens längsta lösningar, men dock.

```
<%
'Declare global variables
Dim connection, rs, strCheck, i

'Open database connection
Sub connOpen
	set connection = server.createobject("adodb.connection")
	connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../#bart$ite.mdb")&";"
End Sub

'Close recordset
Sub rsClose
	rs.close : set rs = nothing
End Sub

'Close database connection
Sub connClose
	connection.close : set connection = nothing 
End Sub

'Get datarows
Function GetRows(ByVal strSQL)
Dim arrRecords
	Call connOpen		
	Set rs = connection.Execute(strSQL)
	If Not rs.BOF Or Not rs.EOF Then
		arrRecords = rs.GetRows()
	ELSE
		arrRecords = ""
	End If		
	rsClose : connClose
GetRows = arrRecords 
End Function

Sub Selectgrupp(ByVal strGrupp)
'// Posthantering 
arrRecords = GetRows("SELECT DISTINCT "&strGrupp&"grupp FROM produkter")
 
'// Posthantering 
If IsArray(arrRecords) THEN

        Response.Write "<select name='v"&strGrupp&"grupp' onchange='parent.frames['main'].location  = 'produktervisa.asp?vgrupp="">';'>"

	If Request.Form("v"&strGrupp&"grupp") = "" THEN
        Response.Write "<option selected value='item'>Välj "&strGrupp&"grupp!</option>"
		
	  For i = 0 To Ubound(arrRecords,2)

	  strGrupp = arrRecords(0,i)

	  '// Skriver ut detaljerna om varje id		
	  Response.Write "<option value='"&strGrupp&"grupp'>"&strGrupp&"grupp</option>"

    	  Next
 	Else
	  Response.Write "<option selected value='item'>"&strGrupp&"grupp</option>"
	End if
	Response.Write "</select>"
End If
End Sub
%>
<form>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
      <tr> 
        <td><% Call Selectgrupp("") %></td>
        <td><% Call Selectgrupp("under") %></td>
        <td><% Call Selectgrupp("tredje") %></td>
      </tr>
</table>
</form>
```

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

## #12 — Dashi, 2005-07-16T23:14Z

Jag har redan fixat att den skriver ut det, men de jag försöker göra nu är att den ska skriva ut gruppen, när jag valt en grupp så ska den lista ut undergrupp och satsen där ska vara where undergrupp och sen när man trycker på en där ska den lista ut tredjegrupp sen när man valt en där ska den gå till sida.asp?grupp=valt&undergrupp=valt&tredjegrupp=valt
Tack ändå

:)

> **SannyW skrev:**
>
> Möjligen en av världens längsta lösningar, men dock.
>
>
> ```
> <%
> 'Declare global variables
> Dim connection, rs, strCheck, i
> 
> 'Open database connection
> Sub connOpen
> 	set connection = server.createobject("adodb.connection")
> 	connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../test.mdb")&";"
> End Sub
> 
> 'Close recordset
> Sub rsClose
> 	rs.close : set rs = nothing
> End Sub
> 
> 'Close database connection
> Sub connClose
> 	connection.close : set connection = nothing 
> End Sub
> 
> 'Get datarows
> Function GetRows(ByVal strSQL)
> Dim arrRecords
> 	Call connOpen		
> 	Set rs = connection.Execute(strSQL)
> 	If Not rs.BOF Or Not rs.EOF Then
> 		arrRecords = rs.GetRows()
> 	ELSE
> 		arrRecords = ""
> 	End If		
> 	rsClose : connClose
> GetRows = arrRecords 
> End Function
> 
> Sub Selectgrupp
> 
> '// Posthantering 
> arrRecords = GetRows("SELECT DISTINCT grupp FROM produkter")
>  
> '// Posthantering 
> If IsArray(arrRecords) THEN
> 
>         Response.Write "<select name='vgrupp'>"&_
>         "<option selected value='item'>Välj grupp!</option>"
> 	
> 	For i = 0 To Ubound(arrRecords,2)
> 
> 	grupp = arrRecords(0,i)
> 
> 	'// Skriver ut detaljerna om varje id	
> 	Response.Write "<option value='"&grupp&"'>"&grupp&"</option>"
> 
>     	Next
> 
> 	Response.Write "</select>"
> End If
> End Sub
> 
> Sub Selectundergrupp
> 
> '// Posthantering 
> arrRecords = GetRows("SELECT DISTINCT undergrupp FROM produkter")
>  
> '// Posthantering 
> If IsArray(arrRecords) THEN
> 
>         Response.Write "<select name='vundergrupp'>"&_
>         "<option selected value='item'>Välj undergrupp!</option>"
> 	
> 	For i = 0 To Ubound(arrRecords,2)
> 
> 	undergrupp = arrRecords(0,i)
> 
> 	'// Skriver ut detaljerna om varje id	
> 	Response.Write "<option value='"&undergrupp&"'>"&undergrupp&"</option>"
> 
>     	Next
> 
> 	Response.Write "</select>"
> End If
> End Sub
> 
> Sub Selecttredjegrupp
> 
> '// Posthantering 
> arrRecords = GetRows("SELECT DISTINCT tredjegrupp FROM produkter")
>  
> '// Posthantering 
> If IsArray(arrRecords) THEN
> 
>         Response.Write "<select name='vtredjegrupp'>"&_
>         "<option selected value='item'>Välj tredjegrupp!</option>"
> 	
> 	For i = 0 To Ubound(arrRecords,2)
> 
> 	tredjegrupp = arrRecords(0,i)
> 
> 	'// Skriver ut detaljerna om varje id		
> 	Response.Write "<option value='"&tredjegrupp&"'>"&tredjegrupp&"</option>"
> 
>     	Next
> 
> 	Response.Write "</select>"
> 
> End If
> End Sub
> %>
> <table width="90%" border="0" cellspacing="0" cellpadding="0">
>       <tr> 
>         <td><% Call Selectgrupp %></td>
>         <td><% Call Selectundergrupp %></td>
>         <td><% Call Selecttredjegrupp %></td>
>       </tr>
> </table>
> ```

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

## #13 — Dashi, 2005-07-16T23:16Z

Den vill inte funka :)

```
<% visa = "SELECT DISTINCT grupp FROM produkter"
RS.Open visa, conn, adOpenStatic, adLockOptimistic %>
<form>
            <SELECT name="vgrupp" onchange="parent.frames['main'].location  = 'produktervisa.asp?vgrupp=<%request.this%>';">
			<%If request.form("vgrupp") = "" Then %>
              <OPTION selected value="item">Välj Grupp!</OPTION>
			  <% Else %>
			  <OPTION selected value="item"><%=vgrupp%></OPTION>
			  <% End If %>
              <%Do Until rs.EOF%>
              <OPTION value="<%=RS("grupp")%>"><%=RS("grupp")%></OPTION>
              <% rs.MoveNext
	  Loop 
	  RS.Close %>
            </select>
			</form>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/131498-distinct-funkar-inte-som-det-ska-och-den-listar-inte-ut-all-info-från-databas
