Newsgroup: it.comp.appl.access
Titolo: Casella di riepilogo e query (casella combinata)

Salve a tutti, volevo un Vs aiuto:
Ho creato una maschera che contiene una casella di riepilogo che a sua
volta ha come origine una query.
Adesso nella stassa maschera vorrei inserire un paio di "caselle
combinate"  con lo scopodi FILTRARE i dati presenti nella casella di
riepilogo. Come posso fare? qual'p il codice da utilizzare???
Vi elenco i dati della query e della maschera
1) Query:
Nome: Query2
Contenuto:
ID
Ragione Sociale
Data
N° Fatt
2) Maschera
Nome: Lista
Contenuto
Casella di riepilogo dal nome LIST
Casella combinata dal nome RAGIONE
Casella combinata dal nome DATA
Io vorrei che una casella combinata mi faccia la ricerca per tipo di
"ragione sociale", poi fare anche una seconda ricerca in base alla
"Data"
GRAZIE A TUTTI per l'aiuto


Vedi:
Dipendenza delle caselle combinate/riepilogo
http://www.donkarl.com/it?FAQ4.36
e siccome hai più criteri:
Criterio che restituirà tutti i record
http://www.donkarl.com/it?FAQ3.14
Se non riesci, posta la stringa SQL della Query2.
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 

 Access FAQ:  
http://www.donkarl.com/it
Per prima cosa grazie per l'aiuto, il primo prob l'ho risolto il
seconod no.
Il mio prob adesso è che volevo far uscire come valore inizale l'"*"
in modo da far usicre nella casella combinata tutti i risultati per
poi andarli a filtrare, ma mettendo la funzione "or" (come consigliato
dall'esempio) non funge perchè cmq lui trova i dati dalla tabella e mi
restituisce quelli
Come posso fare???
mi hai chiesto la query spero di postare il codice giusto:
"Visualizzazione SQL"
SELECT fatture.ID, Clienti.[Ragione Sociale], fatture.datafatt,
fatture.num
FROM (Clienti INNER JOIN fatture ON Clienti.ID = fatture.IDcliente)
INNER JOIN fattcorpo ON fatture.ID = fattcorpo.IDfatt
GROUP BY fatture.ID, Clienti.[Ragione Sociale], fatture.datafatt,
fatture.num
HAVING (((Clienti.[Ragione Sociale])=[Maschere]![FattLista]![cbo]) AND
((fatture.num)=[Maschere]![FattLista]![num])) OR (((Clienti.[Ragione
Sociale])=[Maschere]![FattLista]![cbo]));
ancora grazie

 (((Clienti.[Ragione Sociale])=[Maschere]![FattLista]![cbo]));
Non sono sicuro di capirti, ma suppongo che all'inizio vuoi
vedere tutti dati nella casella di riepilogo. Se č cosě, prova
di lasciar perdere ogni valore iniziale nelle caselle combinate
e invece usare la FAQ 3.14 che ti ho segnalato proprio per
questo scopo, cioč sostituire la stringa SQL di Query2 con
questa:
SELECT
fatture.ID, Clienti.[Ragione Sociale], fatture.datafatt, fatture.num
FROM
(Clienti INNER JOIN fatture ON Clienti.ID = fatture.IDcliente)
INNER JOIN fattcorpo ON fatture.ID = fattcorpo.IDfatt
WHERE
(Clienti.[Ragione Sociale]=[Forms]![FattLista]![cbo]
 OR [Forms]![FattLista]![cbo] Is Null)
AND
(fatture.num=[Forms]![FattLista]![num]
 OR [Forms]![FattLista]![num] Is Null)
GROUP BY
fatture.ID, Clienti.[Ragione Sociale], fatture.datafatt, fatture.num
-- 


 Access FAQ:  
http://www.donkarl.com/it
Scusami siccome non ho capito nulla dell'ultima cosa, ho ricreato una
nuova maschera con una nuova query molto molto semplice.
Ti speigo anche cosa voglio:
1) Vorrei visualizzare in una casella di riepilogo TUTTI i risultati
della query
2) Vorrei avere la possibilità di sceglierer in una casella combinata
il tipo di ricerca da fare e di poter annullare tale FILTRO cliccando
nuovamente nella casella combinata e scegliendo la voce TUTTI opp " *
"
Detto ciò ti spiego la nuova maschera e la nuova query
Nome Maschera: listafatture
Contenuto:
1) casella di riepilogo chiamata LISTA1 con il collegamento ORIGINE DI
RIGA: QUERY4
2) casella combinata chimata CBO1 con il collegamento ORIGINE DI RIGA:
SELECT Clienti.[Ragione Sociale] FROM Clienti GROUP BY Clienti.
[Ragione Sociale] ORDER BY Clienti.[Ragione Sociale];
ho inserito dentro la voce DOPO AGGIORNAMENTO il seguente codice:
Me.lista1.Requery
Nome Query: Query4
contenuto
1)
Campo - ID
Tabella - clienti
formula - raggruppamento
ordinamnto  - crescente
2)
Campo - Ragione Sociale
Tabella - clienti
formula - raggruppamento
ordinamnto  - crescente
criteri - [Maschere]![listafatture]![cbo1]
Adesso per farsi che all'interno della casella combinata posso essere
presente la voce TUTTI o * (che mi permettano di elencare tutti i dati
della tab) come posso fare?? Che codice e dove va inserito???
Attualmente nella casella combinata escono tuttè le voci presenti
nella colonna RAGIONE SOCIALE della tab CLIENTI
Spero di essere stato chiaro
GRAZIE MILLE

 Spero di essere stato chiaro
