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...!!!