Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Visualizzazione agenda appuntamenti

245 views
Skip to first unread message

Pleiadi

unread,
Sep 12, 2007, 3:45:33 AM9/12/07
to
Ciao a tutti,
Ho il seguente problema da risolvere: Devo realizzare la maschera per
visualizzare un'agenda appuntamenti per un centro estetico.
Quest'agenda si suddivide in righe orario (orari incrementali di 15
minuti) e colonne cabine (Corpo, Viso, ecc).
Dato che si possono prendere più appuntamenti alla stessa ora, ma su
cabine diverse, non riesco però a visualizzare più record nella stessa
riga, forse per una cattiva impostazione della tabella agenda
(idappuntamento, idcliente, idcabina, idservizio, idestetista,
durataservizio)
Quello che vorrei ottenere è una videata con intestazione colonne
formata dalle cabine e intestazione righe formata dall'orario e, qui
in mezzo, tutti gli appuntamenti del giorno che si sviluppano in
orizzontale (cabine) ed in verticale in base alla durata del
trattamento.
Spero di essere stato chiaro ed intanto ringrazio chiunque posssa
darmi un aiutino....
Ciao

Alfio

VT @ home

unread,
Sep 12, 2007, 12:44:27 PM9/12/07
to
Il Wed, 12 Sep 2007 00:45:33 -0700, Pleiadi <alph...@libero.it> ha scritto:
>(.....)

Valuta se una query a campi incrociati può fare al tuo caso ...

>
>Alfio


Vincenzo Turturro

Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

Roberto dalla campagna

unread,
Sep 12, 2007, 12:52:14 PM9/12/07
to

"Pleiadi" <alph...@libero.it> ha scritto nel messaggio
news:1189583133.6...@57g2000hsv.googlegroups.com...

>Ciao a tutti,
>Ho il seguente problema da risolvere: Devo realizzare la maschera per
>visualizzare un'agenda appuntamenti per un centro estetico.
>Quest'agenda si suddivide in righe orario (orari incrementali di 15
>minuti) e colonne cabine (Corpo, Viso, ecc).
>Dato che si possono prendere più appuntamenti alla stessa ora, ma su
>cabine diverse, non riesco però a visualizzare più record nella stessa
>riga, forse per una cattiva impostazione della tabella agenda
>(idappuntamento, idcliente, idcabina, idservizio, idestetista,
>durataservizio)

A mio avviso credo che in questa tabella manchi un dato fondamentale che è
la data del servizio, inoltre sostituirei il campo durataservizio con un
campo di tipo Data/ora in cui memorizzerai l'orario di inizio del servizio.

>Quello che vorrei ottenere è una videata con intestazione colonne
>formata dalle cabine e intestazione righe formata dall'orario e, qui
>in mezzo, tutti gli appuntamenti del giorno che si sviluppano in
>orizzontale (cabine) ed in verticale in base alla durata del
>trattamento.

Quella che tu chiami "videata" la puoi realizzare con una maschera non
associata che contenga affiancate tante caselle di riepilogo quante sono le
gabine; nella maschera inserirai anche un controllo non associato (casella
di testo, casella combinata, ActiviX calendario ecc.) nel quale digiti o
selezioni la data di cui vuoi visualizzare la situazione delle prenotazioni.
Creati poi una tabella TblOrari composta da un solo campo di tipo Data/ora:
tale tabella conterrà un record per ogni orario di inizio servizio possibile
in una giornata; insomma se i servizi possono essere prestati dalle 9:00
alle 19:00 conterrà i seguenti record:

09:00
09:15
09:30
09:45
10:00
10:15
....
....
18:30
18:45
19:00

Ogni casella di riepilogo della maschera avrà come origine riga una query in
cui metterai in join la tabella TblOrari e la tabella agenda in base ai
relativi campi orario di inizio servizio: naturalmente ogni query dovrà
essere filtrata con l'id della cabina cui si riferisce e con la data
digitata/selezionata nella maschera; così facendo ogni casella di riepilogo
conterrà tutti gli orari possibili di una giornata e a fianco agli orari per
cui esiste già la prenotazione puoi far comparire il nome del cliente.
Naturalmente da questa maschera, selezionando la riga di un orario non
prenotato di una cabina (ovvero di una delle caselle di riepilogo) farai
aprire una maschera con cui inserirai una nuova prenotazione nella tabella
agenda, dopo aver effettuato tutti i controlli che che la stessa cabina e la
stessa estetista non siano impegnati contemporaneamente su più di un
servizio; un esempio di come effettuare tali controlli di sovrapposizione lo
trovi sul Sito Comune (link qui sotto), nella Sezione General, in queste due
mie FAQ:

1) 6.218 In un database per gestire la prenotazione di camere di albergo
evitare la sovrapposizione di prenotazioni.
2) 6.209 In una agenda realizzata con Access verificare che un nuovo
appuntamento non si accavalli con impegni precedenti

>Spero di essere stato chiaro

Anche io spero di essere stato chiaro.

> ed intanto ringrazio

Prego.

>chiunque posssa darmi un aiutino....

Aiutino???
Che brutta parola!!!

>Ciao
>
>Alfio

--
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------


Pleiadi

unread,
Sep 18, 2007, 11:00:45 AM9/18/07
to
> Ogni casella di riepilogo della maschera avrà come origine riga una query in
> cui metterai in join la tabella TblOrari e la tabellaagendain base ai

> relativi campi orario di inizio servizio: naturalmente ogni query dovrà
> essere filtrata con l'id della cabina cui si riferisce e con la data
> digitata/selezionata nella maschera; così facendo ogni casella di riepilogo
> conterrà tutti gli orari possibili di una giornata e a fianco agli orari per
> cui esiste già la prenotazione puoi far comparire il nome del cliente.

Ciao Roberto,

ho realizzato la maschera con le listbox non associate ecc, tutto
funge egregiamente ma, e ti pareva che non ci fosse un ma, la listbox
non visualizza tutti gli orari possibili, ma solo quelli prenotati. Le
listbox hanno come origine riga la seguente query, naturalmente ognuna
di esse si rifà alla propria cabina:

SELECT TabOrari.IdOrario, TabOrari.DescOrario, Appuntamenti.Cognome,
Appuntamenti.Nome, Appuntamenti.IdCabina, Appuntamenti.Data
FROM TabOrari LEFT JOIN Appuntamenti ON TabOrari.IdOrario =
Appuntamenti.IdOrario
WHERE (((Appuntamenti.IdCabina)=7) AND ((Appuntamenti.Data)=[Forms]!
[Agenda]![TxtData]))
ORDER BY TabOrari.IdOrario;

Dove sbaglio?

Ciao
Alfio

Pleiadi

unread,
Sep 18, 2007, 4:37:09 PM9/18/07
to
0 new messages