Newsgroup: it.comp.appl.access
Titolo: Per esperti : problemino con query parametrica - 2

Sicuramente a causa della poca chiarezza con cui ho esposto il mio problema
nel post precedente, ho ricevuto (e di questo vi ringrazio) diverse risposte
tra loro contrastanti.
Cercherò ora di essere il piu chiaro, dettagliato ed esaustivo possibile
circa il mio caso.
Innanzi tutto c'è da fare una premessa.
In ambito Access all'interno di una query è possibile fare riferimento ad un
particolare controllo di una maschera o sottomaschera. Per sottomaschera io
intendo quel particolare controllo che fa da contenitore per una maschera,
tabella, report. Contenitore => Contenuto   Sottomaschera =>
Maschera/Tabella/Report
Quindi l'espressione [Forms]![mskMain]![Figlio16].[Form]![Testo2] fa
riferimento al valore contenuto nel controllo [Testo2] di un oggetto
maschera( [Form] ) contenuto ( o che fa da sorgente dati per dirla
tecnicamente) in una sottomaschera [Figlio16] che è inserita a sua volta in
una maschera principale [mskMain].
La seguente query :
SELECT [TabMP3].[Interprete], [TabMP3].[Titolo], [TabMP3].[Genere],
[TabMP3].[Grandezza]
FROM TabMP3
WHERE ((([TabMP3].[Interprete]) Like
[Forms]![mskMain]![Figlio16].[Form]![Testo2] & "*")) Or
((([Forms]![mskMain]![Figlio16].[Form]![Testo2]) Is Null))
ORDER BY [TabMP3].[Interprete], [TabMP3].[Titolo];
funziona benissimo, non ho avuto alcuna difficoltà ad indirizzare la query
al controllo [Testo2].
Non solo, ma si puo fare riferimento anche alla specifica proprietà del
controllo in questione ( es. : .Value,.Text,.Visible ecc.).
Ecco un mio esempio pratico di quanto dico:
[Forms]![mskMain]![Figlio12]![Figlio10].[Form]![Elenco0].[Value].
Questa espressione (dove il controllo [Elenco0] fa riferimento ad una
casella di riepilogo) è corretta e funziona benissimo. Oltretutto in questo
esempio siamo in presenza di sottomaschere nidificate
([Figlio12]![Figlio10]).
Il mio problema nasce dal fatto che quanto esposto sopra sembra perdere di
validita quando si viene ad usare il controllo "struttura a schede". Insomma
il problema non è di natura strutturale, ossia di un limite di Access, ma
semmai circoscritto al tipo di controllo che mi sono preposto di usare.
Fatta la premessa ora vi riespongo dettagliatamente il quesito .
Titolo: Come indirizzare una query ad un controllo non associato contenuto
in una sottomaschera che sta all'interno di una struttura a schede ?
Ho creato un database per l'archiviazione dei brani in formato mp3.
All'avvio compare la maschera principale [mskMain], all'interno di questa
c'è un struttura a schede con nome elemento [TabCtl39] formata da 5 pagine.
La seconda di queste pagine di nome [Pagina41] (dove [Pagina41] è il nome
dell'elemento e non l'etichetta) contiene una sottomaschera di nome
[smskElenchi] che come origine dati ha una maschera di nome uguale
[smskElenchi] (non penso affatto che il problema derivi da questo)
all'interno di questa maschera c'è una casella di riepilogo di nome
[Elenco0] dove compaiono i nomi degli interpreti presenti nel db. Cliccando
su una voce dell'[Elenco0] viene eseguita tramite macro la seguente query :
SELECT [TabMP3].[Interprete], [TabMP3].[Titolo], [TabMP3].[Genere],
[TabMP3].[Grandezza]
FROM TabMP3
WHERE [TabMP3].[Interprete] Like
[Forms]![mskMain]![TabCtl39]![Pagina41]![smskElenchi].[Form]![Elenco0].[Valu
e]
ORDER BY [TabMP3].[Interprete], [TabMP3].[Titolo];
Questa query restituisce i brani presenti per quell'interprete.
E qui comincia il problema, dato che mi compare la finestra d'immissione
parametro, cioè non viene trovato il controllo a cui fa riferimento
l'espressione
[Forms]![mskMain]![TabCtl39]![Pagina41]![smskElenchi].[Form]![Elenco0].[Valu
e] nella query. Ora tenuto conto che i nomi dei controlli sono giusti e che
la casella di riepilogo [Elenco0] visualizza una sola colonna(numero colonne
1) che è anche la colonna associata dove c'è l'elenco interpreti ed è un
controllo non associato ma che ha come origine dati una query di selezione,
non riesco a
capire come si possa indirizzare la query verso il controllo [Elenco0].
Le risposte che mi sono dato son queste :
1) Ho commesso qualche errore di sintassi nell'espressione (ma quale?)
2) Non è possibile fare direttamente un indirizzamento all'interno di una
query ad un controllo contenuto in una struttura a schede.
3) Bisogna per forza ricorrere a codice VBA
Se cosi fosse sarebbe per me un problema essendo totalmente all'oscuro di
nozioni di VBA
Ringrazio anticipatamente chiunque sappia illuminarmi in proposito e
propormi soluzioni concrete.

 in una sottomaschera che sta all'interno di una struttura a schede ?
evvabe'.....potevi dirlo subito! ;<))))
Mi sembrava di aver notato la cosa. 
Non e' proprio la stessa situazione da te descritta. 
Io uso una struttura a scheda generalizzata e indirizzo
i subform "senza" citarla.
Tanto per chiarire uso questa istruzione
If Nz(Me.GestMen00.Form.BeforeUpdate, "") = "" Then
ebbene gestmen00 e' un controllo subform contenuto in una struttura
a schede ma come puoi osservare non faccio riferimeto a tale struttura
--
a.cara 
Togli qualcosa dall'email

 ha scritto nel messaggio
news:3E5A62BD...@blunet.it...

Il solito modesto.............!
Aveva detto per Esperti..!
@Alex.

 Aveva detto per Esperti..!
Accidenti alla fretta.
Non me ne ero accorto.
Potro' mai essere perdonato? 
Giuro non lo faccio piu'
;<)
