Newsgroup: it.comp.appl.access
Titolo: modificare flltro a maschera contenuta  dentro una scheda (pagina inserita in una maschera madre)

mi ritrovo ad utilizzare la  sottomaschera maschera "MudComuni_q_CS3" che ho predisposto dentro una scheda (corrispondente a: TabCtl121.Pages(3)) , inserita nella maschera madre "MudComuni_m_ANAG". 
Il filtro visualizzato nelle proprietà di questa sottomaschera e riscontro
collega a campi master:               numeroPosizione;ns3:comune
collega a campi secondari:          numeroPosizione;ns3:comune
 
Questo filtro mi  dà l'immediata corrispondenza  di quanto visualizzato in maschera.
 Ho esigenza, dietro specifico comando di rimuovere il filtro e di applicare una del tutto diverso, vincolato alla mia variabile SalvaCodiceComunale.
 
ho tentato le seguenti fomule VBA  nella sub form_current
Forms![MudComuni_m_ANAG]![MudComuni_q_CS1].Filter = "[ISTATComune2]= SalvaCodiceComunale" 
 
oppure 
Forms![MudComuni_m_ANAG]![MudComuni_q_CS1].Scheda.Filter = "[ISTATComune2]= SalvaCodiceComunale" 
 
o ancora 
Forms![MudComuni_m_ANAG]! TabCtl121.Pages(3)![MudComuni_q_CS1].Scheda.Filter = "[ISTATComune2]= SalvaCodiceComunale" 
 
ovviamente i tentativi erano seguiti, ognunao rispettivamente alla radice di istruzioni  tentate come nell'esempio che segue
Forms![MudComuni_m_ANAG]![MudComuni_q_CS1].Filteron = true
 
VBA va in bug e non riconosce le castronerie che ho tentato di avviare
 
Non trovo alcuna spiegazione su come riferirsi correttamente  alla  sottomaschera ed al controllo su cui applicare il filtro.
 
Sicuramente qualcuno mi suggerirà di rinunciare a questa soluzione, ma al punto in  cui sono nello sviluppo del file access, diventa improponibile   o troppo farraginoso seguire un altro approccio.
 
I Vs consigli sono ben graditi

Forse se posti un file di esempio risulta più semplice aiutarti in quanto si può capire direttamente ciò che hai realizzato fino a ora.

Ma l'oggetto Controllo a schede è solo un Container, risulta trasparente in termini di Collection di oggetti, quindi non deve apparire nella Gerarchia.
Quindi se sei nella Form Principale:
Me![MudComuni_q_CS1].Form.Filter=StringFiltro
Me![MudComuni_q_CS1].Form.FilterOn=True
 
Se sei Fuori dalla Form Principale:_
Forms![MudComuni_m_ANAG]!MudComuni_q_CS1].Form.Filter=StringFiltro
Forms![MudComuni_m_ANAG]!MudComuni_q_CS1].Form.FilterOn=True
 
Altra cosa, questo non va assolutamente bene:
 "[ISTATComune2]= SalvaCodiceComunale" 
 
Se il campo è Testo e non Numerico, serve formattarlo come Testo, quindi Apicetti:
 "[ISTATComune2]= 'SalvaCodiceComunale'" 
 
Se invece in realtà è Numerico in quanto Indicizzato da Tabella relazionata, quel criterio è ovviamente insensato, deve riportare il riferimento alla PK del campo relazionato.
 
Saluti
@Alex


grazie per il suggerimento, ho fatto delle prove  con il seguente risultato :
 Acces  non si inceppa e va avanti, visualizza la maschera e la sottomaschera senza però restituire il risultato filtrato sperato
 
 Ti faccio presente che  il campo CIUProv, equivalente a  numeroPosizione,  è una stringa e che il campo istatComune, eqiìuivalente a Istatcomune2 , è un numero di 6 cifre, fissato a stringa  visto che in alcuni casi potrebbe iniziare con ZERO.
 
    Dim SalvaCodiceComunale, SalvaCIUProv As String ' NB il controllo CIUProv   riporta il numeroPosizione
    SalvaCodiceComunale = Forms![MudComuni_m_ANAG]![IstatComune]
 
    SalvaCIUProv = Forms![MudComuni_m_ANAG]![CIUProv]
    Dim StringFiltro As String
    StringFiltro = "[ISTATComune2]= 'SalvaCodiceComunale' AND[CIUProv]= 'SalvaCIUProv'"   ' attribuisco alla nuova variabile l'istruzione parziale dove  utilizzo gli apicetti
 
    Me.MudComuni_q_CS1.Form.FilterOn = False   'disabilito il precedente filtro 
    Me.MudComuni_q_CS1.Form.Filter = StringFiltro  ' mia variabile  con istruzione parziale 
 
    Me.MudComuni_q_CS1.Form.FilterOn = True ' attivo il nuovo filtro
 
 
Per la cronaca,  MudComuni_q_CS è la maschera  che visualizza  i risultati della query omonima
 che in corrispondenza al campo ns2:Comune   è vincolata al criterio [Maschere]![MudComuni_m_ANAG]![tutti i Comuni della dichiarazione:].[Scheda]![ns2:comune]  ed al campo numeroPosizione è vincolata al criterio [Maschere]![MudComuni_m_ANAG]![CIUProv]
Criteri, entrambi che   con l'istruzione Me.MudComuni_q_CS1.Form.FilterOn = False   ritengo di aver disabilitato
 
ulteriore precisazione , ho anche provato  a cambiare la StrigFiltro in :
StringFiltro = "[Maschere]![MudComuni_m_ANAG]![MudComuni_q_CS1].[Scheda]![ISTATComune2]= 'SalvaCodiceComunale' AND [Maschere]![MudComuni_m_ANAG]![MudComuni_q_CS1].[Scheda]![CIUProv]= 'SalvaCIUProv'"
 
non capisco perchè non viene applicato il nuovo filtro
 

Temo tu abbia parecchia confusione/lacune nello scrivere codice... confondi le variabili con gli oggetti... o i riferimenti.
 
Dim StringFiltro As String
 
SalvaCIUProv = Forms![MudComuni_m_ANAG]![CIUProv]   ' <---- Questa è una Variabile
StringFiltro = "[ISTATComune2]= " & SalvaCodiceComunale & " AND[CIUProv]= " & SalvaCIUProv ' <<<---- Devi usare le variabili ma se le racchiudi nella stringa chi pensi le risolva...? 
 
-----> Me.MudComuni_q_CS1.Form.FilterOn = False ' <----- NON SERVE ASSOLUTAMENTE anzi meglio non metterla
Me.MudComuni_q_CS1.Form.Filter = StringFiltro ' mia variabile con istruzione parziale
Me.MudComuni_q_CS1.Form.FilterOn = True ' attivo il nuovo filtro
 
Devi imparare anche a fare Debug, ti saresti accorto che invece della Valorizzazione della Variabile, avresti letto il NOME.
 
Saluti
@Alex