Om man har en bokning (i detta fall en hyrsjö). Hur gör man för att det bara ska gå att boka en sjö 1ggr på samma datum? Att kolla mot dagens datum förstår jag men sen kan det ju vara 1 av 6 olika sjöar... En if-sats men rätt jämförelse men hur :q
dagensdatum = date()
If dNewDatum = dagensdatum Then
<p>Redan bokad</p>
Else
bla bla bla
Och vad ar dNewDatum for varde? har du konverterat det till datum CDate(value) ? Om det ar flera sjoar som man kan boka sa maste du kolla aven om den redan finns bokad ocksa med en SQL fraga eller var du har denna data om den ar bokad eller inte.
sql fraga kan se ut nagot liknande:
"SELECT * FROM tblBookings WHERE BookingDate = #" & CDate(formDatumet) & "# AND BookingLake = '" & FormLakeName & "'"
och om Recordsetet ar EOF sa har ingen gjort bokningen pa sjon annu. # ar access for datum du skrev inte vilken databas du anvander dig av men hoppas du forstar.
select * from kalender where datum = "& bokDatum &" AND handelse = '"& kollHandelse &"'
Det finns en post inlagt i mdb som har samma datum och sjö=Åstjärn. Men väljer jag samma datum fast sjö=Abborrtjärn får jag iallafall svar att sjön är bokad.
Abborrtjärn finns inte ens inlagd i databasen så det verkar neka bara det är samma datum?
Menar du att det, trots ändringen jag föreslog, blir smäll på alla sjöar?
Skriv ut SQL-frågan med Response.Write så kan du se om det är något konstigt. Exempelvis borde du ha något runt datumet (syns inte i den kod du postat) - brädgårdar om du använder Access.
Den SQL-frågan är felaktig. Det är datumvärdet som ska ha brädgårdar runt sig.
Om man har problem med att SQL-frågor inte ger det resultat man tänkt sig skall man skriva ut frågan - så man kan se exakt vad den innehåller.
Ja det var brädgårdarna som var på fel ställe. Nu funkar det :)
Set RS3 = Conn.Execute("SELECT * FROM kalender WHERE datum = #"& valtDatum &"# AND handelse = '"& valdHandelse &"'")
Jag har inte lärt mig att skriva ut en sql fråga som du säger men det bör vara dags att klara det nu. Hur skriver jag ut den riktigt så jag slipper dessa problem i framtiden?
Om man tar för vana att alltid lägga SQL-frågan i en variabel så är det enkelt att både exekvera och skriva ut för att felsöka.
strSQL = "SELECT * FROM kalender WHERE datum = #"& valtDatum &"# AND handelse = '"& valdHandelse &"'"
Response.write strSQL
Set RS3 = Conn.Execute (strSQL)
Om SQL-frågan genererar felmeddelande kan du vara tvungen att kommentera bort execute-raden (lite beroende på hur server/webbläsare är inställda).
Jag fick hjälp att få till det så man inte kan dubbelboka en sjö med denna kod
Set RS3 = Conn.Execute("SELECT * FROM kalender WHERE datum = #"& valtDatum &"# AND handelse = '"& valdHandelse &"'")
Jag har en följdfråga ang den och det är om det bara ska gå att boka en sjö 5 dagar från idag. Om man använder "idagDatum=date()"..?..
Kan man med lite mer finness få till det på nått vis då? Alltså från idag +5 dagar annars ska ett felmeddelande komma att det inte ska gå utan man får välja ett nytt datum längre fram. Det bör då även stoppa bokning på äldre datum. Hoppas jag kunde förklara nu ;)
264 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9