Newsgroup: it.comp.appl.access
Titolo: Proprietà gruppi di controlli

Salve a tutti
Ho creato una maschera di immissione dati che prende i dati dei clienti
Ho diviso la maschera in due a seconda se il cliente è una società o un
privato
L'utente sceglie tramite una combo se si tratta di un privato o no.
Di default tutti i controlli  sono invisibili e a seconda della scelta
effettuata nella combo di cui sopra
diventano visibili i controlli del privato (NOME, COGNOME, CODFISCALE,
residenza) oppure quelli della società (DENOMINAZIONE, P.IVA ecc)
Ho creato una routine sull'evento COMBO_AFTERUPDATE che imposta le proprietà
visible dei controlli su true o false a seconda della scelta.
Mi chiedo:
Al posto di scrivere
Me.TXTNOME.Visible =True
Me.TXTCOGNOME.Visible =True
....
ecc. per quanti sono i controlli,
posso raggruppare tutti i controlli tipo in GRUPPOCONTROLLIPRIVATO
ed impostare una volta la proprietà al gruppo così:
Dim Soggetto as string
TipoSoggetto = Me.cbxtiposoggetto.value
If Tiposoggetto = "privato" then
me.GRUPPOCONTROLLIPRIVATO.visible = True
me.GRUPPOCONTROLLISOCIETA.visible = false
Else
me.GRUPPOCONTROLLIPRIVATO.visible = false
me.GRUPPOCONTROLLISOCIETA.visible = true
End IF
End Sub
Grazie a tutti
Ciao

 Me.TXTCOGNOME.Visible =True
Non so se quello che chiedi è fattibile. Comunque:
Io ho realizzato un applicativo pari pari al tuo.
Ho risolto chiamando i controlli di un certi tipo tutti con una sottostringa
particolare.
Per esempio
CLI_txtnome
CLI_indirizzo
SOC_Indirizzo
e così via
Poi con un ciclo sull'insieme controls testi il tipo del controllo e agisci
Per esempio:
for each ctl in me.controls
if left(
ctl.name
) = "CLI" then
  ctl.visible = true
else
  ctl.visible = false
end if
Antonio

 ha scritto nel messaggio
news:3SvMa.139896$lK4.3...@twister1.libero.it...

Sei un grande!!!!

 Sei un grande!!!!
non sai quanto (anche se l'aggettivo piu' giusto e' "grosso")
--
a.cara 
Togli qualcosa dall'email

 non sai quanto (anche se l'aggettivo piu' giusto e' "grosso")
Una fiamminga di gomiti per Alessandro!!!
Antonio

 ha scritto nel messaggio
news:3SvMa.139896$lK4.3...@twister1.libero.it...

Che sei un grande già te lo ho detto...
Saresti grandissimo se mi dicessi anche come dichiarare la variabile ctl...
:-)
Ho provato con
DIM CTL AS CONTROL
ma mi manda al diavolo
Come fare???

 Come fare???
Quando scrivi as c
ti completa con control?
Hai provato a compilare? E ti da errore?
Se tutto questo è verificato vai su strumenti->riferimenti (con un modulo
aperto) e verifica che la libreria DAO sia prima della ADO. E già che ci sei
che non ci sia qualche riga con MANCA.
Antonio

 ha scritto nel messaggio
news:%EDMa.140136$Ny5.3...@twister2.libero.it...

Il riferimento a CONTROL esiste ed infatti me lo fa mettere ma non me da
come prima opzione
Ho provato a compilare ma niente.
Ho controllato i riferimenti e non ne avevo alla libreria DAO (a proposito
ma di default quali sono abilitati per ogni nuovo db???)
Ho abilitato sia la Ms DAO 3,6
che la ADO 2,5
nell'ordine in cui ti ho detto
ma nulla da fare
PS
Tra l'altro se in una istruzione scrivo IF ....... e non metto il THEN sulla
stessa riga mi da  errore.
Mi sembra di aver letto da qualche parte che si tratta anche qui di
riferimenti ma non ricordo bene
Ciao e grazie ancora

 stessa riga mi da  errore.
Questa non l'ho capita
cioè se scrivi
if x = 1
then ?
così infatti è sbagliato!
Antonio


Allora:
La routine che ho è la seguente:
dim ctl as control
For each ctl.Me.Controls
    If Left(
ctl.name
,"_") = "CLI" Then
        ctl.visible = true
     else
        ctl.visible = false
    End If
Next
La procedura si blocca sulla riga
    If Left(
ctl.name
,"_") = "CLI" Then
e m ritorna un errore di run-time '13'
Tipo non corrispondente
PS Quando scrivo IF Left(ctl. ...) dopo ctl. non mi compare tra le proprietà
del controllo né NAME nè, in seguito VISIBLE.
Ciao
marco

 del controllo né NAME nè, in seguito VISIBLE.
Sì, è vero, spesso capita.
Antonio

 ha scritto nel messaggio
news:i2RMa.141777$Ny5.4...@twister2.libero.it...

é  vero, sono un cretino....

 é  vero, sono un cretino....
Non credo tu sia un cretino. Ma come fanno molti altri, anche tu non perdi
del tempo nel fare del debugging, mettendo dei blocchi nel codice per
verificare le variabili, facendo il trace del codice e soprattutto, non
svisceri per benino l'help!
Il tempo utilizzato in queste attività te lo ritrovi in skill e in guadagno
di tempo in applicazioni future!
Antonio