Avatar billede tblaster Nybegynder
29. juli 2003 - 15:45 Der er 4 kommentarer og
1 løsning

Skal udskrive alle informationer også når dato-tid er den samme

Lige nu benytter jeg følgende til at hente data fra min db:

Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("../../db/Booking.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)};Password=1234 ;" & DBPath
'Find Bookninger for valgte dato
dato = sQMdr & "-" & sQDag & "-" & sQAar ' Format til DB MM-DD-YYYY
SQL = "SELECT lokalenr, tid, firma, initialer, mail, kommentar FROM booking WHERE dato = #" & dato & "#"

set rs = con.execute (SQL)

dato = sQMdr & "-" & sQDag & "-" & sQAar ' Format til DB MM-DD-YYYY
booWeekend = Weekday(datoStr) = 1 or Weekday(datoStr) = 7 'Er det lørdag/søndag
SQL = "SELECT lokalenr, tid, firma, initialer, kommentar FROM booking WHERE dato = #" & dato & "#"

<%
function CStr2(Value)
  if Value < 10 then
    CStr2 = "0" & CStr(Value)
  else
    CStr2 = CStr(Value)
  end if
end function

TCnt = 7 ' Starttid
MCnt = 0 ' Startminutter

for Cnt = 1 to 33 ' Antal linier
  strtid = CStr2(TCnt) & ":" & CStr2(MCnt)
  TTime = TCnt * 100 + MCnt ' Tiden der skal udskrives nu
 
  if not rs.EOF then
    start = rs("tid")
    RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale
  else
    RTime = 0
  end if
  If TTime = RTime And session("ID") = 4 And session("lokalenr") = 2 Then
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "Seminarrum benyttes:" & rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
      rs.movenext
  Else 
  If TTime = RTime Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If session("Id") <> 2 Then
    if not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
  End If
  End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if
 
%>

Mit problem er at jeg i min database godt kan have en dato og tid med flere bookninger. Men når jeg så udskriver den så udskrives kun det første bookning og ikke dem bægge. Hvordan får jeg koden til at checke for alle bookninger og hvis der er flere så udskrive kommentaren til alle bookninger?
Avatar billede longshanks Nybegynder
29. juli 2003 - 17:26 #1
kan du ikke lave en
SELECT * FROM Booking where dato = #"& dato

og så gennemløbe resultsettet

f.eks. med

do
Response.Write(rs("lokalenr")
rs.MoveNext
loop while not rs.eof

osv osv
Avatar billede longshanks Nybegynder
29. juli 2003 - 17:26 #2
SELECT * FROM Booking where dato = #"& dato &"#"
selvfølgelig
Avatar billede tblaster Nybegynder
30. juli 2003 - 09:02 #3
Jeg har prøvet at indsætte en do og loop omkring det hele men får bare en fejl:
'loop' without 'do'

Den siger at fejlen  ligger i min linje med loop. Her er koden:
do while not rs.eof

TCnt = 7 ' Starttid
MCnt = 0 ' Startminutter

for Cnt = 1 to 33 ' Antal linier
  strtid = CStr2(TCnt) & ":" & CStr2(MCnt)
  TTime = TCnt * 100 + MCnt ' Tiden der skal udskrives nu
 
  if not rs.EOF then
    start = rs("tid")
    RTime = Hour(start) * 100 + Minute(start) ' Tiden for næste aftale
  else
    RTime = 0
  end if
  If TTime = RTime And session("ID") = 4 And session("lokalenr") = 2 Then
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "Seminarrum benyttes:" & rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
      rs.movenext
  Else 
  If TTime = RTime Then
    strKommentar = rs("kommentar") & " (<a href=""mailto:" & rs("mail") & """  class=""maillink"">" & rs("initialer") & "</a>, " & rs("firma") & ")"
    rs.movenext
  Else
    ' Check for frokostpause
  If session("Id") <> 2 Then
    if not booWeekend and (TTime >= 1130 and TTime <= 1300) then
      strKommentar = "Kantinen serverer frokost"
    else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
    End If
  else
      strTid = "<a href=""bestil.asp?Lokale=" & sQLokale & "&Dag=" & sQDag & "&Mdr=" & sQMdr & "&ÅR=" & sQAar & "&Tid=" & strTid & """ style=""text-decoration: none"">" & strTid & "</a>"
      strKommentar = "&nbsp;"
  End If
  End If
  End if
  SkrivLinie strTid, strKommentar
  ' Tiden i næste linie
  MCnt = MCnt + 30
  if (MCnt = 60) then
    MCnt = 0
    TCnt = TCnt + 1
  end if

loop
Avatar billede tblaster Nybegynder
30. juli 2003 - 09:34 #4
Er det ellers ikke bare muligt at gør så den inden den gennemløber hele databasen så undersøger om der er tider der er ens. Og hvis der er tider der er ens så udskriver den dem ikke men skriver bare i feltet at der er 2 reservationer eller sådan noget.
Avatar billede tblaster Nybegynder
22. september 2003 - 11:53 #5
lukker
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