04. april 2002 - 22:18Der 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:>
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?
' 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
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
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.
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.