Newsgroup: it.comp.appl.access
Titolo: Aggiornare maschera

Io sto creando un file di access e mi serve che in una maschera una ci
sia un elenco di voci filtrate in base alla selezione fatta in delle
caselle caselle di riepilogo.
Finche dovevo filttrarle con una sola selezione è stato molto semplice
perchè semplicemente ho creato una query filtrata per il risultato
della selzione e poi mostravo la query in una sottomaschera e ho
aggiunto il comando requery all'evento click per far aggiornare la
sottomaschera ad ogni selezione.
Mi sono inpantanato quando sono arrivato al punto di dover filtrare
un'altra query ma questa volta con una selezione multipla dopo aver
trovato sul sito comune l'esempio appropriato ho provato a aggiustarlo
per le mie ewsigenze inquanto nell'esempio bisognava selezione gli
anni e poi cliccare sul pulsante per creare la query ma a me serve che
il filtraggio avvenga "live" senza il click sul pulssante e dopo vari
esperimenti sono riuscito in parte nell'impresa infatti mettendo
nell'evento click questo :
Private Sub VAR_selezione_Click()
    Dim strLista As String
    Dim varItem As Variant
    Dim serve As String
' Se non ci sono voci selezionate
' non ci sono attività da effettuare
    If Me!VAR_selezione.ItemsSelected.Count = 0 Then Exit Sub
' Cicla nell'insieme delle voci selezionate
serve = " Or (QUE_di_origine.record1)="
    For Each varItem In Me!VAR_selezione.ItemsSelected
        strLista = strLista & """" & _
            Me!VAR_selezione.Column(0, varItem) & """" & serve
    Next varItem
    strLista = Left$(strLista, Len(strLista) - Len(serve))
    CurrentDb.QueryDefs("QUE_di_destin_Filtr").SQL = "SELECT * FROM
QUE_di_origine WHERE (QUE_di_origine.record1) Like " & strLista & " "
& "ORDER BY record1;"
la query viene creata perfettamente solo che non viene aggiornata
nella sottomaschera presente nella stessa maschera anche con il
comando requery non succede nulla ma si aggiorna solo se passo da
visualizza maschera a visualizza struttura si aggionra.
qualcuno sa indicarmo come aggiornare i dati senza passare da una
visualizzazzione all'altra?
Grazie
Jaba

 ha scritto nel messaggio 
news:da5ecdc0-d6b5-4f1e...@m3g2000hsc.googlegroups.com...

Private Sub VAR_selezione_Click()



-----------  RISPOSTA  --------------
Oltre al requery, io proverei ad inserire un repaint della maschera di cui 
vuoi ottenere il refresh

Grazie per la risposta ma vista la mia ignoranza mi sai dire dove va
il repaint io l'ho "messo" il fondo al codice che ho postato ma non è
cambiato nulla.
Jaba

 ha scritto nel messaggio 
news:4bcf01c5-219e-422c...@24g2000hsh.googlegroups.com...
Grazie per la risposta ma vista la mia ignoranza mi sai dire dove va
il repaint io l'ho "messo" il fondo al codice che ho postato ma non č
cambiato nulla.
Jaba
----------  RISPOSTA  -----------
Se non ricordo male hai creato un pulsante che ti aggiorna la query ma 
l'effetto di questo aggiornamento lo vedi solo se esci e rientri o se cambi 
record e poi ritorni su quello precedente.
In questo caso, visto che la query viene aggiornata ma la maschera non si 
aggiorna per fare vedere questi cambiamenti, credo che potresti provare ad 
inserire alla fine della routine che aggiorna la query, quindi come ultima 
istruzione dell'evento click del pulsante, il repaint della sottomaschera 
che dovrebbe mostrare le variazioni. L'istruzione č piů o meno questa:
me.sottomaschera.repaint
Ciao
Antonio

Il codice postato l'ho messo nell'evento Click della casella di
riepilogo in cui va fatta la scelta.
Volevo saper non è possibile "esportare" i valori selezionati nelle
casella come si puo fare per le caselle con selezione singola?
Perche per filtrare le tabelle con una sola selezione possibile ho
semplicemente creato una query e ho aggiunto [Forms]![Maschera]!
[selezione] come criterio per filtrare i record.
Jaba

Ho appena risolto con un po di mulo e scopiazzando qua e là
Prima ho creato una nuova tabella(TAB_sel) vuota con 2 record ID e
SELEZIONE
poi ho aggiunto il record SELEZIONE nella query che volevo filtrare e
ho messo
come criterio nel record da filtrare SELEZIONE cosicche mostrasse solo
quelle che mi interessano
poi ho creato il codice:
Private Sub VAR_casella_Click()
    Dim strLista As String
    Dim varItem As Variant
' Se non ci sono voci selezionate
' non ci sono attività da effettuare
    If Me!VAR_casella.ItemsSelected.Count = 0 Then Exit Sub
   DoCmd.SetWarnings False
'svuota la tabella di selezione
   DoCmd.RunSQL "DELETE * FROM TAB_Sel"
' Cicla nell'insieme delle voci selezionate
    For Each varItem In Me!VAR_casella.ItemsSelected
        strLista = Me!VAR_casella.Column(0, varItem)
' aggiunge le varie selzioni nella TAB_sel
DoCmd.RunSQL "insert into TAB_Traini_Sincro_Sel values(" & varItem + 1
& " , '" & strLista & "')"
Next varItem
   DoCmd.SetWarnings True
   Me.Repaint
Me.Distinta_Sincro.Requery
spero di essere stato utile
P.S.
Se qualcuno scova errori inesattezze o migliorie sono bene accette.
Jaba