Newsgroup: it.comp.appl.access
Titolo: passare il campo di una Form all'interno di una variabile

 
dopo essere riuscito a passare il nome della Form attraverso una variabile:
Set Md_Video.gScheda = Form_S_Video_Ins
Call Md_Video.vd_InsSettore(Md_Video.gScheda)
 
ora vorrei passargli anche il campo, ho fatto in questo modo:
Set Md_Video.gScheda = Form_S_Video_Ins
Md_Video.gCampo = 
Me.vidaSettore.Name
 
 
Call Md_Video.vd_InsSettore(Md_Video.gScheda, Md_Video.gCampo)
 
Il problema è che non trovo il metodo per farlo capire alla sub.
Per intenderci, in questo modo funziona:
gScheda.vidaSettore (vidaSettore è il nome del campo)
 
ma non riesco a trovare una sintassi corretta per dargli la variabile 
gCampo.
ho provato per esempio:
gScheda & "." " gCampo
 
poi anche altre prove, ma non ho trovato la soluzione
avete consigli?
grazie
marco
 

Il 20/06/12 14:44, Xymox ha scritto:

Utilizzando varibili globali posso evitare  di passarle alla sub, ma 
utilizzare direttamente loro
Call Md_Video.vd_InsSettore
al posto di
Call Md_Video.vd_InsSettore(Md_Video.gScheda, Md_Video.gCampo)
 
Cmq il problema di fargli digerire il nome Scheda + il nome Campo 
attraverso due variabili rimane

 gScheda & "." " gCampo
 
errore nello scrivere
gScheda & "." & gCampo
 
 

 gScheda & "." " gCampo
 
Mostra come sono dicchiarati i parametri e variabili, eventualmente
anche come vuoi usare i parametri nella procedura (come stringhe
o oggetti).
 
Da questo dipende la sintassi.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 

 oggetti). Da questo dipende la sintassi. 
 
variabili:
Public gScheda As Form
Public gCampo As String     'ho provato anche con variant ma non cambia 
nulla
 
Lancio la sub:
Set Md_Video.gScheda = Form_S_Video_Ins
Md_Video.gCampo = 
Me.vidaSettore.Name
    'la variabile globale avrà come 
valore --> vidaSettore
Call Md_Video.vd_InsSettore
 
La parte della sub interessata:
'If Not IsNull(Md_Video.gScheda & "." & Chr(34) & Md_Video.gCampo) Then  
--> NON FUNZIONANTE
If Not IsNull(Md_Video.gScheda.vidaSettore) Then --> FUNZIONANTE
   valstr = Md_Video.gScheda.vidaSettore
   ntot = 0
   lung = Len(valstr)                                ' Lunghezza della 
stringa
   appstr = valstr
   Do Until ntot >= lung
     nPos = InStr(appstr, "__")                      ' Posizione primo 
separatore "__"
     If nPos = 0 Then Exit Do
     ntot = ntot + nPos
 
     sDsMacch = Left(appstr, nPos - 1)               ' Contiene 
codice-descrizione
     criterio = "[vSett]= " & """" & sDsMacch & """"
 
     TT.FindFirst criterio
 
     If TT.NoMatch = False Then
       TT.Edit
         TT![vScelta] = True
       TT.Update
     Else
     End If
     appstr = Mid(appstr, nPos + 2, lung)  ' Contiene la stringa rimanente
   Loop
End If
 

 ...
 
Ci sono varianti diversi, p.e.
 
con oggetto Form + stringa per il control che usi adesso:
 
If Not IsNull(Md_Video.gScheda(Md_Video.gCampo)) Then
 
o senza Form:
 
Public gCampo As Control
...
Set Md_Video.gCampo = Me.vidaSettore
...
If Not IsNull(Md_Video.gCampo.Value) Then
 
 
Vedi anche quest'articolo:
 
Variabili invece dei nomi degli oggetti
http://www.donkarl.com/it?FAQ6.1
 


 Variabili invece dei nomi degli oggetti 
http://www.donkarl.com/it?FAQ6.1
 
 
grazie 1000
ciao marco ;-)