Newsgroup: it.comp.appl.access
Titolo: CICLO FOR NEXT E CAMPO VARIABILE PER QUERY

Buon giorno
Dati:
Ho una tabella:perc_vrd_dati_di_base
che contiene solo un recod con i seguenti campi: VRD_MIN, VRD_max, PASSO
Esempio:
VRD_MIN: 20%
VRD_MAX: 80%
PASSO: 1%
Problema: Vorrei far girare un ciclo for next da 20% a 80% ogni volta 
incrementando per 1% ( 20%, 21%, 22%.......) ed accodare ogni volta il 
calcolo ad una tabella ( ho usato query1)
______________________________________________________
CODICE
Public Function PERCENTUALE_VRD()
Dim X As Recordset, DBS As Database, Y As Variant
Set DBS = CurrentDb
Set X = DBS.OpenRecordset("SELECT perc_vrd_dati_di_base.VRD_MIN, 
perc_vrd_dati_di_base.VRD_MAX, perc_vrd_dati_di_base.PASSO FROM 
perc_vrd_dati_di_base;")
For Y = X![VRD_MIN] To X![VRD_MAX] Step X![PASSO]
PERCENTUALE_VRD = Y
DoCmd.OpenQuery ("QUERY1")
Next Y
End Function
____________________________________________________________
Note: L'SQL della query1 è: INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) 
SELECT PERCENTUALE_VRD() AS Espr1;
Il codice mi si inchioda su:DoCmd.OpenQuery ("QUERY1") in quanto credo che 
si inluppi
Come posso baypassare il problema passando all query il campo y?
Grazie
Gugge 

 ha scritto nel messaggio 
news:f04t2n$fbp$1...@carabinieri.cs.interbusiness.it...


> Note: L'SQL della query1 č: INSERT INTO appo_flussi_di_cassa ( 


  qryDef.SQL = strSQL
No, dimenticavi che si scrive correttamente DOPO il quoting!!!
Antonio

c'ho capito poco :-((
Public Function PERCENTUALE_VRD()
Dim X As Recordset, DBS As Database
Static Y As Variant
Dim qryDef As QueryDef
Set DBS = CurrentDb
Set X = DBS.OpenRecordset("SELECT perc_vrd_dati_di_base.VRD_MIN, 
perc_vrd_dati_di_base.VRD_MAX, perc_vrd_dati_di_base.PASSO FROM 
perc_vrd_dati_di_base;")
For Y = X![VRD_MIN] To X![VRD_MAX] Step X![PASSO]
 Set qryDef = CurrentDb.QueryDefs("Query1")
qtrSQL = qryDef.SQL
qryDef.SQL = strSQL
DoCmd.OpenQuery ("query1")
Next Y
End Function
l'sql di query1 è: INSERT INTO appo_flussi_di_cassa ( euro_anno1 )
SELECT [PERCENTUALE_VRD] AS Espr1;
Dove sbaglio? Devo passare y alla query all'interno del ciclo for next.
Grazie
Gugge 

c'ho capito poco :-((
Public Function PERCENTUALE_VRD()
Dim X As Recordset, DBS As Database
Static Y As Variant
Dim qryDef As QueryDef
Set DBS = CurrentDb
Set X = DBS.OpenRecordset("SELECT perc_vrd_dati_di_base.VRD_MIN,
perc_vrd_dati_di_base.VRD_MAX, perc_vrd_dati_di_base.PASSO FROM
perc_vrd_dati_di_base;")
For Y = X![VRD_MIN] To X![VRD_MAX] Step X![PASSO]
 Set qryDef = CurrentDb.QueryDefs("Query1")
qtrSQL = qryDef.SQL
qryDef.SQL = strSQL
DoCmd.OpenQuery ("query1")
Next Y
End Function


 Dimenticavo.
Sì; di scrivere la risposta in coda al messaggio precedente.
www.sitocomune.com
 Sezione ICAA - Come comportarsi in questo NG.
Ciao.
-- 
Sergio MAZZA 

 Antonio
Ahň! Famo a capisse...
Ciao.
-- 
Sergio MAZZA 

 ___________________________________
Ciao 

 Ciao
__________________________________________________________
al punto  dbs.Execute strSQL
mi da errore runtime28 sconosciuto

> SELECT PERCENTUALE_VRD() AS Perc;"
Certo?? che pirla!
strSQL = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 )
 SELECT " & PERCENTUALE_VRD() AS Perc & ";"
Per vedere se la query funziona prendi il contenuto di SQL e provalo in 
access creando una nuova query e passandogli l'SQL della variabile.
Ciao


 
tipico di certi programmi: ho trovato un errore ma non so quale :(
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\

 ha scritto nel messaggio 
news:f05605$uec$1...@aioe.org...

________________________________________________________________________________
ho messo nel codice:
strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) SELECT " & 
PERCENTUALE_VRD() AS Perc & ";"
ma lo segna in rosso ????????? non č che c'č qualche casino con le "? 

 ha scritto nel messaggio 
news:f056c8$51c$1...@fata.cs.interbusiness.it...

Scusa ma non ho dormito molto!!!!
strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) SELECT " &
 PERCENTUALE_VRD  AS Perc & ";"
Ciao 

> SELECT " & PERCENTUALE_VRD() AS Perc & ";"
?????????????????????????

 Ciao
__________________________________
Palo!
strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) SELECT " & 
PERCENTUALE_VRD  AS Perc & ";"
ad AS mi segnala  previsto fine istruzione

 ha scritto nel messaggio 
news:f058qc$aie$1...@fata.cs.interbusiness.it...

Così:
 strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) SELECT " &
 PERCENTUALE_VRD   & ";" 

ARIPALO!
_____________________________________________________________________________________________
Public Function PERCENTUALE_VRD()
Dim X As Recordset, DBS As Database, Y As Variant
 Set DBS = CurrentDb
Set X = DBS.OpenRecordset("SELECT perc_vrd_dati_di_base.VRD_MIN, 
perc_vrd_dati_di_base.VRD_MAX, perc_vrd_dati_di_base.PASSO FROM 
perc_vrd_dati_di_base;")
For Y = X![VRD_MIN] To X![VRD_MAX] Step X![PASSO]
PERCENTUALE_VRD = Y
strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 ) SELECT " & 
PERCENTUALE_VRD & ";"
DBS.Execute strsql
 Next Y
 End Function
______________________
DBS.EXECUTE STRSQL
mi dice: il numero di valori nella query non corrisponde a quello dei campi 
di destinazine
se prendo lsql e lo metto in una query mi da: Espr1: " & PERCENTUALE_VRD & " 

 ha scritto nel messaggio 
news:f05bg3$nq$1...@balena.cs.interbusiness.it...

_________________________
Quello che voglio fare č passare y come campo della query
ho provato anche
strsql = "INSERT INTO appo_flussi_di_cassa ( euro_anno1 )SELECT 
PERCENTUALE_VRD() AS Espr1;"
ma non funge
:-((((( 

 Come posso baypassare il problema passando all query il campo y?
Da un primo esame siamo in presenza
di una funzione ricorsiva.
Non comprendo se si tratta di una scelta
o di un errore di analisi.
La soluzione comunque appare semplice,
ma non posso soffermarmi poiché
la pizza si raffredda.
Saluti.
:-)