Quasi. Manca la stringa SQL dell'origine riga di "LISTA1".
Quella però sarebbe l'informazione più importante.
Come già scritto la technica per far funzionare "Tutti"
è descritto qui:
 Criterio che restituirà tutti i record
 
http://www.donkarl.com/it?FAQ3.14
-- 



Per prima cosa BUONA PASQUA
Poi utilizzando la prima espressione che mi hai consigliato,
(l'origine riga della CBO1 con:
SELECT " Tutti" FROM Clienti
UNION
SELECT [Ragione Sociale] FROM Clienti ), dinalmente mi esce la voce
TUTTI nell'eleco della casella combinata.
Il problema adesso è che quando lo seleziono non mi compare nulla
all'interno delle casella di riepilogo.
Quindi quando selezione TUTTI nella casella combinata, la casella di
riepilogo, invece di restituirmi tutti i valori contenuti nella
colonna RAGIONE SOCIALE della Tab CLIENTI, esce bianca.
Come posso fare? ho visto la faq che mi hai consigliato ma ci ho
capito ben poco...dove la devo inserire???
Ti posto la SQL della query4
SELECT Clienti.ID, Clienti.[Ragione Sociale]
FROM (Clienti INNER JOIN fatture ON Clienti.ID = fatture.IDcliente)
INNER JOIN fattcorpo ON fatture.ID = fattcorpo.IDfatt
GROUP BY Clienti.ID, Clienti.[Ragione Sociale]
HAVING (((Clienti.[Ragione Sociale])=[Maschere]![listafatture]!
[cbo1]))
ORDER BY Clienti.ID, Clienti.[Ragione Sociale];
Aspetto tue notizie GRAZIE MILLE!!!
Ancora AUGURI DI BUONA PASQUA

 ORDER BY Clienti.ID, Clienti.[Ragione Sociale];
Prova di sostituirla con:
SELECT Clienti.ID, Clienti.[Ragione Sociale]
FROM (Clienti INNER JOIN fatture ON Clienti.ID = fatture.IDcliente)
INNER JOIN fattcorpo ON fatture.ID = fattcorpo.IDfatt
WHERE
 Clienti.[Ragione Sociale]=[Forms]![listafatture]![cbo1]
 OR [Forms]![listafatture]![cbo1] = " Tutti"
GROUP BY Clienti.ID, Clienti.[Ragione Sociale]
-- 


 Access FAQ:  
http://www.donkarl.com/it
Grazie mille funziona!!!!
Volevo chiederti una cosa ma sarebbe possibile filtrare i dati di una
query in base ad una DATA di INIZIO e una DATA di FINE?
Mi spiego meglio:
Cerca/filtra   a partide dalla data 01-10-2010   (data ins in una
casella di testo)
                            fino alla data 31-12-2010   (data ins in
una casella di testo)
Grazie mille per la tua disponibilità

 fino alla data 31-12-2010   (data ins in una casella di testo)
Nella query nella colonna del campo data che vuoi filtrare
usa un criterio come (tutto in 1 riga):
Between Forms!TuaMaschera!TuaCasellaDiTestoInizio
 And Forms!TuaMaschera!TuaCasellaDiTestoFine
-- 
Ciao
Karl
*********
Access FAQ: 
www.donkarl.com/it
 


Grazie mille funziona!!!
Grazie