Newsgroup: it.comp.appl.access
Titolo: Problema su query parametrica con selezione multipla

Buongiorno NG!
Nel mio solito adp su msde ho una maschera con 2 combo (seleziono mese e 
anno) e una casella di riepilogo x selezione multipla (tutto come da faq 
4.11 del Sito Comune) che filtra in base ai gruppi di articoli:
strCriteri = "[CodiceGruppo] IN (" & strLista & ")"
I Codici gruppi sono nvarchar(6) con valori del tipo 80.001, quindi 
costruisco la stringa così:
strLista = strLista & "'" & Me!Elenco.Column(0, varItem) & "'" & ","
Il problema è che i dati che mi ritrovo nel report non vengono filtrati, la 
query mi torna tutti i record senza tener conto della selezione multipla 
effettuata sul Codice Gruppo.
Non credo che il problema stia nel codice sul bottone ma nella stored 
procedure che uso come origine del report che apro (se metto come origine 
del report che apro una vista banale funziona) che è la seguente:
ALTER PROCEDURE spCalcolaTotali
(
@anno int,
@mese int
)
AS
SET NOCOUNT ON
SELECT DISTINCT C.Codice, C.Descrizione, T.C_Mandante, G.Codice as 
CodiceGruppo,
(SELECT SUM(QT)
FROM tblOrdini_C sc INNER JOIN tblOrdini_T st ON sc.Id_Doc = st.Id_Record
WHERE MONTH(st.Data_Doc) = @mese AND YEAR(st.Data_Doc) = @anno AND sc.Id_Doc 
= C.Id_Doc AND sc.QT > 0 AND sc.QT IS NOT NULL) AS QT1,
(SELECT SUM(QT)
FROM tblOrdini_C sc INNER JOIN tblOrdini_T st ON sc.Id_Doc = st.Id_Record
WHERE MONTH(st.Data_Doc) <= @mese AND YEAR(st.Data_Doc) = @anno AND 
sc.Id_Doc = C.Id_Doc AND sc.QT > 0 AND sc.QT IS NOT NULL) AS QT2,
(SELECT SUM(QT)
FROM tblOrdini_C sc INNER JOIN tblOrdini_T st ON sc.Id_Doc = st.Id_Record
WHERE MONTH(st.Data_Doc) = @mese AND YEAR(st.Data_Doc) = @anno - 1 AND 
sc.Id_Doc = C.Id_Doc AND sc.QT > 0 AND sc.QT IS NOT NULL) AS QT3,
(SELECT SUM(QT)
FROM tblOrdini_C sc INNER JOIN tblOrdini_T st ON sc.Id_Doc = st.Id_Record
WHERE MONTH(st.Data_Doc) <= @mese AND YEAR(st.Data_Doc) = @anno - 1 AND 
sc.Id_Doc = C.Id_Doc AND sc.QT > 0 AND sc.QT IS NOT NULL) AS QT4
INTO #tmp_spCalcolaQuantita
FROM dbo.tblOrdini_C C INNER JOIN dbo.tblOrdini_T T ON C.Id_Doc = 
T.Id_Record INNER JOIN dbo.tblProdotti P ON C.Codice = P.Codice INNER JOIN 
dbo.tblMAG_Gruppi G ON P.GRP = G.Codice
SELECT C_Mandante, Codice, Descrizione, CodiceGruppo, sum(IsNull(QT1, 0)) as 
qt1, sum(IsNull(QT2, 0)) as qt2, sum(IsNull(QT3, 0)) as qt3, sum(IsNull(QT4, 
0)) as qt4 FROM #tmp_spCalcolaQuantita
WHERE QT1 IS NOT NULL OR QT2 IS NOT NULL OR QT3 IS NOT NULL OR QT4 IS NOT 
NULL
group by C_Mandante, Codice, Descrizione, CodiceGruppo
order by codice
DROP TABLE #tmp_spCalcolaQuantita
Ho provato a commentare via la drop table ma non cambia nulla, ho provato 
anche a passargli strLista (che è una stringa del tipo 
'01.000','01.001','01.002') come openargs e ad aggiungere sull'apertura del 
report
If Not IsNull(Me.OpenArgs) Then
Me.ServerFilter = "CodiceGruppo in (" & Me.OpenArgs & ")"
ma non cambia nulla.
Ho anche provato a modificare la stored procedure passando la lista dei 
gruppi come parametro (tipo WHERE RegionDescription IN (@filtro)) ma sembra 
che se metto più di un parametro non gli piaccia.
Come posso fare per filtrare sulla base di mese, anno e una selezione 
multipla di gruppi di articoli?
Qualunque indicazione sarà molto apprezzata! :o)
Manuela 

 effettuata sul Codice Gruppo.
...


Manuela,
fai la brava... dicci anche come l'hai risolto!!
-- 
Cinzia
---------------------------------------
|  
http://www.riolab.org
  |
--------------------------------------->

 ha scritto nel messaggio 
news:444536dc$0$29107$5fc...@news.tiscali.it...
