Newsgroup: it.comp.appl.access
Titolo: tabella temporanea?

Ciao a tutti
Come posso risolvere una situazione di questo genere?
Semplificando....
Ho una maschera singola di inserimento dati con una combobox e all'interno 
di questa maschera ho una sottomaschera continua.
Nella sottomaschera ho due controlli: 'nome' e 'quantità'
Quando dalla combobox seleziono un valore (per esempio 'fornitore') la 
sottomaschera visualizza:
NOME // QUANTITA'
pippo // campo vuoto (cioè controllo pronto per l'inserimento)
pluto // campo vuoto (idem come sopra)
Dopo aver riempito i controlli vuoti la tabella origine dati della 
maschera sarà (per esempio):
fornitore // pippo // 100
fornitore // pluto // 150
Vorrei che, alla successiva riapertura della maschera di inserimento e 
dopo aver scelto 'fornitore' dalla combobox mi si presentasse ancora la 
situazione precedente cioè:
NOME // QUANTITA'
pippo // campo vuoto (cioè controllo pronto per l'inserimento)
pluto // campo vuoto (idem come sopra)
e dopo aver inserito nuovi dati, la tabella origine dati della maschera 
deve essere (per esempio):
fornitore // pippo // 100
fornitore // pluto // 150
fornitore // pippo // 23
fornitore // pluto // 200
Se non erro per fare tutto questo mi serve una tabella temporanea, ma come 
si crea? Non ho trovato esempi nei vari siti, non sò proprio da dove 
iniziare e sono fermo a questo punto da parecchio......continuo a 'girarci 
intorno'....
Non sono pratico di vba ......
Grazie in anticipo a chiunque mi darà un aiuto
ciao

 ha scritto nel messaggio 
news:feffct$jji$1...@carabinieri.cs.interbusiness.it...

scusa ma perchè non gestisci l'evento da una maschera separata in modalità 
Imiissione dati ?
In questa maniera devi solo aprire la sottomaschera (come maschera separata 
ed autonoma) e sincronizzarla sul codice della principale, ma sei sempre in 
modalità immissione ...
IvanDaBologna 

Ciao
Penso che se anche gestisco il tutto con una maschera separata, quando 
devo inserire i dati mi ritrovo con entrambi i controlli NOME e QUANTITA' 
vuoti mentre io ho necessità di avere il controllo NOME già compilato 
(sincronizzato con la scelta fatta nella combobox della mainform) e il 
controllo QUANTITA' vuoto e pronto per l'immissione dati.
Pensavo che una tabella temporanea mi risolvesse il problema: dovrebbe 
'svuotare' i dati nella tabella definitiva e 'tenere in memoria' solo 
quelli relativi al campo NOME.......almeno credo debba funzionare in 
questo modo.
Grazie comunque per l'attenzione
Ciao

pluto // campo vuoto (idem come sopra)
non capisco se i controlli devo essere 'vuoti' o pieni a metà (il campo 
nome).
Inoltre mi sfugge la logica della questione e perciò azzardo una ipotesi.
Forse non stai utilizzando l'accoppiata Maschera/sottomaschera nella sua 
forma normale.
Se dici che hai una combo che seleziona il fornitore, dovresti impostare la 
maschera principale per posizionarsi su quel record, quello che mostra i 
dati del fornitore. Poi tutti i dati immessi nella sottomaschera (e a questo 
punto il campo Nome è inutile, poichè  lo vedi nella maschera principale) 
sono riferiti a quel fornitore.
qualcosa del genere:
+-------------------------------
! [    pinco]  [       pallino]
| [  altri dati]
|
|+---------------------------
|| [  345]
|| [    12]
|| [2890]
|| ..........
!+---------------------------
!+-----------------------------------
IvanDaBologna

 forma normale.
