Newsgroup: it.comp.appl.access
Titolo: Form complesso

Ciao a tutti, sto implementando un piccolo applicativo in Access 2000
per tenere un archivio per laboratorio dove lavoro.
Premetto che sono abbastanza niubbo di Access. Ho definito abbastanza
velocemente la struttura dati con le tabelle (struttura non molto
complessa, sono 4 tipi di dato, con corrispondenze 1-infinito a
cascata). Da un pò di giorni però mi sto impelagando nella costruzione
del form di immissione per i dati. E qui iniziano i dolori...
Prima di tutto una domanda: nella definizione di un evento per un
command button (ad es. un click), quando, in teoria, bisogna usare una
macro, quando una espressione e quando un'applet VBA? Non mi è chiaro se
sono intercambiabili.
Seconda questione. Vorrei dividere l'insieme di text box/combo box/ list
box che ho sul form in 3 gruppi, per facilitare la leggibilità (sono
parecchi!). Vorrei che il primo comparisse sempre; quando questo viene
completato, a destra compare un secondo blocco di box, e quando anche
questo viene completato, compare un terzo blocco. Non serve che tutti i
campi vadano compilati, solo quelli obbligatori (parecchi sono
facoltativi). E' possibile ottenere un effetto del genere?
Per ora mi fermo qui. Grazie dell'aiuto! :)

 ha scritto nel messaggio 
news:200703131...@mynewsgate.net...

Praticamente vuoi una  lezione complessa sulle maschere!
Il pulsante di comando è, in genere, esattamente come la sua definizione 
dice: un pulsante di comando, esegue un'azione, per ritornare allo stato che 
aveva prima della pressione.
Se per esempio vuoi che alla pressione del pulsante si apra una maschera, 
puoi usare indifferentemente una macro o il codice VBA. Tieni presente che 
per queste quisquiglie Access mette a disposizione diversi wizard che ti 
permettono di scegliere una azione da eseguire.
Le macro sono limitate e possono andare bene per un novizio, non certamente 
per un utente evoluto.
Il generatore di espressioni ti dà una mano nella realizzazioni di 
"espressioni" più o meno complesse mostrando anche un elenco di funzioni, 
operatori e di espressioni comuni. Mostra l'elenco degli oggetti di database 
che possono essere selezionati e utilizzati nella scrittura della 
espressione.
L'espressione è una combinazione di operatori, costanti, valori, nomi di 
campo o controlli, proprietà, ecc. Possono essere usate per impostare 
proprietà, definire campi calcolati, definire le condizioni nelle macro e 
molto molto altro (leggi la guida a questa voce).
Ovviamente le espressioni vengono massimamente usate in VBA, anzi in questo 
ambiente lavorano al massimo delle loro capacità.
Le espressioni sono anche usate nelle query, nei report, nei controlli e 
finanche nelle tabelle.
Cosa conviene usare nei pulsanti di comando? Tutto dipende dal livello 
raggiunto. Ti dicevo che per aprire una maschera puoi usare una macro ma 
anche del codice.
Tornando al tuo problema della maschera ti consiglio di utilizzare il 
separatore di pagina o "Interruzione di pagina" in modo da costruire una 
maschera molto alta ma suddivisa e visualizzata un pezzo alla volta. Per 
questo leggi l'argomento sulla guida.
Altra strada è quella di usare un controllo "Struttura a schede" dove, per 
ogni "scheda", andrai a sistemare un gruppo di controlli...così nelle altre 
schede e, se non bastassero quelle messe di default, potrai sempre 
aggiungerne di nuove.
Quest'ultima soluzione è molto elegante.
Anche io, per ora, mi fermo qui.
Ciao, Carlo 

 
Innanzitutto ti ringrazio per la chiarezza (nonché la disponibilità).
Purtroppo il controllo a schede non fa a caso mio. In realtà vorrei 
condizionare l'apertura del secondo sottoblocco di box a seconda delle 
scelte che vengono fatte nel primo blocco di box. Cioè se nel primo 
blocco scelgo l'opzione 1, il secondo blocco compare con le opzioni A e 
B disponibili, mentre se nel primo blocco sceglo l'opzione 2, il secondo 
blocco avrà le opzioni A e C, ad esempio.
Comunque proverò a usare le interruzioni di pagina. Grazie ancora (e nel 
caso ci fossero altri consigli... sono tutto orecchi! )