<% Set Connect1 = Server.CreateObject("ADODB.Connection") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("p/file2.mdb") Connect1.Open strDSN Set RS_MainMessage1 = Connect1.Execute("SELECT top 5 * FROM com ORDER BY id DESC") do while not RS_MainMessage1.EOF navn = RS_MainMessage1("navn") besked = RS_Mainmessage1("besked") reference = RS_Mainmessage1("ref") beskededit = trim(Left(besked, 100)) & "..." %>
<% Set RS_MainMessage2 = Connect2.Execute("SELECT * FROM lop WHERE ID = " & reference & "") y1 = RS_MainMessage2("year") m1 = RS_Mainmessage2("month") i1 = RS_mainmessage2("id") %>
Bortset fra det...så skriver du id med stort i denn Set RS_MainMessage2 = Connect2.Execute("SELECT * FROM lop WHERE ID = " & reference & "") men med småt i denne i1 = RS_mainmessage2("id") Ikke at det ændrer din eof fejl...men det bør vel være ens :o)
prøv udskrive dem og se om du kan se hvad der går galt Altså <% Set Connect2 = Server.CreateObject("ADODB.Connection") strDSN2 = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("p/file1.mdb") Connect2.Open strDSN2 %>
<% Set Connect1 = Server.CreateObject("ADODB.Connection") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("p/file2.mdb") Connect1.Open strDSN sql1 = "SELECT top 5 * FROM com ORDER BY id DESC" response.write sql1 Set RS_MainMessage1 = Connect1.Execute(sql1) do while not RS_MainMessage1.EOF navn = RS_MainMessage1("navn") besked = RS_Mainmessage1("besked") reference = RS_Mainmessage1("ref") beskededit = trim(Left(besked, 100)) & "..." %>
<% sql2 = "SELECT * FROM lop WHERE ID = " & reference response.write sql2 Set RS_MainMessage2 = Connect2.Execute(sql2) y1 = RS_MainMessage2("year") m1 = RS_Mainmessage2("month") i1 = RS_mainmessage2("id") %>
Problem med EOF'en er, at den prøver at hente udtræk fra db'en hvor ID = 9999. Jeg har indsat 2 poster, som er lidt udenfor kategori, og som ikke skal tages med (dem havde jeg overset!).
Hvordan omskriver jeg nemmest : Set RS_MainMessage2 = Connect2.Execute("SELECT * FROM lop WHERE ID = " & reference & "") til at undtage de tilfælde hvor ID/reference = 9999 og 9998
Jeg gætter på du vælger top 5 fordi du vil have fem poster? Så du bliver nød til at lave en tæller hvis du ikke ved hvor mange poster som hedder 9999 eller 9998 og du stadig ønsker 5 ----- <% Set Connect2 = Server.CreateObject("ADODB.Connection") strDSN2 = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("p/file1.mdb") Connect2.Open strDSN2 count = 0
Set Connect1 = Server.CreateObject("ADODB.Connection") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("p/file2.mdb") Connect1.Open strDSN sql1 = "SELECT * FROM com ORDER BY id DESC" Set RS_MainMessage1 = Connect1.Execute(sql1) do while not RS_MainMessage1.EOF and count < 5 navn = RS_MainMessage1("navn") besked = RS_Mainmessage1("besked") reference = RS_Mainmessage1("ref") beskededit = trim(Left(besked, 100)) & "..." if reference <> 9999 and reference <> 9998 then count = count + 1 sql2 = "SELECT * FROM lop WHERE ID = " & reference response.write sql2 Set RS_MainMessage2 = Connect2.Execute(sql2) y1 = RS_MainMessage2("year") m1 = RS_Mainmessage2("month") i1 = RS_mainmessage2("id") %> <b><%=navn%></b> <br> <%=beskededit%> <br><br> <a href="site.asp?y=<%=y1%>&m=<%=m1%>&input=<%=i1%>" class="ulink" onfocus="this.blur()">læs indlæg</a> <% end if rs_mainmessage1.Movenext loop %>
Fordeler dem 20/10, da cpufan har gjort et godt forsøg ! ;)
Synes godt om
Ny brugerNybegynder
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.