Ciao ivandabologna.
La cosa ha senso. Ti faccio un esempio.
Ammettiamo che mese per mese devi riportare gli stipendi dei dipendenti 
da un cartaceo. Cosa faresti?
Io mi riempirei un form con l'anagrafe dei dipendenti e poi aggiungerei 
i valori di stipendio.
-- 
ac
y-1=x

 y-1=x
Ciao Alessandro,
mi sfugge ancora ..
Uso la maschera principale con l'Anagrafica, corredata di una combo per 
cercare 'in fretta' il dipendente.
La sottomaschera mi permette di inserire lo stipendio ...
O forse il 'nodo' e' che l'operazione va fatta ogni volta su tutti i 
nominativi e quindi non serve la combo, magari una query di accodamento che 
salvi i records parzialmente riempiti (idDipendente, mese, ....) e poi una 
maschera che selezioni solo i records che non hanno un valore nel campo 
stipendio ?
vabbè, io in genere vedo sempre una metà del bicchiere !
IvanDaBologna 

 cercare 'in fretta' il dipendente.
Ed e' qui che perdi tempo. Un conto e' avere gia' tutti i record 
"predisposti" un conto e' andarseli a cercare e magari anche sbagliando, 
cose del tipo "...oddio dove ero arrivato....porca pupazza questo gia' 
lo avevo fatto......urca boia me ne manca uno chi cavolo e'" and so on
-- 
ac
y-1=x

 avevo fatto......urca boia me ne manca uno chi cavolo e'" and so on
vabbè ma con una maschera che mi mostra solo i records con quel campo a 
nullo o a zero non serve mettere dei segnalibri ... (la seconda ipotesi del 
post) ;))
IvanDaBologna 

Cari IvanDaBologna e Alessandro Cara
Grazie per l'interessamento a questo 'caso'
Il mio voleva essere solo un esempio molto semplificato del reale 
problema. Era solo per capire come creare e far funzionare una tabella 
temporanea.
Evidentemente non mi sono spiegato troppo bene......però ci siete arrivati 
comunque......
In realtà il mio db è strutturato per la registrazione di dati provenienti 
da un laboratorio di prove fisico-meccaniche sulla plastica.
Ho una mainform "prove" con un controllo "codice" (che identifica il 
materiale su cui viene effettuata la prova) e una combobox "tipoprove" 
dalla quale seleziono il tipo di prova effettuata sul materiale.
All'interno di questa mainform ho una subform denominata "strutturaprove" 
con due controlli "etichetta" e "valore".
Faccio un esempio pratico:
Una delle prove effettuate con maggiore frequenza è quella di 
'allungamento a rottura' che viene effettuata facendo, con un apposito 
strumento, 3 trazioni in senso longitudinale e 3 in senso trasversale (non 
ha importanza capire come viene effettuata nella realtà), quindi quando la 
seleziono con la combobox automaticamente la sottomaschera mi deve 
visualizzare questo:
ETICHETTA / VALORE
longitudinale1 / ......
longitudinale2 / ......
longitudinale3 / ......
trasversale1  / .....
trasversale 2 / ......
trasversale 3 / ......
con il controllo "valore" pronto per l'inserimento.
Alla chiusura della maschera la tabella origine dati "tbprove" si deve 
'riempire' dei valori inseriti (sia "etichette" che "valore"), per esempio 
(inserisco un codice e dei valori numerici a caso):
CODICE/TIPO DI PROVA/ETICHETTA/VALORE
plast1ac/allungamento a rottura/longitudinale1/100
plast1ac/allungamento a rottura/longitudinale2/150
plast1ac/allungamento a rottura/longitudinale3/120
plast1ac/allungamento a rottura/trasversale1/130
plast1ac/allungamento a rottura/trasversale2/105
plast1ac/allungamento a rottura/trasversale3/120
Quando riapro la mainform, perchè devo inserire altri dati, dopo aver 
selezionato il 'codice' e il 'tipo di prova' automaticamente nella 
sottomaschera mi devono comparire solo i valori del controllo "etichette" 
ma non i dati di "valore" che invece devono essere vuoti e pronti per 
l'inserimento. Praticamente se riapro la maschera e seleziono ancora la 
prova di 'allungamento a rottura' la sottomaschera deve visualizzarmi la 
stessa situazione di cui sopra:
ETICHETTA / VALORE
longitudinale1 / ......
longitudinale2 / ......
longitudinale3 / ......
trasversale1  / .....
trasversale 2 / ......
trasversale 3 / ......
Ovviamente i nuovi dati inseriti si devono 'accodare', a quelli inseriti 
in precedenza, nella tabella "tbprove"
In pratica sullo stesso codice (quindi sullo stesso materiale) possono 
essere effettuate più prove (per es: allungamento a rottura, carico a 
rottura, peso specifico, durezza, flessibilità ecc ecc) ognuna delle quali 
ha delle 'etichette' e dei valori da inserire. Le etichette rimangono 
'fisse' (cioè dopo averle inserite la prima volta poi rimangono sempre le 
stesse) mentre i valori cambiano ogni volta.
Questa struttura mi permette di poter inserire nella combobox il nome di 
una nuova prova (perchè può darsi che tra 1 mese venga acquistato un nuovo 
strumento che mi permette di poter effettuare un nuovo tipo di prova) e di 
inserire in 'etichetta' tutte le variabili relative alla prova (che poi 
rimangono fisse) e in 'valore' i dati (solitamente numerici) misurati.
Spero di essermi spiegato come si deve e scusate se non ho postato subito 
questo esempio (quello reale) ma non volevo complicare troppo le cose.
Ricordo che io non sono pratico di vba e che sono fermo da parecchio 
perchè, nonostante tutti i tentativi fatti, non sono riuscito a risolvere 
il problema.
Serve una tabella temporanea? Come funziona? Come si crea? 
Aiutatemi........... (avete presente la pubblicità.....)
Ciao e grazie ancora


