Newsgroup: it.comp.appl.access
Titolo: passaggio parametri


Prova con:
Dim oApp As Access.Application
Set oApp = CreateObject("Access.Application")
oApp.OpenCurrentDatabase ("c:\documenti\TUO.mdb")
oApp.DoCmd.OpenReport "nomereport", acViewPreview, nomeQuery,
condizioneWhere
Ciao.

Ciao Sergio, prima di tutto grazie per avermi risposto...
Io uso già il passaggio di parametri inteso come selezione dei record da
estrarre ed utilizzo la condizione where. Ma in questo caso vorrei passare
al mio report una stringa di testo che può essere il titolo oppure anche un
numero da inserire ad esempio in una label presente nell'intestazione di
pagina del report.
Grazie

Ciao Sergio...ti ringrazio nuovamente...
io mio problema è che non voglio aprire il report di modifica perchè i miei
utenti potrebbero toccare qualcosa ed inoltre non vorrei che rallentasse
troppo il tutto.
Da vb ho dovuto già togliere la routine per ricollegare le tabelle del
database dei report e impiega ancora molto tempo per aprirlo.
Il pezzo di codice più lungo è proprio quello dell'apertura in preview.....
grazie in ogni caso

 ha scritto nel messaggio
news:rj515.165780$VM3.1...@news.infostrada.it...

Scusami per la risposta affrettata; anch'io tempo fa ho cercato una
soluzione al problema che hai ora tu e l'unica (per me) accettabile è stata
questa:
Dim oApp As Access.Application
Set oApp = CreateObject("Access.Application")
oApp.OpenCurrentDatabase ("c:\documenti\Tuo.mdb")
DoCmd.Echo False
oApp.DoCmd.OpenReport "prova", acViewDesign
oApp.Reports("prova").Controls("titolo").Caption = "TITOLONE"
oApp.DoCmd.Close acReport, "prova", acSaveYes
DoCmd.Echo True
oApp.DoCmd.OpenReport "prova", acViewPreview
Praticamente: tolgo l'eco, apro il report in modalità struttura e modifico
qualsiasi proprietà, lo chiudo e lo salvo, attivo l'eco e lo visualizzo in
anteprima...
Ciao.

 ha scritto nel messaggio
news:OI515.165938$VM3.1...@news.infostrada.it...

Altra soluzione potrebbe essere quella di crearsi una tabella con i dati
necessari e associare i controlli ai dati...
Buon lavoro.

 grazie in ogni caso
L'Mdb accetta degli argomenti se aperto da riga di comando;
cioe'
c:\documenti\TUO.mdb /cmd quellochetipare
Da codice per conoscere l'argomento passato, ti basta richiamare la funzione
'Command'
Allora forse potresti provare con qualcosa del tipo:
oApp.OpenCurrentDatabase ("c:\documenti\TUO.mdb /cmd titolo;label1;label2")
poi all'apertura del report controlli cosa restituisce Command, lo parsi e con
i parametri ci fai quello che vuoi
strCmd = Command
strTitolo = f_parse(strCmd,1)
strLabel1 = f_parse(strCmd,2)
...
Ripeto, non so se funziona, prova e facci sapere.
la funzione (f_parse) te la crei secondo le tue esigenze.
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

 'Command'
Lascia perdere, non funziona!
Potresti creare una form di servizio (frmHide) nel db contenente il report.
Ci metti dei controlli testo (txtTitolo, txtLabel1, ...)
sull'apertura del report imposti il titolo e' le label a l valore contenuto
nella form nascosta:
Me.Caption = Forms![frmHide]![txtTitolo].Text
Me.Label1 = Forms![frmHide]![txtLabel1].Text
da VB devi solo modificare il codice come segue:
...
oApp.OpenCurrentDatabase ("c:\documenti\Tuo.mdb")
'apre la form nascosta
oApp.DoCmd.OpenForm "frmHide", , , , , acHidden
'imposta i parametri
oApp.Forms![frmHide]![txtTitolo] = "questo e' il titolo"
oApp.Forms![frmHide]![txtLabel1] = "questa e' la label 1"
'apre il report
oApp.DoCmd.OpenReport "rptSommeParziali", acViewPreview
...
so che e' bruttino, ma se funziona.
Altra alternativa, usi le proprieta' personalizzabili del database...


Ciao Federico, cosa intendi per proprietą personalizzabili del database??
Grazie Giulia

DoCmd.Echo True
oApp.DoCmd.Echo True
Ti ringrazio ancora molto..............

 Grazie Giulia
Premetto che non sono molto ferrato sull'argomento (le uso pochissimo).
L'oggetto database possiede alcune proprieta' che contengono informazioni sul
database (menu File-Proprieta' database)
Oltre a quelle definite (SummaryInfo) e' possibile crearne altre (UserDefined)
da utilizzare come meglio si crede.
Per come gestirle, cerca nell'help:
'proprietą dei documenti personalizzati' o 'Proprieta di database'
nel tuo caso potresti, ad esempio, creare una proprieta' per il titolo del
report, all'apertura del report leggi il valore della proprieta' e lo passi
alla caption del report stesso o ad una label nel report.
da VB, prima di aprire il report, modifichi il valore della proprieta' del db e
poi apri il report.
Prova a dare un'occhiata all'help, IMHO dovrebbe funzionare.
Riscrivi pure se hai dei dubbi.
