Avatar billede renekoemler Nybegynder
16. marts 2004 - 11:26 Der er 6 kommentarer og
1 løsning

Når RecordSettet er tomt

Jeg henter nogle dat fra en query i access, der er bare ikke altid at der står noget i queryen (er sat til at udvælge på dato).

Når jeg så henter via asp får jeg exception fejl, hvilket jo også er ok - men jeg ville gerne have at man så istedet fik en besked om at den var tom. Har prøvet nedenstående uden større held:

<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
  DSN = DSN & "DBQ=" & Server.MapPath("/db/arrangement.mdb")
  Conn.Open DSN
 
  SQL = "Select * from qry_dagensarrangementer"
  Set rs = Conn.Execute(SQL)

  If rs.("arrangementDato") = "" Then
    Response.Write "Der er ingen registrerede arrangementer i dag<br><br>"
    Response.Write "<a href="arrangement_opret.htm">Opret Arrangement</a>"
  Else
    Response.Write "<h2>Dagens arrangementer: " & rs("arrangementDato")& "</h2>"
 
    Response.Write "<table border='0' cellspacing='0' width='100%'>"
    Response.Write "<tr>"
    Response.Write "<td><font size='1'><b>Tidspunkt</b></font><hr></td>"
    Response.Write "<td><font size='1'><b>Arrangement</b></font><hr></td>"
    Response.Write "<td><font size='1'><b>Sted</b></font><hr></td>" 
    Response.Write "</tr>"

    Do
      Response.Write "<tr>"
      Response.Write "<td><font size='1'>" & FormatDateTime(rs("arrangementTidspunkt"),4) & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementOverskrift") & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementSted") & "</font></td>"
      Response.Write "</tr>"
    rs.MoveNext

    Loop While Not rs.EOF

    Response.Write "</table>"
 
  Endif 

  Conn.Close
  Set Conn = Nothing
%>

ps.Kender i en god bog der omhandler .asp op mod access???


Bedste Hilsner
René
Avatar billede websam Nybegynder
16. marts 2004 - 11:32 #1
Prøv at ændre dette :

If rs.("arrangementDato") = "" Then

Til dette :

If (Rs.BOF Or Rs.EOF) Then

Med denne finder du ud af hvorvidt der er noget i dit recordset og hvis den er tom kan du udskrive so du gør ovenfor :o)

/Websam
Avatar billede henrikgn Nybegynder
16. marts 2004 - 11:33 #2
Lyder som om det ville være en god idé at bruge en Try...Catch løkke, hvis det siger dig noget - den vil fange de tilfælde, hvor rs er tom, og du kan lave kode, der skal køres i dette tilfælde.

Try
  'lav søgning i database og udskriv resultat
Catch
  'kode der skal køres, hvis søgningen i databasen fejler
Avatar billede renekoemler Nybegynder
16. marts 2004 - 11:54 #3
Hej Websam.

Har prøvet:

<%
  Set Conn = Server.CreateObject("ADODB.Connection")
  DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
  DSN = DSN & "DBQ=" & Server.MapPath("/db/arrangement.mdb")
  Conn.Open DSN
 
  SQL = "Select * from qry_dagensarrangementer"
  Set rs = Conn.Execute(SQL)

  If (rs.BOF Or rs.EOF) Then
    Response.Write "Der er ingen registrerede arrangementer i dag<br><br>"
    Response.Write "<a href="arrangement_opret.htm">Opret Arrangement</a>"
  Else
    Response.Write "<h2>Dagens arrangementer: " & rs("arrangementDato")& "</h2>"
 
    Response.Write "<table border='0' cellspacing='0' width='100%'>"
    Response.Write "<tr>"
    Response.Write "<td><font size='1'><b>Tidspunkt</b></font><hr></td>"
    Response.Write "<td><font size='1'><b>Arrangement</b></font><hr></td>"
    Response.Write "<td><font size='1'><b>Sted</b></font><hr></td>" 
    Response.Write "</tr>"

    Do
      Response.Write "<tr>"
      Response.Write "<td><font size='1'>" & FormatDateTime(rs("arrangementTidspunkt"),4) & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementOverskrift") & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementSted") & "</font></td>"
      Response.Write "</tr>"
    rs.MoveNext

    Loop While Not rs.EOF

    Response.Write "</table>"
 
  End If 

  Conn.Close
  Set Conn = Nothing
%>

Får en HTTP 500 fejl

/hvad gør jeg galt
Avatar billede websam Nybegynder
16. marts 2004 - 12:15 #4
Hvilken fejl udskriver den ? I hvilken linie ?

/Websam
Avatar billede websam Nybegynder
16. marts 2004 - 12:17 #5
Prøv at skifte dette :

Do
      Response.Write "<tr>"
      Response.Write "<td><font size='1'>" & FormatDateTime(rs("arrangementTidspunkt"),4) & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementOverskrift") & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementSted") & "</font></td>"
      Response.Write "</tr>"
    rs.MoveNext

    Loop While Not rs.EOF

Med dette :

    Do While Not rs.EOF
      Response.Write "<tr>"
      Response.Write "<td><font size='1'>" & FormatDateTime(rs("arrangementTidspunkt"),4) & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementOverskrift") & "</font></td>"
      Response.Write "<td><font size='1'>" & rs("arrangementSted") & "</font></td>"
      Response.Write "</tr>"
    rs.MoveNext
    Loop

/websam
Avatar billede renekoemler Nybegynder
16. marts 2004 - 13:44 #6
Så kører det!

TNX
Avatar billede websam Nybegynder
16. marts 2004 - 14:53 #7
Det var så lidt :o)

/Websam
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