Avatar billede goce Nybegynder
19. februar 2004 - 19:09 Der er 10 kommentarer og
1 løsning

Fejl i overførsel af oplysninger fra 2 tabeller

-Jeg er ikke så meget inde i ASP, men har alligevel forsøgt mig her! På min side vil jeg udskrive nogle data fra to forskellige tabeller i databasen, efter at have overført oplysningen "ID" fra sidste side via et link.

-Først skal "dato", "overskrift" og "nyhed" (som knytter sig til overførte ID) fra tabellen "NYHED" udskrives en gang, og derefter skal alle "svaroverskrift", "svarkomm" og "svardato" (hvor "svarId" = "ID") fra tabellen "NYHED_KOMM" udskrives, til der ikke er flere, som har det "svarID". Men et eller andet er fuldstændig galt i min kode.
_________________________

Dette er en del af koden:

<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/database.mdb")

strSQL = "SELECT * FROM nyhed WHERE id ="& request.querystring("id")
Set rs = myConn.Execute(strSQL)
%>
_________________________

Og her imellem har jeg indsat:

<%=rs("dato")%>, <%=rs("overskrift")%> og <%=rs("nyhed")%>
_________________________

Og her hentes og udskrives så andre oplysninger:

<%
strSQL = "SELECT svarkomm, svaroverskrift, [svardato] FROM nyhed_komm WHERE svarId = " & rs("id") & " ORDER BY svardato DESC"

If Not (rs.BOF Or rs.EOF) Then

    Response.Write "<table border=0>"
    Response.Write "<tr><th><font color='#01079F' face='Verdana' size=2><p align=left>Dato</p></font></th><th><font face='Verdana' color='#01079F' size=2><p align=left>Overskrift</p></font></th><th><font face='Verdana' color='#01079F' size=2><p align=left>Kommentar</p></font></th></tr>"
    Do While Not rs.EOF
    Response.Write "<tr><td width=150><font face='Verdana' size=1>" & rs("svardato") & "</font></td>"
    Response.Write "<tr><td width=150><font face='Verdana' size=1>" & rs("svaroverskrift") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2><b>" & rs("svarkomm") & "</b></font></td></tr>"
    rs.MoveNext
    Loop
    Response.Write "</table>"
    Else
    ' Hvis der ikke er fundet nogle kommentarer
    Response.Write "<p><font face='Verdana' size=2>Der er ikke fundet nogle kommentarer!</font></p>"
End If

myConn.Close
Set Conn = Nothing
%>

_________________________

Men som sagt er der altså et eller andet helt galt... Hvad?

Goce
Avatar billede erikjacobsen Ekspert
19. februar 2004 - 19:11 #1
Du udfører ikke din anden sql-sætning
Avatar billede goce Nybegynder
19. februar 2004 - 19:13 #2
Udfører? Hvad skal jeg da skrive?
Avatar billede thesurfer Nybegynder
19. februar 2004 - 19:22 #3
strSQL = "SELECT svarkomm, svaroverskrift, [svardato] FROM nyhed_komm WHERE svarId = " & rs("id") & " ORDER BY svardato DESC"
Set rs = myConn.Execute(strSQL)
Avatar billede goce Nybegynder
19. februar 2004 - 19:27 #4
Jeg får stadig at vide, at der er noget galt...

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

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/musicstuff/admin/nyheder/profil2.asp, line 54

(Formodentlig i den nye Execute-linje!)
Avatar billede thesurfer Nybegynder
19. februar 2004 - 19:35 #5
hvis en ".Execute" fejler, skal man kigge på det den executer.. dvs, fejl er så i strSQL:

strSQL = "SELECT svarkomm, svaroverskrift, [svardato] FROM nyhed_komm WHERE svarId = " & rs("id") & " ORDER BY svardato DESC"

Typisk er det tal/tekst type fejl.. sådan som du har det nu, er svarID af typen tal, dvs, må ikke indeholde tekst/bogstaver.
Hvis svarID indholdet bogstaver, skal det være:

strSQL = "SELECT svarkomm, svaroverskrift, [svardato] FROM nyhed_komm WHERE svarId = '" & rs("id") & "' ORDER BY svardato DESC"
Avatar billede thesurfer Nybegynder
19. februar 2004 - 19:37 #6
dvs med ' tegn uden om indholdet af rs("id").
Men id er vel autonummerering, og er derfor tal..

Så jeg ved fakisk ikke hvorfor du får fejl.. erikjacobsen er bedre til databaser, mon ikke han kan hjælpe..?
Avatar billede goce Nybegynder
19. februar 2004 - 19:41 #7
Og pludselig virker det efter at have indsat '-tegn! Tark begge to... Jeg deler pointene imellem jer...
Avatar billede thesurfer Nybegynder
19. februar 2004 - 19:47 #8
dvs, din svarID indeholder bogstaver?

Så vidt jeg ved, så samler erikjacobsen ikke på points :)
-- Her er et svar.. læg selv et svar og fordel points mellem os :)
Avatar billede thesurfer Nybegynder
19. februar 2004 - 19:47 #9
man skal også makere "Svar" :)
Avatar billede goce Nybegynder
19. februar 2004 - 20:33 #10
Du får dem bare så... :)
Avatar billede thesurfer Nybegynder
19. februar 2004 - 20:45 #11
Så siger jeg tak! :-)
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