I genere uso tabelle temporanee quando sono necessarie gestioni di tipo 
"transazionale". Nella tua  descrizione (troppo lunga, almeno a me la 
situazione sembrava abbastanza chiara) mi sembra che manchi un fatto 
fondamentale. La struttura delle tabelle.
Comunque ammettendo che hai una unica tabella con i seguenti attributi 
(da te citati)
CodiceMateriale.Prova.Etichetta.Valore
i passi che farei sono questi:
1) Form unica con testata e corpo e rowsource con filtro true(cioe' che 
restituisca tutti i record )
   a) in testata i valori guida
   b) corpo con le righe dei valori
2) A fronte dell'after update di uno dei valori guida (Prova, Codice)
    Verifica su recordsetclone se esiste l'accoppiata Codice.Prova, se 
si filtrare
    se non esiste verifica se esista codice, se no filtrare Codice.Prova 
e inserire a "manazza" le etichette. Se si leggere dal recordsetclone un 
gruppo Codice (ciclare per l'intero "Codice.Provax") ed inserire 
(addnew) sul recordset i nuovi record con:
Codice.NuovaProva.Etichetta al termine filtrare per Codice.NuovaProva
3) E piu facile a farsi che a dirsi  ;<). Dovrebbero essere in totale 
una decina di istruzioni.
4) Dietrologia. Non chiedermi di farlo poiche' non e' la mia politica.
-- 
ac
y-1=x

