Newsgroup: it.comp.appl.access
Titolo: Da codice vba dentro un report, come recuperare l'informazione 'where' fornita durante l'avvio di quel report ?

Per avviare un report uso il seguente codice:
DoCmd.OpenReport  nome_report, , , "ID_ARTICOLO=12345"
Pensavo che dentro al report il valore fornito "ID_ARTICOLO=12345" fosse 
recuperabile leggendo la proprieta' Filter del recordset corrente ma non e' 
cosi',  la Me.Filter mi restituisce una stringa vuota
Come posso fare per recuperare, da codice vba dentro il report, la stringa 
WhereCondition passata durante l'avvio del report stesso?
Ciao e grazie
RobertoA

 WhereCondition passata durante l'avvio del report stesso?
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 RobertoA
-- 
Ciao
Geppo

 la stringa vuota?
Sul report, evento Report_Open ci metto un Debug.print Me.Filter e non mi 
stampa niente
Ora pero' mi sono accorto che usando un altro evento ad esempio il 
SezionePičDiPaginaPagina_Format  mi visualizza correttamente la stringa di 
selezione come passata sull' OpenReport
E quindi la prossima curiosita' e':
- come mai il valore di  Me.Filter non e' disponibile sull'evento 
Report_Open?
Ciao e grazie
RobertoA

 ha scritto nel messaggio 
news:495ba0f2$1...@newsgate.x-privat.org...

Con la versione 2003 il metodo OpenReport ha il parametro OpenArgs...
Ciao.
-- 
Sergio MAZZA 

 wrote in message 
news:495ce345$0$11370$5fc...@news.tiscali.it...

Già, e che altro se no?
DoCmd.OpenReport i.Name, acViewDesign, , "WhereCndx", , "OpenArgs"
Sul report aperto lo leggi con
MsgBox OpenArgs
Bruno 

 MsgBox OpenArgs
Si, lo so che c'e' anche l'OpenArgs
Volevo tenermelo per l'ordinamento del recordset da stampare
Comunque il problema sembra essere l'evento nel quale viene eseguita la 
lettura del  Me.Filter
Se lo leggi sull'evento OpenReport il Me.Filter e ' vuoto
Se lo leggi su altri eventi allora contiene effettivamente la stringa 
passata al comando di apertura del report
Ciao
RobertoA

 RobertoA
Quindi saprai anche che puoi passargli piů di un "valore" nella stringa:
es.
DoCmd.OpenReport i.Name, acViewDesign, , "WhereCndx", , 
"OpenArgs1,OpenArgs2,OpenArgs3"
...
Dim argsArray() As String
argsArray=Split(Me.OpenArgs,",")
MsgBox argsArray(0) '<-- filtro
MsgBox argsArray(1) '<-- messaggio informativo
MsgBox argsArray(2) '<-- auguri di buon anno
...
Praticamente puoi indicare nella stringa una serie di testi intervallati da 
un carattere che ti permette di ritrovarli (e separarli) con la la funzione 
Split (vedi help)...
Ciao.
-- 
Sergio MAZZA 

 wrote in message 
news:495dc735$1...@newsgate.x-privat.org...

Il caricamento dell'oggetto con tutti gli annessi e connessi
asi completa con OnLoad piuttosto che onOpen.
E dall'evento OnLoad non dovresti aver difficoltà a legger
sia la proprietà Filter sia il parametro OpenArgs.
Altra soluzione più generale - dovesse la Where Condx servirti
per più Report o Form - è quella di definire Public a livello di Module
un stringa (tipo FilterString). La quale stringa è così utilizzare da tutti
in qualsiasi circostanza.
Bruno
Bruno 


Leggilo su Format la 1° volta che ci passa... e basta...!
Metti una variabile Boolen a livello di Report e dopo averla letta la
setti a 1 in modo da non rileggerlo.
In ogni caso il Parametro OpenArgs lo puoi usare come Array come ti ha
detto Sergio.
@Alex

 "OpenArgs1,OpenArgs2,OpenArgs3"
Si lo so...
...adesso lo so
Non avevo pensato di passargli un'arrary di stringhe, mi sembra la scelta 
piu' efficace
Ciao e grazie
RobertoA