Newsgroup: it.comp.appl.access
Titolo: query che richiama una funzione

Come da un esempio sul sitocomune ho cercato di chiamare una funzione
per leggere o scrivere una variabile tramite una query.
IIf([tipo]="R",setrigprec([COCNrdellariga])   ok funziona per ogni
riga di tipo "R" mi memorizza COCNrdellariga
IIf([tipo]="C",getrigprec()    esegue la lettura una sola volta e poi
basta
dove sbaglio ?
QUERY:
SELECT Qry_UnioneRigheCommenti.COCTipoOrdine,
Qry_UnioneRigheCommenti.COCNrOrdine,
Qry_UnioneRigheCommenti.COCNrDellaRiga, Qry_UnioneRigheCommenti.tipo,
IIf([tipo]="C",getrigprec(),[COCnrdellariga]) AS mio,
IIf([tipo]="R",setrigprec([COCNrdellariga]),0) AS mioNO, *
FROM Qry_UnioneRigheCommenti
ORDER BY Qry_UnioneRigheCommenti.COCTipoOrdine,
Qry_UnioneRigheCommenti.COCNrOrdine,
Qry_UnioneRigheCommenti.COCNrDellaRiga;
CODICE:
Option Compare Database
Option Explicit
Public intRigPrec As Integer
Public Function setRigPrec(nRigPrec As Integer)
   intRigPrec = nRigPrec
End Function
Public Function getRigPrec() As Integer
   getRigPrec = intRigPrec
End Function
grazie Claudio

 wrote in message
news:b5ad03ce.05040...@posting.google.com

In realtà stai cercando di fare tutt'altro che quanto esposto
dall'Esempio del SC, in cui la Funzione era usata come WHERE
Conditions se non erro.
Tu vuoi avere una ciclicità della Funzione con il valore precedente
pertanto non può andare così come stai facendo.
Per fare quello che chiedi devi perforza passare un Parametro
alla Funzione getRigPrec altrimenti non verrà rieseguita.
In pratica passa pure il parametro della riga attuale, ma 
no lo usi: 
Public Function setRigPrec(nRigPrec As Integer)
    intRigPrec = nRigPrec
 End Function
 
Public Function getRigPrec(nRigPrec As Integer) As Integer
    getRigPrec = intRigPrec
End Function
Quindi la tua Query:
QUERY:
 SELECT Qry_UnioneRigheCommenti.COCTipoOrdine,
 Qry_UnioneRigheCommenti.COCNrOrdine,
 Qry_UnioneRigheCommenti.COCNrDellaRiga, Qry_UnioneRigheCommenti.tipo,
 IIf([tipo]="C",getrigprec([COCNrdellariga]),[COCnrdellariga]) AS mio,
 IIf([tipo]="R",setrigprec([COCNrdellariga]),0) AS mioNO, *
 FROM Qry_UnioneRigheCommenti
 ORDER BY Qry_UnioneRigheCommenti.COCTipoOrdine,
 Qry_UnioneRigheCommenti.COCNrOrdine,
 Qry_UnioneRigheCommenti.COCNrDellaRiga;
 
Prova così.
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:b5ad03ce.05040...@posting.google.com...

Se il tuo problema è quello in una query di far riferimento ad un campo del
record precedente, vai sul Sito Comune e nella Sezione Queries e se usi
Access 97 fai il down load della database di esempi allegato alla FAQ
intitolata "2.6 Esempi di utilizzo e creazione di queries in Access 97"
oppure, se usi una versione successiva di Acces, quello allegato alla FAQ
intitolata "2.18 Esempi di creazione ed utilizzo delle queries per Access
2000 e versioni di Access successive".
Apri il database di esempi scaricato, seleziona il Topic intitolato
"Referring to a Field in the Previous or Next Record", pigia il pulsante di
comando Show Example; ti verranno mostrati 4 esempi di ciò che ti serve: ti
consiglio di NON usare i due relizzati tramite una DLookup.
Per maggiori dettagli di come sono stati realizzati gli esempi vai al link:
http://support.microsoft.com/default.aspx?id=101081
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

grazie per le risposte.
Ho risolto utilizzando il suggerimento di Alex
Claudio