Ciao e grazie ancora
Io credo proprio che la tabella temporanea sia necessaria (anzi nella mia 
ipotesi te ne servono almeno altre tre!), a questo punto.
Questo tipo di problema si presenta in altri campi e viene denominato come 
Distinta Base.
Un elenco di oggetti (lavorazioni, proprietà) che devono corredare un 
Oggetto padre.
Tipo esempio : l'assemblaggio di un PC dove viene generata la lista di tutte 
le possibili classi di componenti e per ognuna di queste viene poi indicano 
il modello realmente utilizzato. Oppure uno screening medico dove a fronte 
di una analisi richiesta vengono elencati i possibili composti ricercati e 
poi vengono corredati dai valori rilevati. Oppure il tuo caso !
Io creerei una tabella separata con un nome significativo: [tabElencoProve]
e la riempirei con tutte le caratteristiche che una prova può avere, tipo:
[idElencoProve] [prova] [descrizione] [um] (unità di misura)  [minimo 
consigliato] [massimo consigliato] .... ecc, per quante te ne vengono in 
mente.
Il [valoreLettura] sarà invece un campo presente solo in [tabElencoProve]
Spero che tu abbia già distinto le due tabelle primarie necessarie : 
[tabProve] che identifica gli oggetti sottoposti e la [tabDettagliProve] che 
elenca tutte le prove rilevanti effettuate sull'oggetto primario. 
Correttamente relazionate tramite un campo [idProve].Se le prove hanno anche 
una collocazione temporale rilevante meglio metterci anche un campo data e 
magari un campo [operatore] e semmai [strumento] se la prova può essere 
effettuata su più strumenti diversi per precisione.
A questo punto per 'ricostruire' un record di dettaglio avrai bisogno di una 
query del tipo
[queTabDettagliProveEsteso]
SELECT tabDettagliProve.idDettaglioProve, tabDettagliProve.idProva, 
tabDettagliProve.idElencoProve, tabElencoProve.prova, 
tabElencoProve.descrizione, tabElencoProve.um, tabDettagliProve.valoreLetto, 
tabDettagliProve.operatore
FROM tabElencoProve INNER JOIN tabDettagliProve ON 
tabElencoProve.idElencoProve = tabDettagliProve.idElencoProve;
Per popolare la combo dovrai avere anche due tabelle di appoggio. Una che 
elenca solo le prove sottostanti ad un macro-nome tipo <'allungamento a 
rottura' ]>. L'altra che contiene solo il codice delle prove che competono a 
quella macro.
1) [tabMacro] In questa tabella metti solo due campi [idMacro] [descrizione]
2) [tabDettagliMacro] anche qui solo due campi [idDettaglioMacro] [idMacro] 
e [idElencoProve]. In pratica si tratta di una tabella molti<-->molti.
Naturalmente  dovrai corredare queste tabelle di una maschera con 
sottomaschera per poter immettere i dati appropriati.
Spero che tu abbia già distinto le due tabelle primarie necessarie : 
[tabProve] che identifica gli oggetti sottoposti e la [tabDettagliProve] che 
elenca tutte le prove rilevanti effettuate sull'oggetto primario. 
Correttamente relazionate tramite un campo [idProve].
Adesso hai quattro tabelle e ti serve una query di accodamento che 'popoli' 
la tabella [tabDettagliProve] con tutti i records presenti in 
[tabElencoProve], e che gli imponga già il campo [idProve] nonchè la data 
odierna (poi la cambi, se è il caso).
Per come sono nominati i campi nel mio esempio la query potrebbe essere 
questa:
[queAccodaDettagliDaMacro]
INSERT INTO tabDettagliProve ( idElencoProve )
SELECT tabDettagliMacro.idElencoProve
FROM tabMacro INNER JOIN tabDettagliMacro ON tabMacro.idMacro = 
tabDettagliMacro.idMacro
WHERE (((tabMacro.idMacro)=[numero della macro]));
a questo punto il gioco è a metà ! L'altra metà e' tutta questione di 
interfaccia per inserire i dovuti dettagli... ;))
Sono stato lungo, ma credo di non aver detto nemmeno tutto. Infatti per 
utilizzare al meglio le caratteristiche di access, in struttura delle 
tabelle, dovresi impostare la visualizzazione dei campi relazionati (nella 
tabella figlio) con una casella combinata di origine nel padre, così da 
farti aiutare al momento della creazione delle maschere di immissione. Ti 
verranno messi direttamente i controlli combo già ben definiti.
Molto tempo nel progettto = quasi di sicuro un buon risultato!
IvanDaBologna

 ipotesi te ne servono almeno altre tre!), a questo punto.
