Kalender om (meerdere) reservaties te registreren via aanklikken van de dagen

Status
Niet open voor verdere reacties.

JohanRVT

Gebruiker
Lid geworden
2 mrt 2011
Berichten
545
Een vraagje van onze dames om een systeem uit te werken voor reservatie van bv een maaltijd waarbij er op een formulier een aantal vaste gegevens staan zoals naam van een persoon, soort maaltijd, prijs daarvan etc... en de dagen waarop deze maaltijd genomen wordt. Ze hadden daarbij graag gehad dat kon gebeuren via een overzichtelijke kalender waarbij ze een of meerdere dagen konden aanklikken dat er een reservatie moet gebeuren en dat dit dan weggeschreven werd naar een tabel maar (nu komt het) dat de kalender over een (of meerdere maanden) de gereserveerde dagen dus weergeeft door die dagen bv een ander kleurtje te geven. En omgekeerd dat bij het openen van het formulier de eerder gemaakte reservaties zichtbaar zijn omdat die dagen ingekleurd of zo zijn. Ik weet dat dat eenvoudig te doen is door een subformuliertje met de reservatiedata in maar dat is bijlange niet overzichtelijk én vraagt meer werk om in te vullen (je moet telkens een nieuwe record selecteren, een kalendertje opendoen door dubbelklikken en dan de juiste datum kiezen).
Mijn kineprogramma heeft zoiets netjes maar dat is een ander databasesyteem, is zo iets te maken in Ms Access en zoja hoe begin je daar dan aan?
Graag een paar suggesties of tips, mercikes
 
Je kunt best een eigen kalender maken, al zie ik eerlijk gezegd de noodzaak niet helemaal, want je hoeft helemaal niet dubbel te klikken om een DatePicker te openen; met de juiste actie is het één klik op het datumveld, en één klik op de datum.
Maar laat eens een plaatje zien van het systeem dat het wél heeft, dan kunnen we makkelijker zeggen of het veel werk is.
 
plaatje

In bijlage een printscreen van het (pop-up) invulformulier van mijn kineprogramma waar je dus rechts bovenaan een kalender hebt die de dagen toont van de maand waarin de laatste registratie(s) van een (of meerdere) behandeling(en) gebeurde. Hierbij verschijnt er dus een blauwe driehoek bij een dag die werd aangeklikt en verschijnt direct de datum onderaan in het formulier. Omgekeerd verdwijnt de driehoek en de datum als je een datum terug aanklikt (dus uitvinkt als het ware). Dit maakt het invullen door gewoon aanvinken ferm gemakkelijk omdat je een net overzicht hebt hebt van een ganse week, maand etc.... Iemand enig idee hoe zo'n "interactieve" kalender in elkaar te steken?
 

Bijlagen

  • Knipsel12.PNG
    Knipsel12.PNG
    52,4 KB · Weergaven: 125
Dat is wel te maken, op basis van een UDF (User Defined Form in dit geval ;) ) dat je op een subformulier zet. Hoop werk....
 
Michel je bedoelt waarschijnlijk zoiets als het maken van een speciale module "My_User Defined_Functions" met daarin een 42-tal kleine modules om de kalender dynamische op te bouwen? Maar hoe begin je aan zoiets?
 
Laatst bewerkt:
Ik snap niet helemaal wat je bedoelt met 42 kleine modules, maar je hebt gelijk als je daar 42 knoppen of labels mee bedoelt waar een datum achter wordt gegenereerd. Ik heb een voorbeeldje met wat invoerformulieren waar je wel mee kan spelen denk ik. Kijk maar of er wat voor je bij zit.
 

Bijlagen

  • Kalender knoppen.part01.rar
    100 KB · Weergaven: 67
  • Kalender knoppen.part02.rar
    100 KB · Weergaven: 63
  • Kalender knoppen.part03.rar
    100 KB · Weergaven: 51
  • Kalender knoppen.part04.rar
    17,2 KB · Weergaven: 53
Bedankt voor de mooie voorbeelden Michel, kan er allezins een paar van gebruiken elders, maar voor dit geval kan er misschien iets gedaan worden met de "Kalender_Labels". De kalender zou de verschillende datum's die eerder werden geregistreerd in een tabel moeten highlighten samen met de nieuw aangeklikte datum's en die terug uitzetten (en dus ook de registratie uit de tabel verwijderen) als de datum terug aangeklikt wordt. Weet niet of deze kalender dit kan combineren?
 
