LucaDemo ha scritto:
...
Il problema sta però nel fatto che se passo alla riunione successiva la sottomaschera rimane completamente vuota. Questo perchè non vi sono stati presenti.
Quello che vorrei avere è:
1) per ogni Riunione nella maschera avrò la lista di tutti i membri;
2) questa lista sarà integrata con la casella Si/No presa dalla tabella Presenze;
3) posso registrare le presenze direttamente dalla maschera Riunioni semplicemente aggiungendo la spunta affianco al nome e tale dato viene registrato nella tabella Presenze.
Secondo me serve una procedura ad hoc per la creazione di una nuova riunione, in modo che oltre ad aggiungere un record alla tabella Riunioni, appena disponibile l'ID della riunione vada a creare un record nuovo per ogni Anagrafica nella tabella Presenze.
Non so se attualmente hai un pulsante apposito per la creazione di una nuova riunione o usi semplicemente "Aggiungi record" (magari dal pulsantino con l'asterisco in fondo alla maschera).
Nel primo caso, che a questo punto ti suggerirei di introdurre se non fai già così, è sufficiente inserire il codice lì. Devi però fare in modo che quello sia l'unico modo per aggiungere una riunione, essendo un'operazione abbastanza delicata. Magari lo inserisci in una transaction che permette di fare il rollback se non vuoi confermare l'inserimento.
Altra via è quella di inserire nell'evento Current della maschera la verifica della
proprietà NewRecord che faccia da discriminante tra uno scorrimento tra record (riunioni) già esistenti o uno nuovo e relativo inserimento delle anagrafiche in Presenze.
Potresti creare una stringa per costruire una query di accodamento da eseguire con DbEngine.Execute N volte prendendo ogni ID da Anagrafiche (cicla il recordset da aprire sulla relativa tabella) oppure usare il metodo .AddNew su un recordset aperto su Presenze.
Questa è solo la procedura che seguirei io, anche se non l'ho mai fatto. In teoria è così che dovrebbe funzionare.
Prima cosa da decidere: come vuoi aggiungere una nuova riunione? Se poi hai bisogno di aiuto in fasi specifiche posta il codice che hai abbozzato ed integriamo.
Mi quoto da solo
Devi però fare in modo che quello sia l'unico modo per aggiungere una riunione, essendo un'operazione abbastanza delicata.
Questa frase, anche se espressa come obbligo, in realtà è solo un suggerimento, per "la sicurezza". In realtà puoi avere entrambe le possibilità: pulsante di comando apposito o "aggiungi record" già disponibile in Access. Però devi creare una funzione apposita richiamabile in entrambi gli eventi. Niente di impossibile, dipende da quanto ne sai di vba.