Dissento! ;<)
La diba presuppone una gerarchia che puo' tendere ad infinito nonche' 
una gestione di quantita' ed eventualmente di giacenze sia di materie 
prime che di semilavorati.
Non mi sembra questo il caso.
[cut]
-- 
ac
y-1=x

 nella mia ipotesi te ne servono almeno altre tre!)
Onestamente il termine temporanea mi era proprio sfuggito, intendevo parlare 
di tabelle strutturali e 'imperiture' !!!
Scusa Alessandro e scusa caio
IvanDaBologna 

 di tabelle strutturali e 'imperiture' !!!
Il potere di un "non".
-- 
ac
y-1=x

Ciao e GRAZIE MILLE PER LA RISPOSTE sia a Ivan che Alessandro.
Per seguire al meglio le istruzioni ho pensato di crearmi un nuovo db "ad 
hoc" in modo da capire il meccanismo per poi trasferirlo sul db su cui stò 
lavorando da parecchio.
Credo che seguirò i consigli di Ivan, non perchè quelli di Alessandro 
siano meno validi, ma solo perchè dall'alto della mia "ignoranza in fatto 
di vba" mi risulta più chiaro l'esempio di Ivan.
Per partire con 'il piede giusto' vorrei però ulteriori chiarimenti.
Quando scrivi:
Io creerei una tabella separata con un nome significativo: 
[tabElencoProve]
e la riempirei con tutte le caratteristiche che una prova può avere, tipo:
[idElencoProve] [prova] [descrizione] [um] (unità di misura)  [minimo 
consigliato] [massimo consigliato] .... ecc, per quante te ne vengono in 
mente.
Il [valoreLettura] sarà invece un campo presente solo in [tabElencoProve]
Non capisco se devo inserire anche un campo 'valoreLettura' nella tabella 
'tabElencoProve' oppure se devo creare una tabella a parte.
Poi: 
Se le prove hanno anche 
una collocazione temporale rilevante meglio metterci anche un campo data e 
magari un campo [operatore] e semmai [strumento] se la prova può essere 
effettuata su più strumenti diversi per precisione.
Questi campi vanno inseriti nella 'tabDettagliProve'?
Poi ancora ( e qui francamente mi perdo......): 
Per popolare la combo dovrai avere anche due tabelle di appoggio. Una che 
elenca solo le prove sottostanti ad un macro-nome tipo <'allungamento a 
rottura' ]>. L'altra che contiene solo il codice delle prove che competono 
a 
quella macro.
1) [tabMacro] In questa tabella metti solo due campi [idMacro] 
[descrizione]
2) [tabDettagliMacro] anche qui solo due campi [idDettaglioMacro] 
[idMacro] 
e [idElencoProve]. In pratica si tratta di una tabella molti<-->molti.
Potresti farmi un esempio pratico? Non capisco.....
Attualmente la combo della mainform prende i dati da una tabella che è 
simile alla tabProve che sostanzialmente è un elenco di tutte le prove che 
possono essere eseguite in laboratorio con la possibilità di inserire 
nuovi nomi direttamente scrivendoli nella combo mentre (e qui mi sono 
dimenticato di scriverlo prima)per quanto riguarda il codice questo lo 
prelevo sempre da una combobox basata su una tbCodice.
Ancora grazie
Ciao

