09. marts 2004 - 14:35Der er
22 kommentarer og 1 løsning
Hente oplysninger fra både "tabel" og "forespg." i Access-datab.
Hej eksperter
Jeg har en accessdatabase, som har brugeroplysninger i tabelnavnet "bruger" under tabeller og en "hus2" under forespørgsler.
Jeg har en side, som pt. kun kan hente oplysninger fra "hus2", men jeg får nu også behov for, at der kan hentes oplysninger fra "Bruger" under tabeller, altså navn, adresse osv.
Er der nogen, som kan sætte de rigtige linier ind, så jeg også kan hente oplysninger fra "bruger-tabellen"? Koderne ser således ud:
<% fl = 0 if session ("fl2") = 1 Then SQL = session("SQL")
Else Sql = "" Sql = "Select id, foto, op, antalp, grundareal, vr, Beskr, ann, Overskrift, amt, uge, link, Ledigt From hus2 where " if uge = "Uvæsentlig" Then sql = sql Else sql = sql & " uge = " & uge & " " End if if Antalp = "Uvæsentlig" then sql = sql & "Antalp >" & 0 & " " Else sql = sql & "and Antalp >=" & AP & " " end if if Pris = "Uvæsentlig" then 'sql = sql & "and Pris1 <=" & 0 & " " Else
sql = sql & "and pris1 <=" & Pris & " "
end if
if alle = "ON" Then sql = sql Else osv.
Skriv, hvis ovenstående koder ikke er nok. På forhånd tak.
Select id, foto, op, antalp, grundareal, vr, Beskr, ann, Overskrift, amt, uge, link, Ledigt, navn, adresse, felt3frabrugertabeller From hus2 inner join bruger on bruger.id = hus2.id where ....
Dette selvfølgelig forudsat, du har en id i henholdsvis bruger og hus2, som du kan kæde dem sammen på. Har du ikke en sådan id (eller andet, der kan bruges til entydigt at kæde dem sammen) kan det ikke lade sig gøre.
"bruger" og "hus2" hænger sammen med Id og ejer. Jeg har prøvet at indsætte den foreslåede linie (slettede "felt3..."), men kom med følgende fejlmelding:
Microsoft JET Database Engine error '80040e14'
Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
/Sgef2.asp, line 343
Hvis du kan hjælpe, så prøv at klikke på dette link www.campingoverblik.dk og vælg nordjylland. Det er på denne side, sgef2.asp, at jeg gerne vil have ændret siden, så der kan hentes oplysninger om den registrede bruger - ligesom, hvis der klikkes på "Info", hvor hus.asp vises med oplysninger fra både bruger-tabellen og forespg.-tabellen.
Sql = "Select hus2.*, bruger.navn as bNavn, bruger.addresse as bAdd From hus2 left join bruger on bruger.id=hus2.ejer where "
i stedet for:
Sql = "Select id, foto, op, antalp, grundareal, vr, Beskr, ann, Overskrift, amt, uge, link, Ledigt From hus2 where "
så får jeg desværre følgende fejlmelding:
Microsoft JET Database Engine error '80004005'
The specified field 'Amt' could refer to more than one table listed in the FROM clause of your SQL statement.
/Sgef2.asp, line 343
Det ser ud til, at der er mange flere ting, som hænger lidt spøjst sammen. Hvis I har andre ideer, vil det bare være godt, men ellers fordeler jeg alligevel pointene for jeres hjælp - "fennec" skal bare lige smide et svar, så jeg kan fordele pointene
nej det er rigtigt, men det kan også være nogle af de andre (foto, op, antalp, grundareal, vr, Beskr, ann, Overskrift, amt, uge, link, Ledigt) som står i din "where".
prøv at skrive din sql ud inden du bruger den i linje 343. Så skulle du gerne kunne se den. Vis os den, hvis du ikke selv kan se hvor problemet er...
response.write sql '******************lige her ************* objrs.open sql, conn, 1 If objrs.EOF And objrs.BOF Then Response.Redirect "ingenposter.asp" End if Pr = objrs.recordcount
Select hus2.*, bruger.navn as bNavn, bruger.addresse as bAdd From hus2 left join bruger on bruger.id=hus2.ejer where uge = 0 and Antalp >=1 and(hus2.Amt = 'Nord')and (Ledigt = 'checked')
Microsoft JET Database Engine error '80004005'
Type mismatch in expression.
/Sgef2.asp, line 344
Kan jeg skrive den ud på anden vis?
Bliver nødt til at koble fra her kl. 12 - sig endelig til, hvis det ikke helt er muligt at få ordnet på denne måde, hvorefter jeg må tænke lidt kreativt :-)
Umiddelbart ikke muligt, da "ejer" referer til brugernavn, som både kan være tal og bogstaver. Kom til at tænke på, om du er interesseret i at få tilsendt database og asp-side, og mod betaling lige redigere siden og evt. lave en anden lille ting (lave overskriften med fed, hvis felt i databasen = 1 og ikke med fed, hvis feltet er = 0), som jeg gerne vil have lavet?
det vil sige at det er brugerens navn der står i hus2.ejer??? hvis det er rigtigt skal du ændre bruger.id=hus2.ejer til bruger.navn=hus2.ejer. Jeg vil dog KRAFTIGT anbefale at lave det om, så det er brugerens id der står i hus2.ejer. Nu ved jeg selvfølgelig ikke hvordan resten af dine sider ser ud, men jeg vil tro at det er en meget lille ændring at lave.
Jeg vil med glæde kikke på det i weekenden, hvis du ikke har fået det til at virke. Jeg har alligevel et par andre små opgaver jeg skal have lavet.
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.