Avatar billede wilweb Nybegynder
04. april 2002 - 22:18 Der er 9 kommentarer og
1 løsning

sammenlign udtræk fra Access DB

Hej
Jeg har brug for at sammenlign udtræk fra Access DB

strSQL = "SELECT strDato,strBooking FROM tbl_kalender Where Month(strDato)=" & MyMonth & " Order by strDato"

Finder alle records i samme måned (MyMonth) og i rs("strBooking") er der en værdi jeg vil have fat i og arbejde videre med.
I db'ens records kan der godt være samme dato op til 3 gange.
hvordan tjekker jeg at der er flere poster under samme dato og hvis der er hvordan lægger værdier fra rs("strBooking")sammen.
Håber det er til at forstå.
Gizom:>
Avatar billede larsen1 Nybegynder
04. april 2002 - 23:09 #1
Hvis jeg forstår dig ret, kan du vel gøre sådan her:

do while rs.EOF = false
    sum=sum + rs("strBooking")
    antalposter = antalposter +  1
    adoRec.MoveNext
Loop

/simon
Avatar billede wilweb Nybegynder
04. april 2002 - 23:42 #2
Naaa, du forstår mig vist ikke rigtigt tror jeg!
Jeg er ved at forsøge mig på et booking system
Her kan man reservere sig ind i 3 tidsrum. Formiddag, Eftermiddag eller Hele dagen.
Når man reserverer tid får de forskellige værdier alt efter tidspunktet man reserverer sig ind på.
Formiddag = 1
Eftermiddag = 2
Hele dagen = 3

Når jeg så vil lave min kalender må jeg jo vide:
1. er formiddag og eftermiddag optaget?
2. er hele dagen optaget?
Det skal jeg vide for at farve dagene i kalenderen med forskellige farver alt efter hvordan status er (hvor meget de er optaget).
værdi 1 = #000099
værdi 2 = #009900
værdi 3 = #990000

Derfor er jeg nød til at finde de dage der er reserveret formiddag og eftermiddag og lægge værdier sammen så dagen bliver vist som helt optaget.
Håber jeg fik forklaret mig bedre her?
Avatar billede larsen1 Nybegynder
04. april 2002 - 23:50 #3
do while rs.EOF = false
    booksum=booksum + rs("strBooking")
    adoRec.MoveNext
Loop

select case booksum
  case 1
    backtablecolor ="#000099"
  case 2
    backtablecolor ="#009900"
  case else
    backtablecolor ="#990000"
end select

response.write "<td bgcolor='" & backtablecolor & "'>"

Var det bedre?
Avatar billede larsen1 Nybegynder
04. april 2002 - 23:51 #4
Så vil hele dagen være optaget, hvis der er en der har booket en hel dag(3) eller en der har booket formiddag og en anden eftermiddag(1+2)
Avatar billede wilweb Nybegynder
04. april 2002 - 23:53 #5
Fino, Jeg prøver det lige
Avatar billede wilweb Nybegynder
05. april 2002 - 00:03 #6
Alle <TD> bliver røde nu!
Gider du se hele koden? for evt. at finde min dumme fejl?
Avatar billede larsen1 Nybegynder
05. april 2002 - 00:16 #7
Jeps - kom bare med den. Du kan også maile den til simon@simonlarsen.dk
Avatar billede wilweb Nybegynder
05. april 2002 - 00:31 #8
' jeg sender en zip fil til dig med hele booking tingen

<!-- <% server.execute "_incloginok.asp" %> -->
<html>
<head>
<title>Online-Booking: booking</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/style_kal.css">
</head>
<%
Dim MyMonth 'Month of calendar
Dim MyYear  'Year of calendar
Dim FirstDay 'First day of the month.  0 = Sunday
Dim CurrentDay 'Used to print dates in calendar
Dim Col 'Calendar column
Dim Row 'Calendar row
Session.LCID = 1030
MyMonth = Request.Querystring("Month")
MyYear = Request.Querystring("Year")

If IsEmpty(MyMonth) then MyMonth = Month(Date)
    if IsEmpty(MyYear) then MyYear = Year(Date)

    Call ShowHeader (MyMonth, MyYear)
   
    FirstDay = WeekDay(DateSerial(MyYear, MyMonth, 1)) -1
    CurrentDay = 1
    x = 1
    '---
'\ connection til db
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath ("data/kalender.mdb")
    Conn.Open DSN
    strSQL1 = "SELECT strDato,strBooking FROM tbl_kalender Where Month(strDato)=" & MyMonth & " Order by strDato"
    Set rs = Conn.Execute(strSQL1)
   
