Newsgroup: it.comp.appl.access
Titolo: Sottomaschera appuntamenti

Ho creato un database così costituito:
Tabella anagrafica contente:ID (chiave primaria), Cognome, Nome, Indirizzo, Com_res, Dt_nascita, Com_nascita ecc..
Tabella vaccinazioni : ID (chiave primaria) , Data_vaccinazione, Dose, Tipo_vaccinazione, Lotto, Id_anagrafica. Con relazione uno-a-molti.
Ho poi creato una maschera Dettagli_anagrafica con una sottomaschera-vaccinazioni. 
Così per ogni utente posso visualizzare l’anagrafica con le relative vaccinazioni.
Nella medesima scheda vorrei inserire un’altra sotto-maschera chiamata Appuntamenti così da visualizzare solo gli appuntamenti dell’utente selezionato.
Tutti gli appuntamenti andranno nella tabella Appuntamenti, e per mezzo di una query potranno essere raggruppati per giorno.
Per realizzare quanto desiderato ho trovato in rete un file appuntamenti.mdb che fa proprio al caso mio. 
http://www.dorianovillaverla.it/joomla/index.php?option=com_rokdownloads&view=file&task=download&id=83%3Aappuntamenti&Itemid=27
 
La particolarità di questo file è che nel menù a tendina della campo “ora” della maschera appuntamenti vengono visualizzati soltanto gli orari liberi del giorno selezionato. Mi sembra un sistema molto utile.
Ho riprodotto separatamente il database appuntamenti secondo le mie necessità, e tutto ha funzionato a dovere. 
Successivamente,  per evitare di scrivere ogni volta Nome, Cognome, N° di telefono dell’utente, ho cercato di inserire la sottomaschera appuntamenti nella scheda dettagli anagrafica (con relazione uno-a-molti).
Per inserire l’appuntamento di un utente avrei dovuto selezionare la maschera dettagli anagrafica dell’utente interessato ed inserire data, ora, motivo nella sottomaschera appuntamenti.
Quando ho provato ad inserire alcuni appuntamenti ho visto che il menù a tendina della campo “ora” della sottomaschera appuntamenti  non é più selettivo e mi visualizza sempre TUTTI gli orari non permettendomi di vedere quali sono quelli liberi e quali già impegnati.  Quando inserisco un orario che  già presente mi appare l’avviso “Hai cercato di duplicare una chiave primaria” e quindi non mi permette di salvare quanto inserito.
Nel campo “Ora” della sottomaschera appuntamenti ho inserito lo stesso codice presente nella maschera appuntamenti del file demo. 
Il codice è il seguente:
SELECT Q_Agenda_Ore.Orario FROM Q_Agenda_Ore LEFT JOIN Q_Ore_Occupate ON Q_Agenda_Ore.Orario=Q_Ore_Occupate.Ora WHERE (((Q_Ore_Occupate.Id) Is Null));
 
Perché nella maschera_appuntamenti funziona ma quando lo inserisco nella sottomaschera_appuntamenti non funziona più?
 
Spero di essermi spiegato.
Grazie anticipato per i suggerimenti
Pietro
 

Dipende da come è strutturata la maschera degli appuntamenti.
Evidentemente c'è un conflitto nelle relazioni uno-molti.
Puoi risolvere facilmente utilizzando quella degli appuntamenti.
Su di essa posizioni una combo che ha origine dalla tabella angrafica_utente e prenderai il campo ID e il campo del nome. Sempre nella combo sceglierai di visualizzare il nome, ma attribuirai al campo della tabella appuntamenti, l'ID.
Ad ogni appuntamento attribuirai il nome dalla combo.
Ciao.

Ti ringrazio molto.
La tabella anagrafica_utente contiene circa 3500 record. Posso fare una combobox con un menù così grande?
Intanto ho creato una query dalla tabella anagrafica_utente con il campo ID ed un campo dove sono concatenati Cognome_nome. Ora provo a fare la combo avente origine dalla query.
Grazie ancora.


 Grazie ancora.
Come da te osservato, una combo da 3.500 records è sicuramente tanto. Dipende da cosa vuoi ottenere. L'ideale sarebbe creare un filtro, ma solitamente gli utenti desiderano poter visualizzare. Tieni solo presente che al caricamento della form, influirà sui tempi.
 
F.

Ho abbandonato l'idea di inserire una combobox convinto che oltre a rallentare permarrebbero i problemi di  conflitto.
Anche per inserire un filtro penso debba necessariamente istaurarsi una relazione tra tabelle.
Ho deciso allora di modificare il demo_appuntamenti inserendo semplicemente un campo per l’ ID_anagrafica da compilare manualmente (oltre ovviamente data_appuntamento, ora_appuntamento, e motivo_appuntamento).
Lavorando abitualmente sulla maschera anagrafica non mi costa nulla leggere il valore ID di un utente ed inserirlo manualmente nella maschera appuntamenti che apro in finestra.
Fin qui, procedendo così, il sistema del menù a tendina delle sole ore disponibili funziona. 
Quando, (per recuperare Cognome, Nome, Data di Nascita, Telefono,) vado a collegare l’ID_anagrafica della maschera appuntamenti con l’ID_anagrafica della maschera_anagrafica il sistema del menù a tendina perde la capacità di mostrare solo le ore disponibili.
Non mi sembra possano esserci altri sistemi poiché comunque si devono instaurare delle relazioni che inevitabilmente confliggono.  O quantomeno non sono alla mia portata.