Calendario Appuntamenti

di il
38 risposte

38 Risposte - Pagina 2

  • Re: Calendario Appuntamenti

    Si credo che farò così. Creerò una maschera appuntamenti. Inserirò la tabella che ho appena creato. Quello che mi sfugge è il dopo, una volta insierito l'appuntamento come faccio a sapere se il giorno scelto è disponibile o se è già tutto pieno?
  • Re: Calendario Appuntamenti

    Credo di aver risposto prima, nel senso che potresti destreggiarti con qualche filtro (usa i comandi che trovi in alto). Filtrando la SOLA DATA vedrai gli Appuntamenti di quella Data.
    Dai un'occhiata qui per ottimizzare quello che ho appena detto
    https://support.office.com/it-it/article/Applicare-un-filtro-per-visualizzare-record-selezionati-in-un-database-di-Access-2a493ded-e544-4144-9103-b9b1d1865147
    Perchè no, io metterei il vincolo sul campo Data impostando la proprietà Indicizzato: Sì (Duplicati non ammessi). In questo modo se scrivi un Data/Ora già esistente, Access ti avvisa con un messaggio di errore per dirti che non puoi farlo.
  • Re: Calendario Appuntamenti

    OsvaldoLaviosa ha scritto:


    Credo di aver risposto prima, nel senso che potresti destreggiarti con qualche filtro (usa i comandi che trovi in alto). Filtrando la SOLA DATA vedrai gli Appuntamenti di quella Data.
    Dai un'occhiata qui per ottimizzare quello che ho appena detto
    https://support.office.com/it-it/article/Applicare-un-filtro-per-visualizzare-record-selezionati-in-un-database-di-Access-2a493ded-e544-4144-9103-b9b1d1865147
    Perchè no, io metterei il vincolo sul campo Data impostando la proprietà Indicizzato: Sì (Duplicati non ammessi). In questo modo se scrivi un Data/Ora già esistente, Access ti avvisa con un messaggio di errore per dirti che non puoi farlo.
    Ok. Nella tabella ho aggiunto anche il campo ora, quindi in definitiva i campi della tabella appuntamenti sono: DataAppuntamento, Ora, Note. Secondo te dove devo insierire si duplicati non ammessi? sul campo Ora o sul campo DataAppuntamento?
  • Re: Calendario Appuntamenti

    Usa UN SOLO campo di tipo Data/Ora che chiamerai TimeAppuntamento e alla proprietà Formato potresti scegliere per esempio "Data generica"...Si dà il caso che Access propone alcuni suoi formati più conosciuti/standard e magari a te non interessa scrivere anche i secondi. Si tratterebbe allora di personalizzarlo scrivendo per esempio
    g/m/aaaa hh:mm
    oppure
    gg/mm/aaaa hh:mm
    Leggi qui per personalizzare il Formato del campo TimeAppuntamento
    https://support.office.com/it-it/article/Formattare-il-campo-della-data-e-dell-ora-in-Access-47fbbdc1-52fa-416a-b8d5-ba24d881b698
  • Re: Calendario Appuntamenti

    OsvaldoLaviosa ha scritto:


    Usa UN SOLO campo di tipo Data/Ora che chiamerai TimeAppuntamento e alla proprietà Formato potresti scegliere per esempio "Data generica"...Si dà il caso che Access propone alcuni suoi formati più conosciuti/standard e magari a te non interessa scrivere anche i secondi. Si tratterebbe allora di personalizzarlo scrivendo per esempio
    g/m/aaaa hh:mm
    oppure
    gg/mm/aaaa hh:mm
    Sinceramente mi piace come l ho impostato. (vedi allegato), sarebbe possibile mantenere sia l'ora che la data separati? Teoricamente quando andrò a creare la query mi basterà inserire il campo data nella prima colonna, il campo ora nella seconda e impostarli tutti e 2 sul valore crescente giusto? Ha senso quello che ho appena scritto?
    Allegati:
    19856_6d3b9d274f637a6be9d2e06a2e71cc27.jpeg
    19856_6d3b9d274f637a6be9d2e06a2e71cc27.jpeg
  • Re: Calendario Appuntamenti

    Mmmhhh...a questo punto preferisco che cammini con le tue gambe. Mi pare di capire che hai creato una tabella delle "fasce orarie di mezze ore" con il formato Ora e ti sei ingegnato così. Che dire: che così sia.
    Se gradisci vincolare la coppia campi Appuntamento e Ora...non puoi farlo con la sola proprietà Indicizzato. Devi impostare un "Indice Multicampo Univoco" (leggi la guida in linea) che sortisce lo stesso effetto di Indicizzato Sì Duplicati non ammessi, ma spalmato su più campi (nel tuo caso 2).
  • Re: Calendario Appuntamenti

    OsvaldoLaviosa ha scritto:


    Mmmhhh...a questo punto preferisco che cammini con le tue gambe. Mi pare di capire che hai creato una tabella delle "fasce orarie di mezze ore" con il formato Ora e ti sei ingegnato così. Che dire: che così sia.
    Se gradisci vincolare la coppia campi Appuntamento e Ora...non puoi farlo con la sola proprietà Indicizzato. Devi impostare un "Indice Multicampo Univoco" (leggi la guida in linea) che sortisce lo stesso effetto di Indicizzato Sì Duplicati non ammessi, ma spalmato su più campi (nel tuo caso 2).
    Ok. sono alle prese con la creazione dell'indice e mi trovo adesso in difficoltà sulla scelta della proprietà dell'indice. Ho letto la guida. Nel mio caso devo mettere si nella sezione Univoco giusto? Ho solo un dubbio. Viene specificato che se metto Si nell'univoco, ciascun valore dell'indice deve essere univoco. Cosa succede se dovesse esserci La data uguale e l'orario diverso? andrebbe bene?
    Allegati:
    19856_e35c05dc8bfe8a05086a5218ddaa4437.jpeg
    19856_e35c05dc8bfe8a05086a5218ddaa4437.jpeg
  • Re: Calendario Appuntamenti

    Ma non va bene tener distinta Data ed Ora... il campo Data già contiene l'orario devi usare quello, il tuo problema è che non comprendi la differenza tra il Dato da usare e quello da Visualizzare...!
    E' evidente che se devi dare a disposizione dell'utente un range di ORARI la Combo avrà gli orari divisi in 30Min... ma poi sei tu che devi ricostruire la data completa...
    Per questo specifico motivo, trovo relativamente inutile definire come PK la data del singolo appuntamento..., perchè oltretutto, la Combo con gli ORARI sarebbe bene venisse popolata con gli orari liberi in base alla data, non a prescindere tutto l'elenco... quindi prima di salvare controlli i conflitti.
    In questo caso la PK ha un senso solo di Iindice relazionale e, risulta decisamente più gestibile un Counter.

    Detto questo, servirebbe tu facessi un po di teoria, ma dal momento in cui mi pare questo non sia necessario... non proseguo con altri interventi, perchè di base hai preso una strada che reputo sbagliata in cui io non saprei nemmeno cosa suggerirti.
  • Re: Calendario Appuntamenti

    L'ultima immagine della maschera lascia il dubbio che tu abbia tralasciato la chiave primaria (PK) IDAppuntamento. Quella deve restare comunque...direi anche mostrata nella maschera stessa.

    Kryos ha scritto:


    sono alle prese con la creazione dell'indice e mi trovo adesso in difficoltà sulla scelta della proprietà dell'indice. Ho letto la guida. Nel mio caso devo mettere si nella sezione Univoco giusto? Ho solo un dubbio. Viene specificato che se metto Si nell'univoco, ciascun valore dell'indice deve essere univoco. Cosa succede se dovesse esserci La data uguale e l'orario diverso? andrebbe bene?
    Come hai impostato va bene. Tu non devi avere duplicati solo sulla COPPIA campi, quindi se hai 2 date 11/7/2016 con orari diversi non hai creato un duplicato. Se hai 2 date diverse e Ora uguale idem.

    @Alex ha scritto:


    Ma non va bene tener distinta Data ed Ora... il campo Data già contiene l'orario devi usare quello, il tuo problema è che non comprendi la differenza tra il Dato da usare e quello da Visualizzare...!
    E' evidente che se devi dare a disposizione dell'utente un range di ORARI la Combo avrà gli orari divisi in 30Min... ma poi sei tu che devi ricostruire la data completa...
    Io sono daccordo su questa osservazione...però confesso/ammetto che altrimenti non riuscirei a vedere/gestire su maschera lo sdoppiamento. Presupponendo che Kryos deve correggere/mostrare IDAppuntamento, chiedo (anche io) ad @Alex:
    Come gestiresti questo sdoppiamento visivo in maschera? Considera che non ho guardato il tuo database.
  • Re: Calendario Appuntamenti

    In caso di maschere continue campo calcolato in query con il format(.....,"hh:nn") relativo a data ed ora...
    I controlli associati... in questo caso soprattutto se combo ( nel caso degli orari) devono averr Rowsource dinamico da aggiornare su Current.
    In caso di maschera singola si puo usare sempre l'evento current per gestire i controlli non associati.
  • Re: Calendario Appuntamenti

    Aspetta @Alex...troppo ermetico per i miei gusti. Kryos tu hai capito?
    Io vorrei capirci meglio...e sta cosa sta interessando anche me. Provo a dire a parole mie.
    1. In tabella Appuntamenti resta chiaro UN SOLO campo TimeAppuntamento
    2. In maschera (adesso non saprei valutare la differenza fra continua o singola) tu metteresti 2 controlli NON ASSOCIATI? Per poi riunirli e impostarli in TimeAppuntamento? Chiamiamoli DataAppuntamento (casella di testo con formato Data in cifre) e OraAppuntamento (casella combinata...Kryos sembra l'abbia progettata come una tabella con quei valori)
    3....poi mi perdo un po' e non ho capito come riunire il tutto e soprattutto perchè hai parlato della gestione evento Current?

    Potresti riordinale le idee anche a me?
  • Re: Calendario Appuntamenti

    Purtroppo non ho capito cosa ha detto @Alex. Purtroppo non credo di avere le conoscenze necessarie ^^
  • Re: Calendario Appuntamenti

    Secondo me vi state perdendo in un BICCHIERE di NULLA..., è ovvio che non stiamo parlando di una birra al bar... pertanto senza un minimo di basi tecniche continuamo ognuno a parlare di quello che capisce... e non è così che si affronta un problema, altrimenti chi fa la domanda ad un certo punto è bene si dia anche la risposta...!!!!

    OsvaldoLaviosa ha scritto:


    Aspetta @Alex...troppo ermetico per i miei gusti. Kryos tu hai capito?
    Io vorrei capirci meglio...e sta cosa sta interessando anche me. Provo a dire a parole mie.
    1. In tabella Appuntamenti resta chiaro UN SOLO campo TimeAppuntamento
    Ovvio.

    OsvaldoLaviosa ha scritto:


    2. In maschera (adesso non saprei valutare la differenza fra continua o singola) tu metteresti 2 controlli NON ASSOCIATI? Per poi riunirli e impostarli in TimeAppuntamento? Chiamiamoli DataAppuntamento (casella di testo con formato Data in cifre) e OraAppuntamento (casella combinata...Kryos sembra l'abbia progettata come una tabella con quei valori)
    Non puoi prescindere dal MODO di utilizzo, quando si parla di Maschere Continue, dovrebbe per prima cosa venirti l'orticaria... poi tutto il resto.
    Sono contrario ad usare le maschere continue per EDITING, per questo è sempre molto importante sapere cosa si sta facendo e dove si deve arrivare..., perchè lo sviluppo in questi ambiti richiede idee chiarissime ed un po di conoscenza del mezzo.

    OsvaldoLaviosa ha scritto:


    3....poi mi perdo un po' e non ho capito come riunire il tutto e soprattutto perchè hai parlato della gestione evento Current?
    Potresti riordinale le idee anche a me?
    In sostanza il campo DatAppuntamento(gg/mm/aaaa hh:mm:ss) non è detto debba essere VISIBILE ed EDITABILE... si può utilizzare una coppia di controlli NON ASSOCIATI(se in maschera singola), che si valorizzano su current così
    
    Private Sub Form_Current()
         Me!txtData.Value=Format$(Me!DataAppuntamento.Value,"dd/mm/yyyy")
         Me!txtOra.Value=Format$(Me!DataAppuntamento.Value,"hh:nn")
    End Sub
    Quindi se il controllo ORA, volessimo definirlo una COMBO e non una TextBox, dovremmo anche caricargli il RowSource..., se lo vogliamo FISSO, lo facciamo su LOAD della Form con un ciclo Dalle 7:00 alle 19:00 di oggi con un DateAdd a 30 Minuti... usando AddItem in modalità Elenco Valori, sta poi al programmatore capire quante colonne usare e se torna comodo avere una Colonna Nascosta(larghezza=0) in cui salvare la data completa, mentre quella da visualizzare, solo come Format(DatadelCiclo,"hh:mm")...
    Se invece lo vogliamo dinamico, vale a dire che escluda quelle fasce con Appuntamenti già impegnati, usiamo una Query con un NOT IN (SELECT dalla Tabella Appuntamenti di Oggi gestendo opportunamente i campi Data ed Ora...)

    Chiaramente dovendolo ricaricare per ogni Record, sempre su current
    
    Private Sub Form_Current()
         Me!cboOra.Requery
         Me!txtData.Value=Format$(Me!DataAppuntamento.Value,"dd/mm/yyyy")
         Me!cboOra.Value=Format$(Me!DataAppuntamento.Value,"hh:nn")
    End Sub
    La combo va definita in modo che possa accettare anche Valori NON IN ELENCO ovviamente.
    Di conseguenza dovrò occuparmi di andare a RIGENERARE il campo/controllo [Me!DataAppuntamento.Value] se dovessi modificare la Data o l'Ora...

    Il mio Demo, in sostanza fa una cosa simile, concettualmente, quando si apre la maschera per un nuovo Appuntamento... magari potrebbe essere utile studiare qualche cosa...!!!
  • Re: Calendario Appuntamenti

    @Alex ha scritto:


    Secondo me vi state perdendo in un BICCHIERE di NULLA..., è ovvio che non stiamo parlando di una birra al bar... pertanto senza un minimo di basi tecniche continuamo ognuno a parlare di quello che capisce... e non è così che si affronta un problema, altrimenti chi fa la domanda ad un certo punto è bene si dia anche la risposta...!!!!

    OsvaldoLaviosa ha scritto:


    Aspetta @Alex...troppo ermetico per i miei gusti. Kryos tu hai capito?
    Io vorrei capirci meglio...e sta cosa sta interessando anche me. Provo a dire a parole mie.
    1. In tabella Appuntamenti resta chiaro UN SOLO campo TimeAppuntamento
    Ovvio.

    OsvaldoLaviosa ha scritto:


    2. In maschera (adesso non saprei valutare la differenza fra continua o singola) tu metteresti 2 controlli NON ASSOCIATI? Per poi riunirli e impostarli in TimeAppuntamento? Chiamiamoli DataAppuntamento (casella di testo con formato Data in cifre) e OraAppuntamento (casella combinata...Kryos sembra l'abbia progettata come una tabella con quei valori)
    Non puoi prescindere dal MODO di utilizzo, quando si parla di Maschere Continue, dovrebbe per prima cosa venirti l'orticaria... poi tutto il resto.
    Sono contrario ad usare le maschere continue per EDITING, per questo è sempre molto importante sapere cosa si sta facendo e dove si deve arrivare..., perchè lo sviluppo in questi ambiti richiede idee chiarissime ed un po di conoscenza del mezzo.

    OsvaldoLaviosa ha scritto:


    3....poi mi perdo un po' e non ho capito come riunire il tutto e soprattutto perchè hai parlato della gestione evento Current?
    Potresti riordinale le idee anche a me?
    In sostanza il campo DatAppuntamento(gg/mm/aaaa hh:mm:ss) non è detto debba essere VISIBILE ed EDITABILE... si può utilizzare una coppia di controlli NON ASSOCIATI(se in maschera singola), che si valorizzano su current così
    
    Private Sub Form_Current()
         Me!txtData.Value=Format$(Me!DataAppuntamento.Value,"dd/mm/yyyy")
         Me!txtOra.Value=Format$(Me!DataAppuntamento.Value,"hh:nn")
    End Sub
    Quindi se il controllo ORA, volessimo definirlo una COMBO e non una TextBox, dovremmo anche caricargli il RowSource..., se lo vogliamo FISSO, lo facciamo su LOAD della Form con un ciclo Dalle 7:00 alle 19:00 di oggi con un DateAdd a 30 Minuti... usando AddItem in modalità Elenco Valori, sta poi al programmatore capire quante colonne usare e se torna comodo avere una Colonna Nascosta(larghezza=0) in cui salvare la data completa, mentre quella da visualizzare, solo come Format(DatadelCiclo,"hh:mm")...
    Se invece lo vogliamo dinamico, vale a dire che escluda quelle fasce con Appuntamenti già impegnati, usiamo una Query con un NOT IN (SELECT dalla Tabella Appuntamenti di Oggi gestendo opportunamente i campi Data ed Ora...)

    Chiaramente dovendolo ricaricare per ogni Record, sempre su current
    
    Private Sub Form_Current()
         Me!cboOra.Requery
         Me!txtData.Value=Format$(Me!DataAppuntamento.Value,"dd/mm/yyyy")
         Me!cboOra.Value=Format$(Me!DataAppuntamento.Value,"hh:nn")
    End Sub
    La combo va definita in modo che possa accettare anche Valori NON IN ELENCO ovviamente.
    Di conseguenza dovrò occuparmi di andare a RIGENERARE il campo/controllo [Me!DataAppuntamento.Value] se dovessi modificare la Data o l'Ora...

    Il mio Demo, in sostanza fa una cosa simile, concettualmente, quando si apre la maschera per un nuovo Appuntamento... magari potrebbe essere utile studiare qualche cosa...!!!
    Cavolo! Per me è arabo! Sorry ma con le conoscenze attuali (su una scala da 1 a 10 circa 2 se non 1), per me è impossibile attuare/capire in pieno una cosa del genere. Vedrò se riuscirò a seguire quanto hai detto, ma credo che per adesso sia impossibile.
    Grazie comunque per la disponibilità!
  • Re: Calendario Appuntamenti

    Se fossi io, mettendomi nei panni di Kryos, non gestirei mai una cosa del genere e mi "accontenterei" di usare il formato completo. Anzi io farei comunque così.
Devi accedere o registrarti per scrivere nel forum
38 risposte