Dat zou volgens mij in beginsel wel moeten kunnen als je het formulier koppelt aan een gegevensbron. In beginsel doe je dat natuurlijk niet met een kalender, omdat je alleen datums aan wilt klikken die je dan terugleest. Maar als er een tabel achter hangt, kun je met een recordset (die je dan filtert op de actieve maand van de kalender) volgens mij de labels met een afspraak wel anders opmaken. En een druk op zo'n label zou dan, als de datum niks meer heeft, dat label wel weer standaard moeten kunnen laten zien.
Daar heb ik uiteraard geen voorbeeld van; ik had in jouw positie denk ik ofwel al lang gruwelijke ruzies met 'de dames' gehad, of er een aantal ontslagen en vervangen door wat gewilligere types :).
 
Met de dames heb ik gelukkig geen ruzie en dat wil ik op oa deze manier zo houden (mannen zijn hier nml flink in de minderheid :confused: ). Ik heb ondertussen de kalender_labels met de helft verkleind en een tabel toegevoegd aan de DB, ik doe vanavond of morgen, als er tijd is tenminste, een poging om data toe te voegen en te verwijderen bij klikken en in tweede instantie dan te filteren en de labels van achtergrondkleur voorzien indien er een corresponderende datum in de tabel gevonden wordt. Zitten anders veel mooie dingen in die DB die elders ook prima te gebruiken zijn.
Bestand bijgevoegd tot waar ik ben gekomen momenteel, xlsb hernoemen naar accdb
 

Bijlagen

  • Kalender.xlsb
    968 KB · Weergaven: 86
Laatst bewerkt:
Nog niet kunnen aan verder doen maar zie nu oa dat de maanden met maar 1 cijfer in niet worden geregistreerd of verwijderd :)
 
Omdat je (sorry dat ik het zo moet zeggen) een beetje idiote manier van filteren gebruikt.
Code:
Year([Bezoekdatum]) = [Formulieren]![FrmRegistratie]![Registratie Kalender].[Form]![cboJaar]
Month([Bezoekdatum]) = [Formulieren]![FrmRegistratie]![Registratie Kalender].[Form]![cboMaand]
Werkt namelijk prima.... Je bent niet de eerste, en zult zeker niet de laatste zijn die een maand en een jaar uit een datum probeert te halen met FORMAT. Waarom? Beats me...
 
Michel, dat werkt inderdaad beter.
hoe zou je het dan voor het "kleuren, markeren" van de ingevulde datumvakjes aanpakken? Graag een duwtje in de goede richting, ik zou misschien anders weer met iets idioots voor de dag kunnen komen :)
 
Voor het kleuren van de datumvakjes heb je denk ik een recordset nodig, die kijkt of er een record is (of meer) voor een dag. Omdat de kalender dynamisch wordt opgebouwd heb je, tijdens dat opbouwen, dus in de lus die datum voorhanden. Op dat moment maak je dan de recordset met die datum en controleer je of er wat is of niet. En op basis daarvan maak je het label op.
 
Zou moeten lukken, tot nu toe is er steeds maar één datum voorhanden, kan later misschien veranderen. Ik zal 's een poging wagen om 't zo te doen.
 
Wil je je oplossing sharen Michel, vrees dat ik er weer teveel tijd zal moeten insteken, heb 't ook 's met Dlookup gepoogd maar geraak er niet uit.
 
No problem. Ik heb gelijk wat andere code verbeterd :). Bekend recept: extensie omzetten naar accdb.
 

Bijlagen

  • Kalender.xlsb
    768 KB · Weergaven: 60
Dat is 'm :), mijn dank is weeral groot. zou er niet opgekomen zijn op die manier.
Paar vraagjes: waarom de CDbl de tempvars gebruiken in combinatie met CDate (heeft dat te maken met het makkelijker rekenen in numerieke waarden en dan uitlezen naar gewoon datumformaat)?
 
Ik zie maar één vraag :). Maar ja, dat is één aspect. Een tweede is dat het werken met Format altijd wat trager is dan werken met numerieke waarden. Omdat een datum een getal is, hoi ik dat graag zo. Bovendien is deze code zo uit het hoofd neer te zetten, en die format optie moet ik ook steeds opzoeken.
 
Ja te vlug op het knopje geduwd; wou nog zeggen dat we de titelvelden voor de dagen nu kwijt zijn.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan