Avatar billede mekaniker Nybegynder
16. december 2001 - 23:50 Der er 4 kommentarer og
1 løsning

Hjælp søges

Jeg har 3 tabeller i en access db  (varegrupper, undergrupper, produkter) som er relateret til hinanden.
Jeg har lavet et site som først lister alle varegrupperne op. Ved klik på en varegruppe bliver de tilhørende undergrupper listet op og ved klik på en undergruppe bliver de tilhørende produkter listet op.
Dette virker som det skal.
I tabellen over produkterne har jeg et afkrydsningsfelt som hedder nyhed. Min ide med dette felt var at jeg på forsiden af sitet ville have et link, til en side som lister mine varegrupper op. Ved klik på en varegruppe skulle jeg så have vist de nyheder som tilhøre denne varegruppe.
hvordan kan man lave dette når varegruppe-tabellen og produkt-tabellen ikke er direkte relateret til hinanden.

//Mekaniker
Avatar billede bobbedude Nybegynder
17. december 2001 - 06:57 #1
select from nyheder where varegruppe = true
Avatar billede tmceu Praktikant
17. december 2001 - 07:56 #2
bobbe >> du mangler enten * eller felt/-er i din SELECT :-)

Jeg går ud fra at dine tabeller er linket som dette

ID i Varegruppe = VaregruppeID i Undergruppe
ID i Undergruppe = UndergruppeID i Produkter

I så fald kan du lave flg.

SELECT VareNummer, VareTekst, Pris
FROM Produkter
INNER JOIN UnderGruppe ON Produkter.UndergruppeID=Undergruppe.ID
INNER JOIN Varegrupper ON Undergrupper.VaregruppeID=Varegruppe.ID
WHERE Varegrupper.ID=XX
Avatar billede mekaniker Nybegynder
17. december 2001 - 16:34 #3
tmceu >>
Jeg kan godt se ideen i det du skriver, nu kender jeg godt ikke så meget til inner join.
Men jeg kan ikke få det til at virke.
Jeg får følgende fejl.
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'Produkter.Undergruppe_id=Undergruppe.Id INNER JOIN Varegrupper ON Undergrupper.Varegruppe=Varegruppe.Id\'.
/jens/filmsite/user/nyheder.asp, line 39

Min sql ser således ud:
sql = \"SELECT Varenr, Varebeskrivelse, udsalgspris_incl_moms FROM Produkter INNER JOIN Undergruppe ON Produkter.Undergruppe_id=Undergruppe.Id INNER JOIN Varegrupper ON Undergrupper.Varegruppe=Varegruppe.Id WHERE Varegrupper.Id=\" & Request.Querystring(\"Id\")
-----------------------------------------------

Dette er min side som lister aller varegrupperne op.
<%
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../db/varer.mdb\")

strSQL = \"SELECT * FROM varegrupper\"
set rs = myconn.execute(strSQL)

Do
    Id = rs(\"Id\")
    varegruppe = rs(\"varegruppenavn\")
   
    link = \"<a href=nyheder.asp?Id=\" & rs(\"Id\") & \">\" & varegruppe & \"</a>\"

    Response.Write \"<li><b>\" & link & \"</b></li>\"
   
rs.MoveNext
Loop While Not rs.EOF
myconn.Close
Set myconn = Nothing
%>

//Mekaniker
Avatar billede tmceu Praktikant
17. december 2001 - 16:53 #4
Hvad hvis du prøver at køre SQL statement\'et direkte i Access ?

Jeg bruger den type joins jævnligt uden problemer. Du evt. også prøve at lave din forespørgsel grafisk i Access og så kopiere koden, så vil du dog få en masse \" i den SQL kode Access genererer.
Avatar billede mekaniker Nybegynder
27. december 2001 - 10:36 #5
Lukker, da jeg har fundet en anden løsning
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