'\ for at undgå evt. fejl, laves en if sætning,
'\ og smider vores records ind i et array
'    if not rs.eof then
'      arrRecords = rs.getrows()
'    end if

'\Bygger vores kalender
        For Row = 0 to 5
            For Col = 0 to 6
                If Row = 0 and  Col < FirstDay then
                    response.write "<td> </td>"
                elseif CurrentDay > LastDay(MyMonth, MyYear) then
                    response.write "<td> </td>"
                else
        '
        '
'her skal der tjekkes om hvilken frave der skal bruges
        '
        '       
                  do while rs.EOF = false
                        booksum=booksum + rs("strBooking")
                            adoRec.MoveNext
                    Loop
                       
                        select case booksum
                          case 1
                            backtablecolor ="#000099"
                          case 2
                            backtablecolor ="#009900"
                          case else
                            backtablecolor ="#990000"
                        end select
                        response.write "<td bgcolor='" & backtablecolor & "' align='center'><a href = 'bookingform.asp?day=" & CurrentDay & "&month=" & MyMonth & "&year=" & MyYear & "'>" & CurrentDay & "</a></td>"   
                        CurrentDay = CurrentDay + 1
                End If
            Next
            response.write "</tr>"
        Next
            response.write "</table>"

'\ nu er data hentet ud, så lukke vores connection igen
'\Luk database
    Conn.Close
    Set Conn = Nothing

'\------ Sub and functions
Sub ShowHeader(MyMonth,MyYear)
%>
<table border="1" cellspacing="0" cellpadding="0" width="40%" align="center" bordercolor="#FFFFFF" bgcolor="#EFEFEF">
  <tr align="center">
    <td colspan="7">
      <table border="0" cellspacing="0" cellpadding="0" width="100%" bordercolor="#CCCCCC" bgcolor="#EFEFEF" >
        <tr>
          <td align="center" class="tbl_head">
            <%
                response.write "<b>" & MonthName(MyMonth) & " " & MyYear & "</b>"
            %>
          </td>
        </tr>
      </table>
    </td>
  </tr>
  <tr align='center'>
    <td class="tbl_head_kal" width="15%">Søn</td>
    <td class="tbl_head_kal" width="14%">Man</td>
    <td class="tbl_head_kal" width="14%">Tir</td>
    <td class="tbl_head_kal" width="14%">Ons</td>
    <td class="tbl_head_kal" width="14%">Tor</td>
    <td class="tbl_head_kal" width="14%">Fre</td>
    <td class="tbl_head_kal" width="15%">Lør</td>
  </tr>
  <%
End Sub

Function MonthName(MyMonth)
    Select Case MyMonth
        Case 1
            MonthName = "Januar"
        Case 2
            MonthName = "Febuar"
        Case 3
            MonthName = "Marts"
        Case 4
            MonthName = "April"
        Case 5
            MonthName = "Maj"
        Case 6
            MonthName = "Juni"
        Case 7
            MonthName = "Juli"
        Case 8
            MonthName = "August"
        Case 9
            MonthName = "September"
        Case 10
            MonthName = "Oktober"
        Case 11
            MonthName = "November"
        Case 12
            MonthName = "December"
        Case Else
            MonthName = "ERROR!"
    End Select
End Function

Function LastDay(MyMonth, MyYear)
    ' Returns the last day of the month. Takes into account leap years
    ' Usage: LastDay(Month, Year)
    ' Example: LastDay(12,2000) or LastDay(12) or Lastday
    Select Case MyMonth
      Case 1, 3, 5, 7, 8, 10, 12
            LastDay = 31
      Case 4, 6, 9, 11
            LastDay = 30
      Case 2
            If IsDate(MyYear & "-" & MyMonth & "-" & "29") Then LastDay = 29 Else LastDay = 28
      Case Else
            LastDay = 0
    End Select
End Function
 
%>
</table>
<table width="40%" border="0" cellspacing="2" cellpadding="2" align="center" bordercolor="#000000">
  <tr align="center">
    <td >
      <%
        response.write "<a href = 'booking.asp?"
        if MyMonth - 1 = 0 then
            response.write "month=12&year=" & MyYear -1
        else
            response.write "month=" & MyMonth - 1 & "&year=" & MyYear
        end if
            response.write "'><<</a>"
    %>
    </td>
    <td width="40%"> <a href="loginform.asp">Login</a> </td>
    <td width="40%"> <a href="info.asp">Information</a></td>
    <td width="10%" >
      <%
        response.write "<a href = 'booking.asp?"
        if MyMonth + 1 = 13 then
            response.write "month=1&year=" & MyYear + 1
        else
            response.write "month=" & MyMonth + 1 & "&year=" & MyYear
        end if
            response.write "'>>></a>"
    %>
    </td>
  </tr>
