Newsgroup: it.comp.appl.access
Titolo: Filtrare un report con OpenReport: NON riesco!

Ciao a tutti,
premetto che ho cercato nei 3 miliardi di post relativi alla
possibilità di filtrare un report in apertura, usando la condizione
WHERE dell'OpenReport.
Ho fatto anche un visibilio di prove, ma evidentemente ho sempre
sbagliato qualcosa.
Uso Access 97. Ho una tabella (ReportTecnici) nella quale sono
registrate le riparazioni.
Ho creato una query (DaRiparare_Q) che prende alcuni campi da
ReportTecnici: tale query non ha filtri.
Questo è il suo codice SQL:
SELECT ReportTecnici.Cod, ReportTecnici.Data, ReportTecnici.SN_CLI,
ReportTecnici.Garanzia, ReportTecnici.ICL,
ReportTecnici.GuastoSegnalato, ReportTecnici.Cliente,
ReportTecnici.RMA, ReportTecnici.VsBolla, ReportTecnici.Spedito,
ReportTecnici.DataRegistrazione, ReportTecnici.IDReportTecnico
FROM ReportTecnici;
ho poi creato un report basato su  di essa. (DaRiparare_R)
In una maschera ho alcune caselle di testo nelle quali posso
specificare o meno l'inizio della Ragione sociale, del prodotto o
l'RMA, e posso anche dire se voglio vedere le rip. in Garanzia, fuori
garanzia o tutte.
quando lancio il report, ho usato  inizialmente una stringa come
condizione where dell'Openreport, così:
strSQL = "" '"WHERE (((DaRiparare_Q.Cod) Like
[Forms]![ElencoRiparazioni]![txtProdotto] & '*') AND
((DaRiparare_Q.Cliente) Like
[Forms]![ElencoRiparazioni]![TxtRicercaCLI] & '*') AND
((DaRiparare_Q.RMA) Like [Forms]![ElencoRiparazioni]![TxtRMA] & '*'))
ORDER BY DaRiparare_Q.Cod, DaRiparare_Q.Data;"
poi ho tolto le parentesi tonde, quindi ho tolto il "WHERE", ho
insrito le [], poi mi sono reso conto che dovevo mettere tra apici
alcune voci e l'ho fatto, ottenendo:
strSQL = "WHERE [DaRiparare_Q].[Cod] Like '" &
[Forms]![ElencoRiparazioni]![txtProdotto] & "' *' AND
[DaRiparare_Q].[Garanzia]=False AND [DaRiparare_Q].[[Cliente] Like '"
& [Forms]![ElencoRiparazioni]![TxtRicercaCLI] & "' * AND
DaRiparare_Q].[RMA] Like '" & [Forms]![ElencoRiparazioni]![txtRMA] &
"' * ORDER BY [DaRiparare_Q].[Cod], [DaRiparare_Q].[Data];"
Ho sempre ottenuto sia gli elementi in GAranzia che fuori.
Ho allora semplificato la cosa, inserendo come filtro solo il campo
Garanzia, provando a metterlo tra parentesi tonde, quadre, senza il
nome della query.
strSQL = "[Garanzia] = False;" 'strSQL = "[DaRiparare_Q].[Garanzia] =
False;"
DoCmd.OpenReport "DaRiparare_R", acPreview, strSQL
Niente. non è cambiato niente.
Io non capisco cosa devo fare affinché il report venga aperto come
voglio io:
Devo inoltre avere la possibilità di ordinare il report per CLiente,
Prodotto, RMA oppure data. posso inserire ORDER BY nell'OpenRecordset
o devo creare tante query e report quanti sono gli ordinamenti (il che
mi parrebbe strano)?
Cosa sto sbagliando? Non riesco a capire la sciocchezza che sto
commettendo, e spero che qualcuno possa aiutarmi: io ce l'ho messa
tutta per evitare di rompere le scatole.. :) (e negli ultimi giorni ho
cominciato a frequentare di più il ng x vedere se posso dare una mano
a qualcun altro, magari)
Grazie 1000
Alessio Albano


gurdati bene l'help cosi' come la hai messa manca una virgola
DoCmd.OpenReport "DaRiparare_R", acPreview, ,strSQL
--
a.cara 
Togli qualcosa dall'email

 DoCmd.OpenReport "DaRiparare_R", acPreview, ,strSQL
Hai perfettamente ragione, me ne sono accorto poco dopo, e mi sono
mangiato le mani...volevo riscrivere un altro mex x evitare di far
perdere tempo a chicchessia ma telecom ha avuto dei problemi fino a
poco fa...
Grazie comunque
Alessio