Avatar billede pretsmann Nybegynder
20. januar 2005 - 21:32 Der er 12 kommentarer og
1 løsning

Hent data fra tabel

Jeg har en dropdown liste hvor jeg putter data ned i en access db. Ser således ud:

<select name="Region" style="width:200; font-family:Verdana; font-size:8 pt"><option><%=rs("Region")%></option>
<option value="10">&nbsp;&nbsp;• Århus amt</option>
<option value="11">&nbsp;&nbsp;• Viborg amt</option>
<option value="12">&nbsp;&nbsp;• Fyns amt</option>
</select>

Vælges Århus amt skrives 10 i db, hvilket også er fint - Men når felter Region hentes fra db skulle der gerne skrives Århus amt i stedet for 10.... Jeg har lavet en tabel mere hvor id feltet er 10 og region Århus amt, men hvordan f..... får jeg den til at det????
Avatar billede ellebaek Nybegynder
20. januar 2005 - 22:11 #1
du kan gøre det ved at lave din query lidt om...

fx.
sql = "SELECT tabel1.region AS regionID, tabel2.region AS regionNavn FROM tabel1 INNER JOIN tabel2 ON tabel1.region = tabel2.id"

så kan du blot hente det ud til din dropdown med:
<%=rs("regionNavn")%> i stedet...

Så kan du hvis du skal bruge id'et lave din option om til:
<option value="<%=rs("regionID")%>"><%=rs("regionNavn")%></option>
Avatar billede pretsmann Nybegynder
20. januar 2005 - 22:51 #2
hmm, får flg. fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Cannot join on Memo, OLE, or Hyperlink Object (amter.id=annoncer.region).

Og har gjort flg:
                        Set rs2 = Server.CreateObject("ADODB.Recordset")
                        sql = "SELECT annoncer.region AS regionID, amter.region AS regionNavn FROM annoncer INNER JOIN amter ON annoncer.region = amter.id"
                        rs2.open sql, conn, 1, 3




også:

                  <select name="Region" style="width:200; font-family:Verdana; font-size:8 pt"><option><%=rs2("regionNavn")%></option>


Er det helt tosset?
Avatar billede ellebaek Nybegynder
20. januar 2005 - 23:09 #3
nej, det sker rigtigt ud...

er annoncer.region et tal felt ?
og er amter.region et tal felt ?
Avatar billede pretsmann Nybegynder
20. januar 2005 - 23:12 #4
annoncer.region er et notat felt
og amter.region er et tekst felt
Avatar billede ellebaek Nybegynder
20. januar 2005 - 23:23 #5
hmm...
de skal vidst være af samme type for at det virker..
men indeholder de ikke begge kun tal..?
Avatar billede pretsmann Nybegynder
20. januar 2005 - 23:26 #6
Nej de indeholder begge f.eks. Århus Amt

amter.id er tal
Avatar billede ellebaek Nybegynder
20. januar 2005 - 23:31 #7
har du tallet i begge tabeller..?
Avatar billede pretsmann Nybegynder
20. januar 2005 - 23:43 #8
shit det er mig der er en klovn...

annoncer.region er et notat felt - men det indeholder selvfølgelig tallet

og amter.id indeholder også tallet
og amter.region indeholder århus amt
Avatar billede ellebaek Nybegynder
20. januar 2005 - 23:45 #9
okay..

Så skal du lave annoncer.region til et tal felt..

Og så kan du joine med den query fra før...
Det burde virke..

sql = "SELECT annoncer.region AS regionID, amter.region AS regionNavn FROM annoncer INNER JOIN amter ON annoncer.region = amter.id"
Avatar billede pretsmann Nybegynder
20. januar 2005 - 23:56 #10
Ja tak.... Det var det der skulle til!!

Mange tak for tålmodigheden.

Laver du et svar?
Avatar billede ellebaek Nybegynder
20. januar 2005 - 23:57 #11
jo der er et svar her..

Og velbekomme..
Skulle det være en anden gang ;-)
Avatar billede pretsmann Nybegynder
21. januar 2005 - 00:59 #12
hmm jeg brugte feltet på en side hvor man kan opdatere en annonce... Nu kan man kun opdatere feltet region ellers kommer denne fejl:

Provider error '80020005'

Type mismatch.

/login_bruger.asp, line 1173

                <% if mode = "ret_annonce" then
                       
                        'Tjecker om brugeren er logget ind
                        if session("brugernavn") = "" then
                            Response.Redirect("login_udlejer.asp?mode=login")
                        end if
                       
                        'Henter udlejerens annonce
                        Set rs = Server.CreateObject ("ADODB.Recordset")
                        rs.Open "SELECT * FROM annoncer WHERE annonceId = " & Request.QueryString("Id"), conn, 2, 2
                       
                        Set rs2 = Server.CreateObject("ADODB.Recordset")
                        sql = "SELECT annoncer.region AS regionID, amter.region AS regionNavn FROM annoncer INNER JOIN amter ON annoncer.region = amter.id"
                        rs2.open sql, conn, 1, 3
                       
                        if Request.ServerVariables("REQUEST_METHOD") = "POST" then
                               
                            'Opdaterer felterne
                            rs("Region") = Server.HTMLEncode(Request.Form("Region"))
                            rs("Postnr") = Server.HTMLEncode(Request.Form("Postnr"))
                            rs("Postby") = Server.HTMLEncode(Request.Form("Postby"))
                            rs("Telefon") = Server.HTMLEncode(Request.Form("Telefon"))
                            rs.update
                           
                        end if %>

line 1173 = rs("Region") = Server.HTMLEncode(Request.Form("Region"))
Avatar billede ellebaek Nybegynder
21. januar 2005 - 01:06 #13
du skal rette din option til:
<option value="<%=rs("regionID")%>"><%=rs("regionNavn")%></option>

så kører den på tal som den skal..!
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