Avatar billede mothwe Nybegynder
07. februar 2002 - 06:37 Der er 10 kommentarer og
1 løsning

Hente data fra "relateret" tabel ?

Jeg har en database der indeholder to tabeller - en med information om brugere (brugernavn, fornavn og efternavn) samt en tabel der indeholder beskeder (memo) fra brugerne.

Tabellen der indeholder brugerinfo har et felt der hedder "lognavn" - dette felt er relateret til feltet "bruger" i den anden tabel.

På en asp side kan man se en liste over de beskeder brugerne har skrevet - og herunder deres brugernavn fra samme tabel, men jeg vil gerne have listet deres fornavn og efternavn fra den anden tabel i stedet for - hvordan gør jeg det?

Siden indeholder følgende:

<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("log/login.mdb")

SQLstmt = "SELECT * FROM notes ORDER BY ID desc;"
'
'response.write SQLstmt

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)
  %>

samt

      <%
  DO WHILE NOT rs.EOF
    ID = rs("ID")
    overskrift = rs("overskrift")
    besked = rs("besked")
    navn = rs("Bruger")
    Dato = rs("Dato")
    %>

<HR WIDTH="740">

<H3><%=overskrift%></H3>
<H4>Af <%=navn%> (<%=Dato%>)</H4>
<P><BR><%=besked%><BR><BR></P>

      <%
    rs.MoveNext
  LOOP
  RS.Close

conn.Close
Set conn = nothing
Set SQLstmt = nothing
    %>

I stedet for rs("Bruger") vil jeg altså gerne have felterne "fornavn" og "efternavn" fra samme "bruger" i den anden tabel.

Hvordan klarer jeg den?
Avatar billede keysersoze Ekspert
07. februar 2002 - 07:42 #1
hvilken database bruger du?
Avatar billede mothwe Nybegynder
07. februar 2002 - 07:49 #2
Access 2002
Avatar billede keysersoze Ekspert
07. februar 2002 - 08:08 #3
så prøv at åbn din database og lav en "forespørgsel" - der kan du vha WYSIWYG lave dine sql-sætninger... det er det klart letteste...
Avatar billede terry Ekspert
07. februar 2002 - 08:12 #4
SELECT notes.navn, Bruger.fornavn, Bruger.efternavn, notes.besked
FROM Bruger INNER JOIN notes ON Bruger.navn= notes.navn;
Avatar billede mothwe Nybegynder
07. februar 2002 - 08:40 #5
terry> Det er sikkert rigtigt nok - men hvor skal jeg sætte det ind?
Avatar billede terry Ekspert
07. februar 2002 - 08:42 #6
Doent you want to replace the SELECT you already have ?

change
SQLstmt = "SELECT * FROM notes ORDER BY ID desc;"
to
SQLstmt = "SELECT notes.navn, Bruger.fornavn, Bruger.efternavn, notes.besked
FROM Bruger INNER JOIN notes ON Bruger.navn= notes.navn; "
Avatar billede terry Ekspert
07. februar 2002 - 08:43 #7
then you need to alter your ASP to show all fields!
Avatar billede mothwe Nybegynder
07. februar 2002 - 08:48 #8
Jeg får denne besked:

ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

Er det i det her det går galt?

<%
  DO WHILE NOT rs.EOF
    ID = rs("ID")
    overskrift = rs("overskrift")
    besked = rs("besked")
    navn = rs("Bruger")
    Dato = rs("Dato")
    %>
Avatar billede terry Ekspert
07. februar 2002 - 08:52 #9
mothwe> The SELECT I sent is ONLY an example. It shows you how you can JOIN your two tables, You will need to alterit so aas to SELECT YOUR fields from yur tables. Then you need to alter your ASP to show the fields you select. You  CAN NOT show a field you havent included in your select!
Avatar billede mothwe Nybegynder
07. februar 2002 - 08:58 #10
Selvfølgelig - jeg er helt med nu (det tog sin tid) - tak for hjælpen :)
Avatar billede terry Ekspert
07. februar 2002 - 08:59 #11
selv tak :o)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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