Cantack ha scritto:
Il mio problema consiste nel fatto che vorrei che i campi ID_MAIN_EXT prendessero il valore di ID_MAIN al momento della loro compilazione come se fossero delle sottomaschere. Non so se è possibile effettuarlo direttamente dalle tabelle o devo scrivere del codice VBA nelle maschere.
Ho capito che il tuo problema fondamentale è questo. Quindi non approfondisco più l'argomento "normalizzazione" e mi fido della tua struttura tabellare.
La soluzione maschera/sottomaschera sarebbe quella ideale. Nel tuo caso direi obbligata. Se costruisci tutto con la procedura guidata e scegli l'opzione "Maschera/sottomaschera", Access imposta automaticamente la "sincronizzazione" da te voluta.
Ora però tu hai una situazione più ingarbugliata, in quanto hai 1 tabella madre e 3 tabelle figlie. Quando vai a fare la procedura guidata sei costretto a scegliere solo una tabella figlia. Io direi di farlo per MAIN--->REGISTRO_1. Poi
1. Apri la maschera MAIN in visualizzazione struttura
2. Tra i comandi che trovi in alto ti suggerisco di attivare l'opzione "procedura guidata controllo"
3. Aggiungi manualmente 2 sottomaschere e durante i suggerimenti guidati gli dici che vuoi REGISTRO_2, poi REGISTRO_3
4. Non so se Access imposta automaticamente, in ogni caso, dopo aver creato le 2 sottomaschere, clicca al centro di una di esse e noterai evidenziata una CORNICE. Avvicina il mouse lungo la sua linea e clicca con il tasto destro per vedere le sue Proprietà. Quindi devi avere le impostazioni così:
Collega campi secondari: ID_MAIN_EXT
Collega campi master: ID_MAIN
5. Ti consiglio anche di andare alle proprietà di tutti i campi ID_MAIN_EXT (quelli delle sottomaschere) e impostare
Valore predefinito: [Maschere]![MAIN]![ID_MAIN]
6. Salva tutto
Volendo sfruttare la sincronizzazione a livello di tabelle, dovresti aggiungere un "Foglio dati secondario", quindi poi però sei costretto a scegliere solo una tabella tra REGISTRO_1, REGISTRO_2, REGISTRO_3. Nella creazione del foglio dati secondario ti apparirà una finestra dove devi anche lì impostare le proprietà "Collega campi secondari" e "Collega campi master".