Newsgroup: it.comp.appl.access
Titolo: passare una variabile Form ad una sub

Vorrei passare ad una sub che si trova in un modulo, una variabile che 
contiene una Form.
 
Nella sub ho messo:
Public Sub vd_InsSettore(vScheda As Form)
 
a questo punto se gli passo direttamente il nome della Form:
Call Md_Video.vd_InsSettore(Form_S_Video_Ins)
funziona tutto correttamente
 
Il problema è che io devo passargliela come variabile, cioè cambia a 
seconda della scheda da cui la lancio
 
ho provato a settare una variabile globale, sia come String, Form o 
Variant, niente da fare questo metodo non funziona :-( :
Md_Video.gScheda = Form_S_Video_Ins
Call Md_Video.vd_InsSettore(Md_Video.gScheda)
 
spero di essere stato comprensivo nella spiegazione del problema
 
Avete un suggerimento da darmi?
grazie
marco


 
trovato l'errore, dovevo fare questo:
Set Md_Video.gScheda = Form_S_Video_Ins
Call Md_Video.vd_InsSettore(Md_Video.gScheda)
 


Non si capisce perche' non fai direttamente
Md_Video.vd_InsSettore Form_S_Video_Ins
o anche, immagino
Md_Video.vd_InsSettore Me
 
? ma vd_inssettore e' il metodo di una classe?
? Md_Video.gScheda e' proprieta' della classe?
-- 
 
ac (x=y-1)
 
 

Il 22/06/12 10:58, Alessandro Cara ha scritto:

Md_Video.gScheda è una variabile globale in cui metto il nome della 
scheda, che può essere diverso a seconda da dove lancio la call

Il 22/06/12 10:58, Alessandro Cara ha scritto:

Md_Video.vd_InsSettore è una sub in un modulo che si chiama Md_Video


Uhmmmm...... a quanto mi pare di capire in Md_Video.gScheda metti il 
puntamento ad un form. Un form ha comunque al suo interno una proprieta' 
"Name" che ti consente, se ne hai necessita', di capire che roba e'. 
Mettere in una variabile globale il puntamento al form e poi chiamare la 
funzione/sub con quel puntamento equivale a passare direttamente il form 
i.e.: call quellochee(Form_S_Video_ins).
Non amo particolarmente le variabili pubbliche e ne faccio un uso molto 
contenuto.
Capirei il tutto se fosse cosi':
Set Md_Video.gScheda = Form_S_Video_Ins
Call Md_Video.vd_InsSettore
 
con la chiamata senza parametro perche' sai che hai messo il form nella 
variabile x.gScheda e da li lo puoi recuperare.
Se passi il form attraverso la call a che ti serve gScheda?
 
 
Naturalmente quello che hai fatto funziona comunque ;-{)
ma se fossi un tuo docente di informatica te lo segnerei rosso/blu.
 
Questo invece (e' l'es. precedente)
Set Md_Video.gScheda = Form_S_Video_Ins
Call Md_Video.vd_InsSettore
 
a meno che qualcuno non ti minacci di fucilazione dovrebbe essere evitato.
 
-- 
 
ac (x=y-1)
 
 

 Call Md_Video.vd_InsSettore
 
alla fine è diventato così:
Set Md_Video.gScheda = Form_S_Video_Ins
Md_Video.gCampo = 
Me.vidaSettore.Name
 
Call Md_Video.vd_InsSettore
 
mentre nella sub così:
Public Sub vd_InsSettore()
[cut]
If Not IsNull(Md_Video.gScheda(Md_Video.gCampo)) Then
   valstr = Md_Video.gScheda(Md_Video.gCampo)
[cut]
end sub
 
funziona perfettamente, poi immagino ci siano soluzioni più pulite, ma 
questa la trovo discretamente semplice
ciao marco


Insomma, quella da fucilazione ;-{))))))))))))))))
..........
call Md_Video.vd_InsSettore("" & Form_S_Video_Ins(
Me.vidaSettore.Name
))
.......
Public Sub vd_InsSettore(vPar)
[cut]
If vPar <> "" Then valstr = vPar
[cut]
end sub
 
 
Non serve alcuna variabile.
Immagino che nella parte "[cut]" ci sia qualcosa  di piu' complicato ma 
ai fini di valstr questa e' "quasi" (*) equivalente.
RiImmagino valstr sia di tipo string.
 
(*) Tiene conto della possibilita' di controllo "null" o "empty"
 
ciao ;-{)
-- 
 
ac (x=y-1)
 
 

 ciao ;-{)
 
tra una settimana torno dalle ferie e la provo
grazie e ciao
marco