Newsgroup: it.comp.appl.access
Titolo: Creare un report da una maschera.

E' possibile creare un report usando esclusivamente i record che sono
presenti in una maschera?
Mi spiego meglio:
Ho una tabella tblDati, sulla quale effettuare ricerche molto complesse.
Invece di creare una query statica, viene creata una stringa SQL
dinamicamente (quindi usando il VBA) a partire da informazioni contenute in
un apposita maschera di ricerca, che chiamiamo frmRicerca.
Infine sempre da VBA viene aperta la maschera frmRisultati, usando il metodo
DoCmd.OpenForm e passandogli la complessa stringa SQL come condizioneWhere.
A questo punto la maschera frmRisultati contiene dati provenienti da tblDati
selezionati in base alle opzioni selezionate ed ai campi riempiti nella
maschera frmRicerca.
Il problema è che voglio generare un report contenente tutti i record
presenti nella maschera frmRisultati, e solo quelli...
Nota: è improduttivo usare DoCmd.OpenReport passandogli la stessa stringa
SQL usata per frmRisultati, in quanto il DB è enorme, il PC è lento e per un
selezionare i record desiderati occorrono 15-20 minuti.... quindi per creare
un report occorrerebbero ulteriori 15-20 minuti.
Nota2: non posso sbattere i dati selezionati su una tabella temporanea ed
usarla sia per visualizzare la maschera che il report, in modo da filtrare i
dati una sola volta. Ci ho provato, ma ho incontrato diverse difficoltà in
quanto su tali dati bisogna effettuare delle operazioni che non si possono
eseguire su recordset di tipo tabella.
Spero qualcuno sappia risolvere questo problema.
Cortesemente, se potete spedire le eventuali risposte anche alla mia
e-mail... ho problemi a consultare il NewsGroup.
Grazie 1000, Giuliantonio.


Quanto alla Nota1, una volta creata la stringa Where, se devi risparmiare
"15-20 minuti", risparmia quelli per visualizzare i dati nella maschera non
aprendola: adopera la stringa solamente per filtrare il report.
La Nota2 non l'ho capita: quali sarebbero i valori che puoi visualizzare nei
controlli di una maschera ma che non puoi registrare nei campi di una
tabella temporanea?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Non si tratta di ' valori ', infatti ho usato il termine ' operazioni '.
Adesso non ho il programma sottomano, e quindi non potrò essere molto
preciso, tuttavia il problema della tabella temporanea era che le modifiche
e cancellazioni di record effettuate dall'interno della maschera NON
incidevano sulla tabella tblDati come avrei voluto io, ma sulla tabella
Temporanea (la cosa mi sembra ovvia, essendo adesso quest'ultima tabella
l'origine dei dati della maschera). Solo con un lavoro poco elegante da
'rattoppino' (nda Colui che mette toppe dappertutto senza risolvere i
problemi alla base) riuscii a far riflettere nella tblDati le mofiche
effettuate nella tabella temporanea.
Tuttavia il progetto era complicato dalla presenza di sottomaschere e non
tutto funzionava perfettamente. Per farla breve decisi di utilizzare una
soluzione più pulita, senza ricorrere alla tabella temporanea, confidando
nel fatto che avrei trovato una rapida soluzione per traferire i record
presenti dalla maschera ad un report, evitando in tal modo il 'doppio
filtraggio del DB' e senza utilizzare la tabella temporanea.
Fatti i conti senza l'oste modificai tutto il progetto, ma quando arrivai a
creare il report (il mio primo report) mi accorsi che tra le varie origini
dati c'erano le tabelle, le query ed altro... ma non le maschere.
Da qui è nato il quesito rivolto al popolo di internet :


 > >
CUT
Prova a prendere il RecordSetClone e a popolare una tabella che poi userai
come origine del report
Ciao Nicola
--
email:sostituire inwind a NOSPAM