Newsgroup: it.comp.appl.access
Titolo: Filtro Troppo Lungo

Ciao a tutti,
sono nuovo del newsgroup.
Ho questo problema : utilizzo vb6 e tramite esso lancio dei report di un 
database Access.
Ho la necessità di applicare un filtro ad un report, ma a volte può acadere 
che questo filtro
superi i 255 caratteri ed Access non me lo permette.
Per aprire il report utilizzo :
DoCmd.OpenReport ReportName:=pReport, View:=acPreview, 
WhereCondition:=Filtro
Leggendo la guida ho trovato questa nota che non mi è chiara :
Nota  La lunghezza massima dell'argomento Condizione WHERE è di 255 
caratteri. Se si rende necessario immettere una proposizione SQL WHERE più 
complessa e più lunga, utilizzare invece il metodo OpenReport dell'oggetto 
DoCmd in Microsoft Visual Basic. È possibile immettere istruzioni con 
proposizioni SQL WHERE contenenti fino a 32.768 caratteri in Visual Basic.
Cioè come dovrei fare per impostare un filtro fino a 32.768 caratteri ?
Grazie in anticipo a quanti mi risponderanno.

"MosBet" <mos...@TOGLILOSPAMmosbet.com> wrote in message 
news:4440d74c$0$29733$4faf...@reader2.news.tin.it...

Hai impostato male la stringa Filtro.
Filtro = "[NomeCampoReport] ='" & "Stringa lunga un kilometro..." & "'"
Occhio che '" = '  "   mentre   "'" = " ' "
Sempre che nella Stringa lunga un kilometro... non vi siano (  '  ).
Ciao
Bruno

Ma quanti parametri devi passare....?
Sinceramente dubito che il problema stia li, ma non ti conviene
modificare la Query SQL su vui basare il Report...?
Accedi alla collection QueryDefs("NomeQuery").SQL="Tutto quello che ti
serve"
Poi apri il report...!
@Alex

 ha scritto nel messaggio 
news:1145118336.3...@t31g2000cwb.googlegroups.com...

Il problema invece è proprio sulla lunghezza del filtro....
Nel mio programma eseguo delle ricerche ed avendo dei risultati
mostrati a video avevo pensato di passare solo degli id al report
con il filtro del tipo NomeCampoID IN (ID1,ID2,ID3......)
Se ho pochi risultati tutto ok, con molti (il filtro > 256 char) da 
errore.....
Il report è basato su una query del db un po' complessa e mi sembrava
più facile questa via, piuttosto che passare tutta la sql alla query (anche 
se così
risolvo sicuramente)
Se c'è la possibilità di utilizzare il filtro a 32000 caratteri continuo per 
questa via,
altrimenti provo con un'altra soluzione.
Grazie.

 ha scritto nel messaggio 
news:4441113c$0$18288$4faf...@reader1.news.tin.it...

Bah, il filtro sembra corretto anche perchè se tutta la variabile è < 256 
caratteri
tutto funziona.....
Il filtro è del tipo
NomeCampoID IN (ID1, ID2, ID3, .....) con gli id numerici
non ho utilizzato le [ ] , ma non credo sia quello il problema avendo tutti 
i nomi
dei campi del db senza spazi e che non si chiamano con parole chiave.
Ho scelto questa soluzione perchè mi restava più pratica da vb6, senza 
andare
a modificare la stringa sql della query su cui si basa il report.
Non ho capito come fare per utilizzare il filtro con 32000 caratteri, come 
scritto
nella nota......
Boh ?!

 Boh ?!
NomeFiltro     Elemento Variant facoltativo. Espressione stringa che 
rappresenta il nome valido di una query nel database corrente.
intendi questo?
Credo che tu abbia ragione, se non ricordo male anch'io mi sono trovato 
con lo stesso problema, sempre a causa della "IN"
--
ac

 ha scritto nel messaggio 
news:KKb0g.16783$QM3....@tornado.fastwebnet.it...

Nella guida ho trovato questo :
Nota :  La lunghezza massima dell'argomento Condizione WHERE č di 255
caratteri. Se si rende necessario immettere una proposizione SQL WHERE piů
complessa e piů lunga, utilizzare invece il metodo OpenReport dell'oggetto
DoCmd in Microsoft Visual Basic. Č possibile immettere istruzioni con
proposizioni SQL WHERE contenenti fino a 32.768 caratteri in Visual Basic.
Sembrerebbe che si potrebbe utilizzare il filtro fino a 32000 car, ma
non ho capito come.....
Ne sai niente ?

MosBet wrote:
Il tuo post lo avevo letto. Ma tu non la dici tutta.
queste sono le osservazioni alla "OpenReport" (dall'help di access)
Osservazioni
Per ulteriori informazioni sul funzionamento dell'azione e dei relativi 
argomenti, vedere l'argomento della Guida in linea relativo all'azione.
L'argomento CondizioneWHERE può avere una lunghezza massima di 32.768 
caratteri, a differenza dell'argomento dell'azione Condizione WHERE 
nella finestra della macro che può avere una lunghezza massima di 256 
caratteri.
È possibile omettere un argomento facoltativo all'interno della 
sintassi, ma è necessario includere la virgola dell'argomento. Se si 
omettono uno o più argomenti finali, non utilizzare la virgola dopo 
l'ultimo argomento specificato.
Stai usando le macro? Mi sembra di no
--
ac


Ciao MosBet,
255 caratteri sono proprio pochini :-)
Nella guida di Access viene riportato che la WhereCondition del metodo
OpenReport supporta 32.768.
Peccato che la cosa è smentita da questa Kb
----
ACC2000: Error Using More Than 2000 Characters in Wherecondition of
OpenReport
http://support.microsoft.com/kb/207615/en-us
----
Con le versioni di Access 2000,2002 e 2003 si riesce a passare un filtro di
circa 2000 caratteri.
Tu che versione stai usando ?
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel 
messaggio news:44415816$0$29108$5fc...@news.tiscali.it...

Eccolo l'inghippo !!!!
Io sto usando la versione 2003, ma, non avevo testato lunghezze comprese
tra 256 e 2000 caratteri, pensavo che il problema fosse la dimensione 
maggiore
di 256.
In effetti il problema sorge solamente con stringhe superiori a 2000.
Bella cosa........proprio.....

 ha scritto nel messaggio 
news:bgc0g.16813$QM3....@tornado.fastwebnet.it...

Il problema non dovrebbe infatti insorgere avendo a disposizione 32.768
caratteri, ma c'è un buco di Access : vedi post di risposta inviatomi da
Giorgio Rancati.
Grazie comunque.