---
title: "Visa poster från olika tabeller?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/76178-visa-poster-från-olika-tabeller"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "magnus_n"
published: "2003-05-07T07:59:27.000Z"
updated: "2003-05-07T13:26:00.000Z"
replies: 7
views: 302
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/databaser-sql/76178-visa-poster-från-olika-tabeller"
---

# Visa poster från olika tabeller?

## #1 — magnus_n, 2003-05-07T07:59Z

charkprodukter.asp består av ram1 (chark.asp), en sida som listar produkterna från databasen och ram2 (produktsvar.asp) där information om produkten spaltas upp. 

chark.asp: 
\[KOD\]
\<%Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "DBQ=" & Server.MapPath("admin/jm.mdb") & ";Driver={Microsoft Access Driver (\*.mdb)};" 

Set RecSet = Server.CreateObject("ADODB.Recordset") 
Visa = "SELECT \* FROM Produkt ORDER BY Namn" 
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %\> 

\<%Do Until RecSet.EOF %\> 

\<a href="produktsvar.asp?id=\<%=RecSet("ProduktID")%\>" target="svar"\>\<%=RecSet("Namn") %\>\</a\>\<br\> 

\<% RecSet.MoveNext 
Loop 
RecSet.Close %\> 

Denna kod fungerar bra och produkterna listas från db:n. 

produktsvar.asp: 
\[KOD\]
\<%Set Connect = Server.CreateObject("ADODB.Connection")Connect.Open "DBQ=" & Server.MapPath("admin/jm.mdb") & ";Driver={Microsoft Access Driver (\*.mdb)};" 

Set RecSet = Server.CreateObject("ADODB.Recordset") 
strSQL = "SELECT Namn, Bild, Kottmangd FROM Produkt, Kottmangd WHERE ProduktID = " & Request.Querystring("id") 

Set RecSet = Connect.Execute (strSQL)%\> 

\<ul\> 
\<li\>\<b\>\<% =RecSet("Namn") %\>\</b\>\<br\> 
\<br\> 
\<img src="\<% =RecSet("Bild") %\>"\<br\> 
\<br\> 
\<b\>Köttmängd: \</b\>\<% =RecSet("Kottmangd") %\> 

Namn och bild som hämtas från produkt-tabellen visas rätt när man klickar på produkt-länken i ram1 (chark.asp) men köttmängden som hämtas från tabellen Kottmangd blir densamma för alla produkter även om de har olika värden i db:n. Någon som kan svara på varför det blir så?

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

## #2 — @nders, 2003-05-07T08:01Z

Du måste applicera where-villkoret på alla tabeller som ingår i frågan, annars vet du aldrig vilken data du får.

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

## #3 — magnus_n, 2003-05-07T08:09Z

Om jag tolkar det rätt borde koden isf se ut så här:

\[	Set RecSet = Server.CreateObject("ADODB.Recordset")
	strSQL = "SELECT Namn FROM Produkt WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Bild FROM Produkt WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Info FROM Svensk_ravara WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Kottmangd FROM Kottmangd WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Fetthalt FROM Fetthalt WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Forvaring FROM Kylvara WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Anvandningsomrade FROM Anvandningsomrade WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Telefon FROM Konsumentkontakt WHERE ProduktID = " & Request.Querystring("id")
	strSQL = "SELECT Ovrigt FROM Ovrigt WHERE ProduktID = " & Request.Querystring("id")
  	
	Set RecSet = Connect.Execute (strSQL)%\>\]

Får då följande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] För få parametrar angavs. 1 förväntades.
/magnus/produktsvar.asp, line 39

Rad 39: Set RecSet = Connect.Execute (strSQL)%\>

???

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

## #4 — @nders, 2003-05-07T08:37Z

Nej, du behöver bara göra förändring i WHERE-satsen.

```
strSQL = "SELECT Namn, Bild, Kottmangd FROM Produkt, Kottmangd WHERE Produkt.ProduktID = Kottmangd.ProduktID AND Produkt.ProduktID = " & Request.Querystring("id")
```

Men, jag vill ändå rekommendera dig att lägga all denna produktdata i en och samma tabell. Eller finns det kanske någon anledning som jag inte ser att alla attribut ligger i en egen tabell?

Mvh,

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

## #5 — magnus_n, 2003-05-07T08:45Z

Jag använder olika tabeller för att undvika redundans, men jag är kanske fel ute!? Provade att lägga in sql-satsen men får följande:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
\[Microsoft\]\[Drivrutin för ODBC Microsoft Access\] För få parametrar angavs. 1 förväntades.
/magnus/produktsvar2.asp, line 33

Rad 33: \<% Set RecSet = Connect.Execute (strSQL) %\>

???

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

## #6 — @nders, 2003-05-07T09:52Z

Jag kan inte förstå hur det kan bli redundant om du lägger all relaterad produktdata i en och samma tabell.

Felmeddelandet betyder att det är något felaktigt tabell- eller fältnamn. Heter nyckeln ProduktID i båda tabellerna? Prova annars ange tabellnamn före fältnamn, dvs *Produkt.Namn, Produkt.Bild, Kottmangd.Kottmangd.*

Mvh,

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

## #7 — magnus_n, 2003-05-07T11:20Z

Problemet löst!

Den korrekta sql-satsen ska i mitt fall vara:

strSQL = "SELECT Namn, Bild, Kottmangd FROM Produkt, Kottmangd WHERE Produkt.KottmangdID = Kottmangd.KottmangdID AND Produkt.ProduktID = " & Request.Querystring("id")

Nu fungerar det. Tack för hjälpen!

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

## #8 — @nders, 2003-05-07T13:26Z

Sure thing. :)

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/76178-visa-poster-från-olika-tabeller
