Avatar billede sorenmt84 Juniormester
08. juli 2001 - 17:46 Der er 13 kommentarer og
1 løsning

\"Sammensæt\" udtræk fra 2 tabeller

I min database har jeg en tabel der indholder personligeoplysninger (navn, telefon osv.) I en anden tabel har jeg så de forskellige funktioner man har. F.eks. hvis man er formand for bestyrelsen.
I tabellen med personligeoplysninger (brugere) har man et id. I tabellen med funktioner (funktioner) har man et refid som er det samme som id i brugere.
Jeg skal bruge et asp udtræk der så kan finde alle de poster der er i funktioner hvor gren er = besyrelse
Det har jeg egentlig ikke selv nogle problemer i, men det kommer når den så udskriver en liste. For det er ikke til meget nytte hvis den udskriver en liste hvor der bare står bestyrelsesformand, bestyrelsesmedlem osv. Der skal også navne på. Dem skal den så finde i tabellen brugere, men den skal kun indsætte de navne som i tabellen funktioner er medlem af bestyrelsen!!

Ret indviklet, men jeg håber at I kan forstå det???
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 17:47 #1
Glæmte lige at skrive at det skal se ca. sådan her ud når den har lavet udtrækket:


Navn (brugere)    funktion (funktioner)    email (brugere)
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 17:47 #2
Jeg er lidt træt.

Meningen er at den så skal lave en komplet liste over alle som er medlem af bestyrelsen, så det vil blive noget som dette:
Navn (brugere)    funktion (funktioner)    email (brugere)
Navn (brugere)    funktion (funktioner)    email (brugere)
Navn (brugere)    funktion (funktioner)    email (brugere)
Navn (brugere)    funktion (funktioner)    email (brugere)
Avatar billede erikjacobsen Ekspert
08. juli 2001 - 17:49 #3
select person.navn,funk.funktionsnavn,person.email from person,funk where person.id=funk.refid

sådan ca.
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 17:50 #4
Gider du lave et komplet eksempel?
Avatar billede erikjacobsen Ekspert
08. juli 2001 - 17:52 #5
Det er komplet. Du skal bare udføre den i ASP og udskrive hele recordsættet. Men
du skal nok udskifte navne på tabeller og felter....jo da...
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 17:54 #6
Hvordan indsætter jeg så et felt fra de forskellige tabeller?? (Jeg er ikke så stærk i ASP)
Avatar billede erikjacobsen Ekspert
08. juli 2001 - 18:01 #7
Hmm, giv mig navne på tabeller og felter, og vis mig en eller anden stump kode
du MÅ have liggende, der løber et recordset igennem. Så skal jeg nok vise dig det.
Det er ik\' så gal\'.
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 18:25 #8
<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"spejder.mdb\")
strSQL = \"select * from brugere where gren=\'leder\' and vis=-1 ORDER BY sorter ASC\"
set rs = Conn.execute(strSQL)
if rs.EOF then
Response.write \"Der er igen ledere i databasen\"
else
Do Until rs.EOF
%>

<TD class=\"tabel4\" width=\"250\"><span class=\"normal\"><img src=\"images/pil.gif\">&nbsp;<a class=\"links\" href=\"default.asp?side=medlem&subside=info&id=<%=RS(\"id\")%>\"><%=RS(\"navn\")%></a></TD></span>
        <TD class=\"tabel4\" width=\"200\"><span class=\"normal\"><%=RS(\"funktion\")%></TD></span>
    <TD class=\"tabel4\" width=\"150\"><span class=\"normal\"><%=RS(\"gruppe\")%></TD></span>

<tr><TD colspan=\"3\" class=\"tabel1\" width=\"1\"></TD></tr>
<%RS.MoveNext
Loop
end if

Conn.Close
Set Conn = Nothing%>
</tr>
</TABLE><p>

Det er den kode jeg bruger nu, men det virker ikke på samme måde!
Databasen hedder: spejder
tabellerne hedder: brugere & funktioner
I oversigten skal den indsætte:
navn (fra brugere)
funktion (fra funktioner) og email fra (brugere)

Avatar billede erikjacobsen Ekspert
08. juli 2001 - 18:41 #9
Måske virker det her direkte. Du må selv bøvle med at sætte det i tabeller:

<%
Set Conn = ServerCreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"spejder.mdb\")
strSQL = \"select funktioner.funktion as f,brugere.navn as n,brugere.email as e from brugere,funktioner where brugere.id=funktioner.refid\"
set rs = Conn.execute(strSQL)
if rs.EOF then
Response.write \"Der er igen ledere i databasen\"
else
Do Until rs.EOF
  response.write rs(\"f\") & \" \" & rs(\"n\") & \" \" & rs(\"e\") & \"<br>\"
  RS.MoveNext
Loop
end if

Conn.Close
Set Conn = Nothing
%>
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 18:53 #10
Det virker ikke!

Får følgende fejl:
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A000D)
Typerne passer ikke sammen: \'ServerCreateObject\'
/troldhoej/test2.asp, line 9


Browsertype:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Side:
GET /troldhoej/test2.asp

Klokkeslæt:
8. juli 2001, 18:54:53


Yderligere oplysninger:
Microsoft Support

I line 9:

Set Conn = ServerCreateObject(\"ADODB.Connection\")
Avatar billede erikjacobsen Ekspert
08. juli 2001 - 19:09 #11
hvor blev det punktum dog af ??

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 19:15 #12
Den indsætter alle daterne der er i tabellerne. Den skulle kun indsætte f.eks. alle dem hvor feltet gren i funktioner er = bestyrelse, men ellers ok!
Avatar billede erikjacobsen Ekspert
08. juli 2001 - 19:17 #13
strSQL = \"select funktioner.funktion as f,brugere.navn as n,brugere.email as e from brugere,funktioner where funktioner.gren=\'bestyrelse\' and brugere.id=funktioner.refid\"

...bare som én lang linie
Avatar billede sorenmt84 Juniormester
08. juli 2001 - 19:21 #14
Perfekt tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester