Newsgroup: it.comp.appl.access
Titolo: recordset su query parametrica e join esterno

Buongiorno a tutti,
Mi rivolgo a voi perchè ho straletto tantissimi dei vostri post
sull'argomento, e, nonostane la specificità di alcuni problemi
trattati, non è che io abbia capito molto (un po' per ignoranza mia,
credo, un po' anche perchè il mio problema è leggermente diverso)
Allora, situazione:
Ho una query contenente una tabella (CODCOSMZZ) in join esterno con
un'altra query (MZZLAV_LAST02). Il campo con cui il join è creato si
chiama per tutt'e due gli oggetti allo stesso modo, ovvero
"CDCMZZCOS". Il join è fatto in questa maniera: "Includi tutti i
record di 'MZZLAV_LAST02' e e solo i record di 'CODCOSMZZ' in cui i
campi collegati sono uguali".
La tabella e la query contengono i seguenti campi
Tabella: CODCOSMZZ:
CDCMZZCOS (Testo) - campo con cui si crea il join
DSCMZZCOS (Testo)
Query MZZLAV_LAST02
TRGMZZ (Testo)
CDCMZZCOS (Testo) - campo con cui si crea il join
KMINIZ (precisione doppia)
MAXKM (precisione doppia)
Specifico che la query MZZLAV_LAST02 è ottenuta tramite altre query a
loro volta a join esterno (senza specifica di parametri)
Quello che dovrei ottenere è, tramite codice VBA, leggere questa query
utlima (che si chiama MZZLAV_LAST03) come se fosse un recordset di
dati; ciò a dire, prendendo per assurdo che fosse possibile:
dim dbs as database, rs as recordset
set dbs = currentdb
set rs = dbs.OpenRecordset("MZZLAV_LAST03")
....
oppure leggere e usare i diversi valori a seconda
come
set rs = dbs.OpenRecordset("SELECT * FROM MZZLAV_LAST03 WHERE KMINIZ <
10000")
e via discorrendo ...
So già che vanno specificati i fantomatici parametri, ma in realtà, a
parte specificarli con il menu query, all'interno della query stessa,
alla voce "Parametri" (in cui viene chiesto solo di specificare il
TIPO di campo), a me servono *TUTTI* i record della query (non sto a
specificare a che sennò famo notte !), non ultimo, anzi
importantissimo per creare un ciclo, anche QUANTI sono ! (recordcount)
Quando ci provo,anche specificando i parametri della query mi dà
l'errore classico "3061 - Parametri insufficienti, previsto 1" ,
2,3,5,6,7 etc etc ....
Insomma, c'è qualcuno che sa dirmi perchè tutto questo non va ?
Grazie anticipatamente

Grazie anticipatamente
Prego.
-- 
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------


Sì, avevo già letto questo stralcio del sitocomune, ma la mia
problematica, se hai letto è leggermente differente dalla soluzione
che si propone lì: il fatto è che me servono TUTTI i record della
query (e ricordo che la query è generata da una tabella e da una query
- a sua volta generata da altre query - che tra di loro hanno un join
"uno a molti" tramite il campo "CDCMZZCOS")
Questo è l'esempio del sitocomune:
Dim dbs As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim rst as DAO.Recordset
   Set dbs = CurrentDB
   Set qdf = dbs.QueryDefs("qryCompleanni")
   qdf.Parameters![Mese:] = "Marzo"
   qdf.Parameters![Sesso:] = "F"
   Set rst = qdf.OpenRecordset
Ma in questo caso, come si fa a dire a VBA di considerare TUTTI i
parametri ? Cioè, se avessi bisogno di tutti i mesi e non solo di
"marzo" ? E così, se avessi bisogno di tutti i sessi e non dolo di
"F" ?
Arigrazie anticipatamente
(P.S.: Scusa Roberto se ti ho scritto in privato, ma non me ne ero
minimamente accorto !)

minimamente accorto !)
No problem


Roberto dal portatile ha scritto:

Ok, fino a qui ci sono arrivato .... adesso però, rpescindendo da
quali e quanti parametri devo specificare ....
come faccio a fargli fare le cose normali che farei fare a un
recordset ? Ciò a dire, ad esempio io uso spessimo cifli for ... Next
che vanno da 1 al totale dei record del recordset: in caso di
recordset (normale) uso la funzione recordcount .... e in questo
caso ?
Ariarigrazie arianticipatamente !

Duncan ha scritto:

Ok, scusate la scemenza .....mi rispondo da solo senza troppo disturbo
(non si può pensare che un querydef sia assimilabile a un
recordset) .....
come direbbe il mitico sitocomune
Set rst = qdf.OpenRecordset
dove nelle dichiarazione "rst" è un recordset ...
da là è una passeggiata !
Grazie ancora !