muttley005 ha scritto:
...
io dove possibile ho sempre usato SQL "al volo" cioè da vba lo costruisco e uso tramite recordset ... e ora tu mi dici che è + performante una query memorizzata???
veramente?? e la spiegazione tecnica? almeno per imparare qualcosa e darmi una ragionevole certezza
tornando al 3d si giusto l'uso di una listbox al posto della subform
Si una query compilata è più performante, ma scendiamo nello specifico...!
La scelta di gestire le Query via SQL, e con queste aprire il RS sono sicuramente l'opzione disponibile che rende flessibile la gestione...
Ora che serva passare per un RS lo trovo oggetto di riflessione se devo essere sincero... e faccio il mio esempio:
Dim sSQL As String
sSQL="SELECT ......"
DbEngine(0)(0).Querydefs("NomeQuery").SQL=sSQL
Forms!Nomeform!NomeSubForm.Form.Requery
Nessun codice aggiuntivo viene richiesto se non il requery per aggiornare la visualizzazione.
Ovviamente lo stesso risultato lo si ottiene con il recordset.... ma intanto devi mantenere l'oggetto aperto in maschera o a livello globale, poi sicuramente richiede più codice e non ultimo "a mio avviso" meno intuitivo, sottolineo "a mio avviso" in quanto è evidente che della componente soggettiva serva tenerne conto...!
Le query non hanno un costo a peso... ci sono e si usano.
Tuttavia vorrei sempre ragionare sul fatto che non esiste una soluzione che a prescindere DEVE essere sempre meglio, ma è opportuno conoscerle tutte, ed a seconda dello scenario applicare quella migliore.
In questo caso trovo inutile sia modificare la Query da codice che aprire un rs ed assegnarlo alla SubForm o ListBox... la query che hai suggerito che è corretta, non ha bisogno di modifiche, quella è e quella rimane... più comodo che averla salvata ed associata all'oggetto DataBound non credo ci sia da pensarci.