Ciao, rieccomi.... errata corrige.....credo di avere capito.....puoi fare 
un controllo?
tabElencoProve
IdElencoProve - chiave primaria e contatore
Prova - testo
Descrizione - testo
Um - testo
tabProve
IdProva - chiave primaria e contatore
Prova - testo
tabDettagliProve
IdDettaglioProve - chiave primaria e contatore
IdProva - origine riga SELECT tabProve.IdProva, tabProve.Prova FROM 
tabProve;
IdElencoProve - origine riga SELECT [tabElencoProve].[IdElencoProve] FROM 
tabElencoProve;
ValoreLetto - testo
operatore - testo
tabMacro
IdMacro - chiave primaria e contatore
Descrizione - testo
tabDettagliMacro
IdDettagliMacro - chiave primaria e contatore
IdMacro - origine riga SELECT [tabMacro].[IdMacro], 
[tabMacro].[Descrizione] FROM tabMacro;
IdElencoProve - origine riga SELECT [tabElencoProve].[IdElencoProve]  FROM 
tabElencoProve
Sono OK?
Ho creato anche le due query 'queTabDettagliProveEsteso' e 
'queAccodaDettagliDaMacro'.
Quello che però non mi è chiaro sono le maschere di inserimento dati.
Quante maschere devo creare? E basate su quale tabella/e? 
Mi puoi dare ancora una "spinta"?
Ciao e ancora grazie

 ha scritto nel messaggio 
news:feim8s$l6e$1...@carabinieri.cs.interbusiness.it...







Eccomi qua,
formalmente e' valodo quello che hai costruito.
Le maschere:
devi provvedere ad un modo per 'manutenere' le tabelle create e quindi 
almeno una maschera + sottomaschera per le macro.
La maschera principale la alimenti con [tabMacro].
La sottomaschera con [tabDettagliMacro].
Compila le informazioni per legare i campi master e
Questa fase e' semplicissima e và fatta se vuoi mettere anche altri nella 
condizione di aggiungere o correggere le macro analisi e i relativi 
dettagli.
Credo che la maschera principale per [tabProve] + sottomaschera per 
[tabDettagliProve] tu l'abbia già costruita e fatta funzionare.
A questo punto ti manca solo un pulsante oppure un'evento DopoAggiornamento 
della combo con l'elenco delle Macro per 'lanciare' la query di accodamento. 
Siccome questa procedura la esegui all'interno della maschera principale 
[tabProve], dopo l'esecuzione della query devi fare un refresh della 
sottomaschera [tabDettagliProve], per far apparire i records accodati e 
'vuoti' nel valore che andrai ad inserire.
Se vuoi farti aiutare dalla sottomaschera a trovare i records con 
[ValoreLetto] = vuoto o nullo, puoi ricorrere alla formattazione 
condizionale sul controllo che ospita quel campo. Qualcosa del genere :
Formattazione condizionale... ['espressione è] --> Nz([ValoreLetto])="" 
e gli imposti un bel colorone rosso per farlo saltare all'occhio!
Nella rete delle informazioni manca solo qualche campo data, ma credo che 
sia ininfluente per ora.
IvanDaBologna

ciao, grazie per l'aiuto veramente molto molto molto utile......
Ma io non ho ancora capito.........almeno credo....andiamo per gradi....
Io ho creato le due maschere con sottomaschera e per farlo ho usato 
l'autocomposizione (è giusto?) e ho così:
1)mainform 'tabMacro' con subform 'tabDettagliMacro sottomaschera'
poi
2)mainform 'tabProve' con subform 'tabDettagliProve sottomaschera'
ma come faccio ad inserire i dati?
Presumo che per prima cosa si debbano impostare le associazioni nome della 
prova-dettagli della prova tipo: 
AR - long1
AR - long2
AR - long3
AR - trasv1
AR - trasv2
AR - trasv3
( uso solo tre + tre anzichè 5 + 5 prove e AR stà per allungamento a 
rottura, long stà per longitudinale e trasv per trasversale così almeno 
abbrevio un pò! )
Quindi per farlo utilizzo la mainform/subform1, giusto? La cosiddetta 
macro..... 
Ma se apro la mainform 'tabMacro' mi trovo un controllo 'descrizione' che 
non è una combobox ma una textbox percui presumo che di volta in volta 
debba scrivere il nome della prova anzichè sceglierlo da una lista (il che 
comporterebbe dover creare un'altra tabella da cui 'pescare' il nome della 
prova che mi serve)....ma questo è il meno....non ha importanza.
Quello che non capisco è la subform dove mi compaiono i seguenti 
controlli:
idDettaglioMacro, idMacro (combobox) e idElencoProve (combobox)
Se sono 'id' non mi permettono di inserire nessun valore.....o sbaglio?
E se ti inviassi per email questo db creato apposta per questo caso e tu 
gli dessi un'occhiata per vedere se effettivamente è tutto ok?
Perchè purtroppo penso che altrimenti andremmo avanti all'infinito....
La mia mail è quella indicata sopra: 
ca...@flag.it
Se mi aiuti a definire al meglio questa faccenda mi sblocchi da mesi di 
lavoro inutile che non ha portato a nessun risultato: continuo a non 
capire come fare per uscirne...... 
Cosa ne pensi? 
Ciao e grazie ancora

 ha scritto nel messaggio 
