Newsgroup: it.comp.appl.access
Titolo: la stessa maschera con diversa origine dati

buongiorno a tutti, mi scuso sin d'ora per l'oggetto del post che può apparire fuorviante, spiego meglio il mio problema.
 
Ho una maschera che, azionata da un pulsante, mi permette di leggere tutti i record di tabella.
Avrei necessità di un secondo pulsante che visualizzi solo i record i cui Progr derivano da una tabella, ma non so come fare.
 
Io ho creato una seconda maschera con origine dati a una query collegata alla tabella dei file da visualizzare e la cosa funziona ma il fatto di cambiare maschera di fatto mi "snatura" cioè mi modifica tutti i passaggi successivi.
 
Avrei bisogno pertanto che la maschera che vado ad aprire con il pulsante sia la stessa ma solamente filtrata nei record. Comprendo che per voi è magari una stupidaggine, ma non riesco a venirne fuori.
 
Grazie infinite a chi mi potrà aiutare....


puoi sull'evento onclick del pulsante cambiare l'origine dati della maschera
 
se l'origine attuale è "TuaTabella"
 
me.recordsource="tuaqueryfiltrata"
 
alla ripressione del pulsante puoi reimpostare la tabella originale
 
me.recordource="TuaTabella"
 
ovviamente query e tabella denono avere stesso nome di colonne 
altrimenti ti troverai con il classico #nome dentro qualche casella
 
ciao
BFS
 
 


Non potrebbe bastare usare appositamente la proprietà FILTER...?
Ovviamente devi costruire il CRITERIO 
[NomeCampo] IN (Val1,Val2...Valn)
 
Puoi anche provare se accetta in modo più esteso(ma non sono certo):
[NomeCampo] IN (SELECT NomeCampo FROM NomeTabella INNER....)
 
Altrimenti BFS ti ha esposto molto chiaramente l'unica alternativa.
 
@Alex

ciao BFS,
mi sono spiegato malissimo,scusami. 
 
Dalla maschera di avvio "frm_Avvio"  un pulsante apre la maschera "frm_Intervento" che ha la sua origine nella tabella "Interventi" del db. 
 
Mi serve un secondo pulsante che apra sempre la maschera "frm_Intervento" predisponendo però la relativa origine dati alla query "Z_Cruscotto_TROVAPROGR".
 
Ho provato a smanettare un po' col codice che ti allego ma non riesco a venirne fuori. Domattina ci riprovo, ora sono straincasinato da altre mille cose da fare.
Grazie infinite per il sempre costante aiuto.
 
Private Sub Comando298_Click()
    Dim stDocName As String
    Dim stLinkCriteria As String
 
    stDocName = "frmIntervento"
    frm.frmIntervento.RecordSource = "Z_Cruscotto_TROVAPROGR"
    DoCmd.OpenForm stDocName, , , , stLinkCriteria
 
 
End Sub
 


prova cosi :-)
prima apri e poi cambi origine dati
 
stDocName = "frmIntervento"
DoCmd.OpenForm stDocName, , , , stLinkCriteria
frm.frmIntervento.RecordSource = "Z_Cruscotto_TROVAPROGR"
 

 
 
Cosa sarebbe "frm."?
 
Forms(stDocName).RecordSource = "Z_Cruscotto_TROVAPROGR"
 
Però questo scarica tutte e due origini, prima quella scritta nella 
proprietà della maschera e poi l'altra.
 
Spesso non disturba. Altrimenti si puo evitarlo p.e. con mandare un 
parametro nei OpenArgs:
 
DoCmd.OpenForm stDocName,,,,,, stLinkCriteria, "Z_Cruscotto_TROVAPROGR"
 
e nell'evento Open della maschera:
 
If Not IsNull(Me.OpenArgs) Then
     Me.RecordSource = Me.OpenArgs
End If
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 

ciao Karl,
ho cambiato quel bruttissimo nome di pulsante, mi si era ingrippato mentre ragionavo (sic!) sul codice... 
 
Ho applicato il tuo suggerimento e ora funziona perfettamente, nel dettaglio non ho capito molto dell'istruzione OpenArg ma domani mattina cercherò di approfondirla.
Sei un mostro di bravura e vi ringrazio tutti davvero tanto.
 
con affetto.
M