Newsgroup: it.comp.appl.access
Titolo: Filtrare Sottomaschera in base al valore di una casella di combinata

La maschera contiene una casella combinata con 2 colonne: "key contratto"
e "descrizione contratto".
Poi una sottomaschera la cui origine record e' una query a campi
incrociati.
Devo filtrare la sottomaschera in base al campo key contratto
con il valore che proviene dalla casella combinata.
Le proprieta' Collega campi master e Collega campi secondari
dell'oggetto sottomaschera non sono utilizzabili (Impossibile creare
un collegamento tra maschere non associate).
Il seguente codice VBA associato all'evento Dopo Aggiornamento
della casella combinata non funziona:
    Dim str
    str = " [KeyContratti] = " & Me.KeyContratti
    Me.Figlio1.Form.Filter = str
    Me.Figlio1.Form.FilterOn = True
Quale altra strada posso percorrere?
Ciao.

> "Alkatraz" news:Pcel9.181313$pX1.6...@news2.tin.it...:

    Non e' rilevante col problema, ma io eviterei l'uso di "str" come nome
di variabile. Consulta la guida a proposito di:
        Funzione Str
    Non ci dici nulla a proposito del tipo del campo "key contratto". Testo
o Numerico? Da come scrivi si direbbe sia numerico. Corrisponde?
    Non si capisce quale sia il nome giusto:
        key contratto
        key contratti
        keycontratti
    Non ci dici come si chiama il controllo Casella combinata.
"KeyContratti"?
    Non ci dici il valore della proprieta' Colonna associata della Casella
combinata.
    Non sapendo con certezza tutte queste cose posso solo ipotizzare che tu
debba scrivere:
        str = " [KeyContratti] = " & Me.KeyContratti.Column(0)
    Verifica anche se non sia piu' opportuno spostare il codice dall'evento:
        _AfterUpdate
all'evento:
        _Click
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 combinata.
la colonna associata e' la 1. Il campo e' numerico.

 la colonna associata e' la 1. Il campo e' numerico.
    ???
    Ma hai appena detto che "key contratto", prima colonna della casella
combinata, prende i valori dal campo KeyContratti, Testo!!!
    Ti interessa risolvere questo tuo problema? Allora cancella tutto,
riscrivi il quesito alla luce di quello che ci siamo detti, rifletti, poi
rileggi e quindi attaccati a 'sto 3d con informazioni *precise*. Se qualcosa
invece ti sfugge fai domande che cosi' ci chiariamo.


 combinata, prende i valori dal campo KeyContratti, Testo!!!
mi stai pigliando in giro? Quello era del testo quotato
dal tuo precedente post.
KeyContratti e' un contatore, quindi necessariamente
deve contenere valori numerici.
La casella combinata, infatti, non puo' essere associata
al campo KeyContratti, poiche' mi serve per selezionare
i contratti, appunto. L'origine riga di questa casella, chiamata
valore1 e' il seguente codice SQL
"SELECT Contratti.KeyContratti, Contratti.NomeCampagna, Contratti.NumDoc,
Contratti.InizioAffissione
FROM Contratti;"
 Colonna associata  ha valore 1.
Poi abbiamo la nostra sottomaschera Figlio1. Questa contiene, tra gli altri,
il campo KeyContratti
ed ha come OGGETTO ORIGINE una query a campi incrociati.
Obiettivo: io clicco sulla casella valore1 e scelgo il contratto 50
(valore1.value) ad esempio;
la sottomaschera figlio1 viene filtrata e riporta solo i campi
con KeyContratti = 50
Spero di essere stato piu' chiaro.
Se vuoi possiamo sentirci in icq per info ancora piu' precise.

 per info ancora piu' precise.
--


     Assolutamente no!
se se....

 se se....
    ?!?!


 Ciao.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 manina santa. ;-)
Ho seguito la seconda strada ma purtroppo non funziona.
L'errore e': Impossibile utilizzare una query SQL di tipo pass-through o una
query a campi incrociati a colonne non fisse come origine record di una
sottomaschera
o un sottoreport.
Prima di associare la sottomaschera o il sottoreport ad una query a campi
incrociati, impostare
la proprieta' ColumnHeadings della query.
Per completezza ti dico esattamente quello che ho fatto:
1- ho creato una casella di testo non associata (Testo50)
2- ho associato Testo50 alla casella valore1 impostando
la proprieta' Origine Controllo =[valore1]
3- Nelle propieta' della sottomaschera Figlio1 ho impostato
Collega campi secondari   [KeyContratti]
Collega campi master        Testo50

 Collega campi master        Testo50
Leggi sopra: per far funzionare questa soluzione devi predefinire le colonne
della query a campi incrociati.