news:fekngf$h0h$1...@carabinieri.cs.interbusiness.it...

Me lo puoi inviare tranqillamente.
Il segreto delle idMacro e idElencoProve è in un trucco che access ti 
permette di associare ad un campo.
Andiamo per gradi e prendiamo il campo [idMacro].
Vai in struttura della tabella [tabDettagliMacro] e ti posizioni sul campo 
[idMacro] e poi attivi la linguetta -- Ricerca.
Questa zona serve ad aiutarti se vuoi che un campo elenchi una serie di 
valori predefiniti oppure, come nel nostro caso, i valori sono un elenco 
contenuto in un'altra tabella!
Allora devi impostare le cose così:
-----------------------------------------------------
Visualizza controllo --> Casella combinata
Tipo origine riga --> Tabella/query
Origine riga --> SELECT tabMacro.idMacro, tabMacro.descrizione FROM 
tabMacro;
(questa operazione la puoi fare in maniera visuale se attivi i tre puntini 
laterali e ti crei una query che elenca i records che ti servono)
Colonna associata-->1
Numero colonne--> 2
Larghezza colonne--0;3
(serve a non fare vedere la prima colonna che contiene il codice idMacro, 
che non dice niente a nessuno!, e mostare per esteso la seconda colonna con 
la descrizione. Però il valore memorizzato nel campo è in realtà il Numerico 
lungo corrispondente all' idMacro) <<-- questo è il nodo di tutto il 
giochino.
Solo in elenco-->Si
----------------------------------
questa operazione và ripetuta su tutti i campi che pescano il loro elenco da 
una query o una tabella.
Se cancelli il campo messo nella maschera e lo ritrascini dall'elenco campi, 
vedrai che stavolta hai una casella a discesa!
Ecco che puoi stabilire quale macro e quale prova associare. Qui ho fatto un 
piccolo errore di valutazione io. Il campo idMacro dovrebbe corrispondere a 
quello della maschera principale e quindi dovrebbe essere impostato in 
automatico!
Questo trucco, che in realtà è uno strumento potentissimo, ti permette di 
proporre elenchi dinamici quali sono di fatto le tabelle o le query, come 
alimentazione di un campo.
Tutta questione di progetto iniziale e di relazioni ben disegnate.
L'unica pecca non automatica di access si sente quando devi immettere un 
nuovo valore in queste liste ( la tua nuova prova, che hai dimenticato di 
inserire 'prima' nella tabella [tabProve]!). Ma anche per questo esistono 
varie soluzioni, vedi il 
www.sitocomune.com
, dove prima o poi abbiamo 
pescato tutti quanti!
IvanDaBologna
PS
invia il mdb che un'occhiata ce la dò volentieri.

Ciao
Ti ho inviato il db più un allegato però non sò se l'indirizzo email è 
quello indicato in questo newsgroup: se è diverso fammelo sapere.
Ciao

 ha scritto nel messaggio 
news:fenagd$9qq$1...@balena.cs.interbusiness.it...

e' arrivato, sto sistemando ...