---
title: "lista tabel och undertabeller"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/87744-lista-tabel-och-undertabeller"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2003-10-05T13:36:35.000Z"
updated: "2003-10-08T14:17:49.000Z"
replies: 28
views: 796
page: 1
pages: 2
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/87744-lista-tabel-och-undertabeller"
---

# lista tabel och undertabeller

_Sida 1 av 2._

## #1 — plelkes, 2003-10-05T13:36Z

... skulle jag vilja. Men hur gör jag detta?

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

## #2 — solbulle, 2003-10-05T13:37Z

Euh? Vad?

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

## #3 — plelkes, 2003-10-05T13:44Z

om du tittar i tblFluidtypes så ser du att den innehåller flera undertabeller.
Jag skulle vilja skriva ut innehållet typ:
blodprodukter
  albumin
   blod
   plasma
parenteral
   Intralipid
   Glavamin
    Kabiven

osv

Förstår du/ni?

Bilagor:

- [vbalans.zip](https://www.webforum.nu/a/2119.zip)

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

## #4 — plelkes, 2003-10-05T15:29Z

Har försökt med följande:

```
<html>
<head>
<title>V&auml;tskebalans</title>

 </head>
 <BODY>
<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("/vetskebalans/vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidTypes ORDER by typeID ASC"
strSQL2 =" SELECT * FROM tblFluidRelat, tblFluids WHERE typeID = FluidID"

Set rs = vbalans.Execute (strSQL1)
Set rs = vbalans.Execute (strSQL2)

Do While Not rs.EOF
    Response.Write  rs("tblFluidTypes.typeNamn") &"<BR>"
	 Response.Write rs("tblFluids.FluidNamn") & "<BR>"
rs.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
  %>
</body>
</html>
```

 får fel

> Det angivna fältet 'FluidID' kan referera till fler än en av de angivna tabellerna som är uppräknade i SQL -uttryckets FROM instruktion

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

## #5 — @nders, 2003-10-05T15:40Z

För det första:

```
Set rs = vbalans.Execute (strSQL1)
Set rs = vbalans.Execute (strSQL2)
```

Det innebär att du använder ett och samma recordset till två saker, men exekveringen av den första SQL-frågan görs helt i onödan, eftersom du bara skriver över allt med resultatet av SQL-fråga 2.

För det andra:

```
Response.Write  rs("tblFluidTypes.typeNamn")
```

Du kan inte referera till tabellnamn när du skriver ut datat, utan du kan endast ange fältnamn. Kvalificering på detta sätt kan du endast göra i SQL-frågan.

För det tredje, felmeddelandet. Felet betyder att du i din SQL-fråga har med ett fält, som finns i mer än en tabell. Det innebär att du i din SQL-fråga måste berätta vilken tabell det är du menar. Ett exempel med SQLfråga nummer två (som jag antar är den som skapar felet:

```
strSQL2 =" SELECT * FROM tblFluidRelat, tblFluids WHERE [b]tblFluidRelat.[/b]typeID = [b]tblFluids.[/b]FluidID"
```

Mvh

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

## #6 — plelkes, 2003-10-05T16:00Z

Lite ändringar:

```
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
html>
<head>
<title>Vätskebalans</title>
 </head>
 <BODY>
<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("/vetskebalans/vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL =" SELECT * FROM tblFluidTypes ORDER by typeID ASC"
strSQL =" SELECT * FROM tblFluidRelat, tblFluids WHERE tblFluidRelat.typeID = tblFluids.FluidID"
Set rs = vbalans.Execute (strSQL)
Do While Not rs.EOF
Response.Write  rs("typeNamn") & "<BR>"
Response.Write rs("FluidNamn") & "<BR>"
rs.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
  %>
</body>
</html>
```

 Nu kommer felet

> ADODB Recordset '800a0cc1' Objektet kunde inte hittas i mängden med det begärda namnet eller numret

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

## #7 — @nders, 2003-10-05T16:07Z

Den första av de två SQL-frågorna körs aldrig. Ska den inte det?

Felmeddelandet betyder att något av fälten du försöker skriva ut (alltså *typeNamn* eller *FluidNamn*) inte finns i ditt recordset.

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

## #8 — plelkes, 2003-10-05T16:41Z

> Den första av de två SQL-frågorna körs aldrig. Ska den inte det?

 
Jo, skall vara

```
strSQL = SQL & " SELECT * FROM tblFluidRelat, tblFluids WHERE tblFluidRelat.typeID = tblFluids.FluidID"
```

 

> Felmeddelandet betyder att något av fälten du försöker skriva ut (alltså typeNamn eller FluidNamn) inte finns i ditt recordset.

 
mitt rs är väl vbalans.mdb? då förstår jag inte riktigt, för typeNamn finns i tblFluidTypes
FluidNamn i tblFluids

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

## #9 — @nders, 2003-10-05T16:59Z

> **plelkes skrev:**
>
> mitt rs är väl vbalans.mdb? då förstår jag inte riktigt, för typeNamn finns i tblFluidTypes
> FluidNamn i tblFluids

Nej, ditt recordset är resultatet av SQL-frågan som körs. I detta fall, eftersom du kör två SQL-frågor in i samma objekt, blir resultatet ett objekt med två recordsets, inte ett recordset med det samlade resultatet.

När du har öppnat recordsetet har du resultatet från den första SQL-frågan i objektet. För att komma åt resultatet från den andra frågan måste du aktivera recordset nummer två i objektet, och såvida jag inte missminner mig gör du det genom att köra metoden **.NextRecordset**. Möjligen måste du öppna recordsetet med någon speciell cursortyp, det vet jag faktiskt inte.

Varför använder du inte två separata recordsets istället för att använda samma recordset till två separata frågor?

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

## #10 — plelkes, 2003-10-05T17:03Z

> Varför använder du inte två separata recordsets istället för att använda samma recordset till två separata frågor?\[/CITAT
> jag försökte ju med detta, men de tog ut varandra.
> Kan jag få ett ex hur det kunde se ut med  2 separata frågor?

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

## #11 — @nders, 2003-10-05T17:05Z

Du får se till att inte använda samma namn på recordsetobjektet. Det var det du gjorde fel, du skrev ju att båda skulle heta RS.

Använder du samma namn på saker och ting så blir det så att det som tidigare fanns i variabeln / objektet förverkas och slutar existera.

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

## #12 — plelkes, 2003-10-05T17:08Z

Så jag skulle kunna köra:

```
Set rs1 = vbalans.Execute (strSQL1)
Set rs2 = vbalans.Execute (strSQL2)
'
'
'
Response.Write  rs1("typeNamn") & "<BR>"
Response.Write rs2("FluidNamn") & "<BR>"
```

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

## #13 — plelkes, 2003-10-05T18:00Z

Fick nästan till det hela, då jag upptäckte fel i SQL2....
DEt ja gförsöker åstadkkomma är:

1. Skriva ut *typeNamn* fr tblFluidtypes - detta fumkar mkt bra genom strSQL1
2. efter att första namnet  (typeID =1) skirvs ut gå till tblFluidRelat och välja de fluidID där typeID =1
3. gå till tblFluids och skriv ut korrespondrande *FluidNamn*
4. skriv ut namnet på typeID=2
5. gå till tblFluidRelat och välja de fluidID där typeID =2 ....

 
Hoppas ni förstår:OO 
Men jag får varken till SQL2 eller de två Loopen

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

## #14 — @nders, 2003-10-05T18:56Z

Det jag tror att du skulle behöva göra egentligen (om jag förstår dig rätt), är att joina in även tblFluidTypes i den SQL-fråga som nu heter strSQL2, och endast använda den frågan. Då kommer du ha ett recordset med all data, en loop i asp-koden, och betydligt lättare att skriva ut rätt värden.

Mvh

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

## #15 — plelkes, 2003-10-06T05:08Z

> joina in även tblFluidTypes

 ...
och hur gör jag detta?
inner join eller annat?

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

## #16 — @nders, 2003-10-06T06:50Z

> **plelkes skrev:**
>
> > joina in även tblFluidTypes
>
>  ...
> och hur gör jag detta?
> inner join eller annat?

Du kan använda JOIN i SQL-frågan, eller göra som du gjorde med den första, dvs bara använd **tabell.fält = tabell2.fält2** i WHERE-delen i SQL-frågan.

Mvh

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

## #17 — plelkes, 2003-10-06T07:02Z

> använd tabell.fält = tabell2.fält2 i WHERE-delen i SQL-frågan

 förstår inte riktigt hur du @nders menar...
tblFluidTypes består f.n. av 6 poster. varje post består i sin tur av x antal (under)poster.
Det jag vill är att först skriva ut första posten, sedan alla underposter. Skriva ut andra post fr tblFluidTypes och sedan dess underposter. Och fortsätta så tills tblFluidTypes sista post och dess underpost är utskrivna.
Jag förstår inte hur jag skall l´konstruera för att det skulle funka

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

## #18 — plelkes, 2003-10-06T08:56Z

det behöver inte vara just @nders som svarar ;) 
Varsegod och hoppa in i tråden :birp

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

## #19 — plelkes, 2003-10-06T10:01Z

upps, hoppas jag inte gjort bort mig nu - och hoppas att @nders inte tog illa upp.

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

## #20 — plelkes, 2003-10-06T12:34Z

Jag har äntligen kommit en bit på vägen

```
:<%@LANGUAGE="VBSCRIPT"%>
<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("/vetskebalans/vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 =" SELECT * FROM tblFluidRelat, tblFluids, tblFluidTypes WHERE tblFluidRelat.FluidID = tblFluids.FluidID AND tblFluidRelat.typeID = tblFluidTypes.typeID"
Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
Response.Write rs1("typeNamn") & "       " & rs1("FluidNamn") & "<BR>"
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
  %>
```

 
För att det skall se ut som jag vill :

1. rs1("typeNamn")  skall vara rubrik
2. nästa rubrik (dvs rs1("typeNamn") ) skall komma när alla rs1("FluidNamn") har loopats fram

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/87744-lista-tabel-och-undertabeller  
Nästa sida: https://www.webforum.nu/amne/asp/87744-lista-tabel-och-undertabeller/page2.md
