Newsgroup: it.comp.appl.access
Titolo: DLookup e recordset dinamici.

ho questo codice che da errore quando lo passo alla funzione di
aggregazione "DlookUp" dicendo che "dqrst" non viene trovato ed in
effetti io lo creo dinamicamente con: 
Set dqrst = dqdf.OpenRecordset
che si trova alla settima riga del codice
secondo voi lo riesco a passare in qualche modo? o devo passare per
forza per una creazione tabella temporanea e poi passare la tabella
temporanea al Dlookup???
ciao 
e grazie a tutti
david
Dim dqrst, Rst As Recordset
Dim dbs As Database
Dim dqdf As QueryDef
Set dqdf = dbs.QueryDefs("NumerazioneCercaLivVis")  	
dqdf.Parameters!NomeFileSenzaExt = strnomeDoc
Set dqrst = dqdf.OpenRecordset
'If IsNull(DLookup("Ufficio", "dqrst", "Ufficio='TUTTI'Or Ufficio='" &
Gr & "'")) Then
'   ControlAutoriz = 0
'End If

 ha scritto nel messaggio > ho questo

L'errore e' molto semplice.
DlookUp, che e' definita di aggregazione solo per estensione del termine
dato che non aggrga nulla, agisce su tabelle e query (come spiegato
sull'help), e non sui recordset.
Oltretutto, rispetto a quanto hai scritto, era molto piu' facile scrivere:
DLookup("Ufficio", "NumerazioneCercaLivVis", "Ufficio='TUTTI'Or Ufficio='" &
Gr & "'")
O, se proprio vuoi usare la tua variabile recordset:
DLookup("Ufficio", dqrst.Name, "Ufficio='TUTTI'Or Ufficio='" & Gr & "'"))
Ma a me sembra un pleonasmo.
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente



ma scusa se faccio come dici tu NON passo il parametro alla query.
il recordset l'ho introdotto perchč passo strnome come parametro alla
query  NumerazioneCercaLivVis con parametro NomeFileSenzaExt =
strnomeDoc. O NO? magari mi sbaglio e se č cosě, se ti va, illuminami
con la tua saggezza, essendo stata invece a me, negata alla nascita e
nel resto della mia miserrima esistenza.
david

 nel resto della mia miserrima esistenza.
Figurati, mica sono un'arca di scienza. Poi, come dice il saggio egizio,
"...nessuno e' saggio per nascita."
Comunque, una dlookup deve fare riferimento a una stringa che contenga una
istruzione SQL. non puoi passargli altri tipi di parametri se non stringhe.
Hai due strade:
1 visto che hai creato un recordset, fai un findfirst per i dati che cerchi
e accedi direttamente al campo che ti serve
2 crei dinamicamente la stringa SQL con i parametri che ti servono e la usi
nella dlookup
Sib

 istruzione SQL. non puoi passargli altri tipi di parametri se non
stringhe.
Non mi pare che una stringa SQL funzioni con le funzioni di aggregazione sui
domini, in quanto i soli domini validi sono tabelle e querydef salvate.
Mi pare...
Antonio


wrote:

infatti il mio dubbio era questo!
cmq Sib mi ha indicato una strada nella seconda mail
nomeRescordset.Name da piazzare nel Dlookup e la proverň.
grazie 
david

 Mi pare...
Hai perfettamente ragione.
Ho detto una cazzata.
Resta il fatto che non si puo' usare un oggetto recordset.
A questo punto potrebbe creare e salvare una query e poi usarla per il
dlookup.
Ma gli conviene fare un findfirst e pescare direttamente il campo.
Sib

 ha scritto nel messaggio
news:9dFp7.5876$Q25.2...@news.infostrada.it...

Sono d'accordo, visto che l'help nel definire  l'argomento dominio di una
DLookup lo definisce cosě:
Un'espressione stringa che identifica il set di record che costituisce il
dominio. Č possibile che sia un nome di tabella o di query.
Quello che si puň fare č usare per quell'argomento il nome di una variabile
stringa o di un controllo che contengano come valore il nome del dominio su
cui deve operare la DLookup.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Roberto
forse non sono stato chiaro quando ho scritto la mia prima mail su
tale argomento, io la soluzione del findfirst l'ho usata subito...e il
fatto di scrivere una istruzione sql per la creazione di tabelle (da
immettere poi in Dlookup) era una soluzione a cui avevo pensato e
infatti ho detto anche questo nella mail. il dubbio riguardava il tipo
di recordset da passare alla funzione dlookup e la risposta penso me
l'abbiate data dicendo che devo passare proprio per una query  o una
tabella ma non un recordset dinamico.
vi ringrazio tutti....
ciao
david