Avatar billede mettecarsten Nybegynder
09. marts 2004 - 14:35 Der 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.
Avatar billede fennec Nybegynder
09. marts 2004 - 15:09 #1
hænger bruger og hus2 tabellerne sammen på en eller anden måde. Eller vil du bare have alle brugere skrevet ud???
Avatar billede the_bma_man Nybegynder
09. marts 2004 - 18:34 #2
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.
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 07:03 #3
"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.

Hjælper dette?
Avatar billede fennec Nybegynder
10. marts 2004 - 08:07 #4
Sql = "Select hus2.*, bruger.navn as bNavn, bruger.addresse as bAdd From hus2 left join bruger on bruger.id=hus2.ejer where "

også skulle resten gerne være det samme. navn og add kan trækkes ud med bNavn og bAdd.
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 09:51 #5
Hvis jeg indsætter:

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
Avatar billede fennec Nybegynder
10. marts 2004 - 10:28 #6
Du har sikkert amt til at stå i din where. prøv at ændre det til hus2.amt
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 10:44 #7
Det hjalp, men kom nu med en ny fejlmelding:

Microsoft JET Database Engine error '80004005'

Type mismatch in expression.

/Sgef2.asp, line 343

Line 343 er til sidst i hele asp-kodningen og ser således ud (1. linie):

objrs.open sql, conn, 1
If  objrs.EOF And objrs.BOF Then
Response.Redirect "ingenposter.asp"
End if
Pr = objrs.recordcount



%>
Avatar billede fennec Nybegynder
10. marts 2004 - 10:51 #8
En af dine typer er sikkert tekst. Når du laver sammenligning på tekst felter skal det stå i '. f.eks.

sql = sql & " and hus2.amt='" & amt &"'"
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 11:03 #9
Er nok ikke helt med - mange gange står der f.eks.:

sql = sql & "hus2.Amt = 'Nord'" - forkert?
Avatar billede fennec Nybegynder
10. marts 2004 - 11:10 #10
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
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 11:21 #11
Tak for din tålmodighed :-) Jeg er desværre ikke helt med. Det er først noget længere nede, at jeg bruger "response.write..", f.eks.;

    <%
        id = objrs("id")
        foto4 = id & "/1.jpg"
        Response.write "<img border='0'  src= '" & foto4 & "'" & "width='100' height='66'></td>"
        %>
                  </center>
                  <td valign="top" align="left" width="240" style="padding-left: 3; padding-right: 3; padding-top: 2">
                    <p align="left"><font face="Arial" size="3">
                    <b>
        <%           
        Response.write objrs("Overskrift")
        %>

Hvis jeg skal vise jer kodningen, skal jeg så kopiere hele sidens kodning eller bedre refere til et link, hvor der så kan ses kildekoden?
Avatar billede fennec Nybegynder
10. marts 2004 - 11:32 #12
jeg vil se din sql sætning som den er i en helhed, når det hele er blevet sat sammen. "select ... from ... where ....".

Den skulle gerne blive skrevet ud hvis du sætter "response.write sql" i linje 343 eller lige efter du er færdig med at bygge sql'en op.
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 11:43 #13
Jeg har nu indsat:

response.write sql i linie 343

Herefter bliver fejlmeldingen:

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 :-)
Avatar billede fennec Nybegynder
10. marts 2004 - 11:47 #14
hvilken datatype er (tekst, tal.....):
bruger.id
hus2.ejer
uge
Antalp
hus2.Amt
Ledigt
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 11:52 #15
Umiddelbart ser det ud til, at alle er enten tekst eller tal
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 11:59 #16
Jeg bliver nødt til at koble af :-)
Avatar billede fennec Nybegynder
10. marts 2004 - 12:02 #17
hvilke er tekst og hvilke er tal????
Avatar billede mettecarsten Nybegynder
10. marts 2004 - 18:29 #18
Bruger.id = Id i bruger-tabellen er "autonummerering"
hus2.ejer = tekst
uge = tal
antalp = tal
hus2.amt = tekst
Ledigt = tekst
:-)
Avatar billede fennec Nybegynder
11. marts 2004 - 08:12 #19
problemet er i bruger.id(tal)=hus2.ejer(tekst). Ændre hus2.ejer til et tal, så virker det...
Avatar billede mettecarsten Nybegynder
11. marts 2004 - 09:51 #20
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?
Avatar billede fennec Nybegynder
11. marts 2004 - 10:06 #21
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.
Avatar billede mettecarsten Nybegynder
11. marts 2004 - 11:10 #22
Jeg er gået kold! Kan du ikke lige sende mig en mail: mettecarsten@stofanet.dk, så vi lige kan aftale nærmere.
Avatar billede fennec Nybegynder
13. marts 2004 - 17:48 #23
Her er et svar.
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