</table>
<%
    'skriver header til hvem der har booket
    Response.write "<table width='40%' border='0' cellspacing='2' cellpadding='2' align='center' bordercolor='#000000'>"
    Response.write "<tr align='center'>"
    response.write "<td class='tbl_head' colspan='4'>Online-Booking i " & MonthName(MyMonth) & "</td>"
    Response.write "</tr>"
    Response.write "<tr align='center'>"
    response.write "<td class='tbl_head_kal'>Dato</td>"
    response.write "<td class='tbl_head_kal'>Navn</td>"
    response.write "<td class='tbl_head_kal'>Adresse</td>"
    response.write "<td class='tbl_head_kal'>Telefon</td>"
    Response.write "</tr>"
    'open db
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("data/kalender.mdb")
Conn.Open DSN
strSQL = "Select * From tbl_kalender Where Month(strDato)='" & MyMonth & "' Order by strDato"
Set rs = Conn.Execute(strSQL)
    Do While Not rs.EOF
        Response.write "<tr align='center'>"   
        response.write "<td class='tbl_log'>" & rs("strDato") & "</td>"
        response.write "<td class='tbl_level2'>" & rs("strNavn") & "</td>"
        response.write "<td class='tbl_level2'>" & rs("strAdresse") & "</td>"
        response.write "<td class='tbl_level2'>" & rs("strTelefon") & "</td>"
        Response.write "</tr>"
    rs.MoveNext
    Loop
          Response.write "<tr align='center'>"
       
        Response.write " <td colspan='4'>&nbsp;</td>"
        Response.write "</tr>"
        Response.write "</table>"

 
    response.write "</table>"


'Luk database
Conn.Close
Set Conn = Nothing

'\ tjekker indholdet af array'et
if isarray(arrRecords) then
  response.write "<table width='40%' Align='Center'><tr>" & vbcrlf
  response.write "<td width='50%'>Dag  </td>" & vbcrlf
  response.write "<td width='50%'>Værdi </td>" & vbcrlf
 
  for i=0 to ubound(arrRecords,2)
    response.write "<tr>" & vbcrlf
    response.write "<td>" & Day(arrRecords(0,i)) & vbcrlf
    response.write "<td>" & arrRecords(1,i) & vbcrlf
   
    response.write "</tr>" & vbcrlf
  next
  response.write "</table>"
end if

%>

</body>
</html>
Avatar billede larsen1 Nybegynder
05. april 2002 - 00:57 #9
Fil mailet retur. =)
Avatar billede wilweb Nybegynder
05. april 2002 - 07:51 #10
Jeg har fået tilsendt Larsen1's løsning som virker perfekt!!! intet minder.

Jeg bringer her ændringer, der fik det til at virke:

'---kode-----
'\ for at undgå evt. fejl, laves en if sætning,
'\ og smider vores records ind i et array
    if not rs.eof then
      arrRecords = rs.getrows()
    end if

'\Bygger vores kalender
        For Row = 0 to 5
            For Col = 0 to 6
                If Row = 0 and  Col < FirstDay then
                    response.write "<td> </td>"
                elseif CurrentDay > LastDay(MyMonth, MyYear) then
                    response.write "<td> </td>"
                else
                    booksum=0
'\ tjekker indholdet af array'et
                        if isarray(arrRecords) then
                          for i=0 to ubound(arrRecords,2)
                            if Day(arrRecords(0,i)) = CurrentDay then
                                booksum=booksum + arrRecords(1,i)
                            end if
                          next
                        end if
                       
                        select case booksum
                          case 0
                            backtablecolor ="#999999"
                          case 1
                            backtablecolor ="#000099"
                          case 2
                            backtablecolor ="#009900"
                          case else
                            backtablecolor ="#990000"
                        end select
                        response.write "<td bgcolor='" & backtablecolor & "' align='center'><a href = 'bookingform.asp?day=" & CurrentDay & "&month=" & MyMonth & "&year=" & MyYear & "'>" & CurrentDay & "</a></td>"   
                        CurrentDay = CurrentDay + 1
                End If
            Next
            response.write "</tr>"
        Next
            response.write "</table>"
'---ændring slut

Tak for hjælpen larsen1
jeg opretter et nyt spørgesmål og tildeler nogle flere point. Det fortjrner du.
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