Newsgroup: it.comp.appl.access
Titolo: Aprire maschera con i record filtrati

ciao a tutti
 
vorrei aprire una seconda maschera
con i record già filtrati 
dalla maschera corrente.
 
grazie


Se usi la Openform passa il criterio di filtro in Openargs e con quello 
sull'evento di open del form modifichi e sostituisci il Recordsouece del 
form stesso
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 

 dalla maschera corrente.
 
Dipende di quale tecnica di filtro si tratta.
Se il filtro si trova nella proprietà corrispondente della maschera puoi 
inoltrarlo p.e. così:
 
DoCmd.OpenForm "Maschera2",,, Me.Filter
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 


grazie Alessandro e Karl
 
prima filtro la maschera da menu,
poi apro su click di un pulsante
una seconda maschera che ha al suo interno una
casella di riepilogo con origine riga da query,
con i record corrispondenti alla maschera filtrata;
ed è su questa casella di riepilogo che vorrei avere
lo stesso numero di record filtrati, come nella prima maschera.

 lo stesso numero di record filtrati, come nella prima maschera.
 
Una cosa abbastanza diversa di prima chiesto.
Se la prima maschera e la combo hanno la stessa o simile origine dati 
forse potresti impostare il testo SQL della combo nel codice del 
pulsante ca. così:
 
DoCmd.OpenForm "Maschera2"
 
If Me.Filter > "" Then
   Forms!Maschera2!Combo.RowSource = "SELECT ... WHERE " & Me.Filter
End If


 Ciao
 
ciao Karl e grazie.
Ho fatto molte prove....;
non ho alcun errore, ma quando filtro la prima maschera la casella di riepilogo nella seconda maschera, non mi restituisce alcun record.

 non ho alcun errore, ma quando filtro la prima maschera la casella di riepilogo nella seconda maschera, non mi restituisce alcun record.
 
Peccato, ma con le informazioni fornite dovresti risolverlo da solo.
Mancano svolgimento, eventi, codice ... cioè cosa esattamente fai palmo 
a palmo con quale metodi, VBA, SQL.



ciao Karl
 
nella prima maschera "M_ElencoCarichiCliente" (dove filtro i record da menu) ho questa query come origine record:
SELECT TbOrdini.MioRif, TbOrdini.IdCliente, TbClienti.NomeCliente, TbFornitori.NomeFornitore, TbDestinazioneDiv.CittàClientediv, TbOrdini.IdOrdine, TbOrdini.DataOrdine, Qry_Importi.ImportoLordo, TbCarichi.RifCliente, Format(TbCarichi!DataCarico,"mm") AS Mese, TbCarichi.IdCarico, TbCarichi.DataCarico, IIf(IsNull(Qry_ValoreCarichi.IdCarico),-1,0) AS Conf_CaricoFo, IIf(IsNull([DataChiusura]),0,-1) AS ChiusuraCarico, TbCarichi.DataChiusura, IIf(IsNull(Qry_EstremiFattureFornitori.nNCFo),Qry_EstremiFattureFornitori.nFatturaFo,Qry_EstremiFattureFornitori.nFatturaFo & "-N.C." & Qry_EstremiFattureFornitori.nNCFo) AS nFatturaFo_nNCFo, Qry_EstremiFattureFornitori.DataFatturaFo, TbFatture.nMiaFattura, TbFatture.DataIncasso, Qry_Importi.IdSconto & "%" AS [%Sconto], Qry_Importi.MioSconto, Qry_Importi.TotSconto, Qry_Importi.Netto
FROM TbClienti INNER JOIN (TbFatture RIGHT JOIN (TbOrdini INNER JOIN (TbDestinazioneDiv RIGHT JOIN (TbFornitori INNER JOIN ((((TbCarichi INNER JOIN Qry_Importi ON TbCarichi.IdCarico = Qry_Importi.IdCarico) INNER JOIN Qry_EstremiFattureFornitori ON TbCarichi.IdCarico = Qry_EstremiFattureFornitori.IdCarico) LEFT JOIN Qry_ValoreCarichi ON TbCarichi.IdCarico = Qry_ValoreCarichi.IdCarico) LEFT JOIN DettaglioFatture ON (Qry_Importi.MioSconto = DettaglioFatture.MioSconto) AND (Qry_Importi.IdCarico = DettaglioFatture.IdCarico)) ON TbFornitori.IdFornitore = TbCarichi.IdFornitore) ON TbDestinazioneDiv.IdDestinazioneDiv = TbCarichi.IdDestinazioneDiv) ON TbOrdini.IdOrdine = TbCarichi.IdOrdine) ON TbFatture.IdFattura = DettaglioFatture.IdFattura) ON TbClienti.IdCliente = TbOrdini.IdCliente
WHERE (((TbOrdini.IdCliente)=cliCriterio()))
ORDER BY TbClienti.NomeCliente;
 
poi su click di un pulsante apro la seconda maschera "M_CarichidaChiudere" che ha come origine query:
SELECT TbCarichi.IdCarico, TbOrdini.IdCliente, TbClienti.NomeCliente,TbClienti.Lingua
FROM TbClienti INNER JOIN (TbOrdini INNER JOIN TbCarichi ON TbOrdini.IdOrdine = TbCarichi.IdOrdine) ON TbClienti.IdCliente = TbOrdini.IdCliente
WHERE (((TbOrdini.IdCliente)=cliCriterio()));
 
con nel corpo, la casella di riepilogo non associta "LstCarichidaChiudere"
con questa query comne origine riga:
SELECT TbOrdini.IdCliente, TbFornitori.NomeFornitore AS Fornitore, TbCarichi.DataCarico AS Carico, Nz([GiorniConsegna],0)+Nz([GiorniConsegnaPred],0) AS gg, [DataCarico]+Nz([gg],0) AS Consegna, "Carico " & [DataCarico] AS Partenza, "Consegna " & [DataCarico]+Nz([gg],0) AS Arrivo
FROM TbClienti INNER JOIN (TbOrdini INNER JOIN (TbFornitori INNER JOIN TbCarichi ON TbFornitori.IdFornitore = TbCarichi.IdFornitore) ON TbOrdini.IdOrdine = TbCarichi.IdOrdine) ON TbClienti.IdCliente = TbOrdini.IdCliente
WHERE (((TbOrdini.IdCliente)=cliCriterio()) AND ((TbCarichi.DataCarico) Is Not Null) AND ((TbCarichi.DataChiusura) Is Null))
ORDER BY TbCarichi.DataCarico DESC , TbFornitori.NomeFornitore;