Newsgroup: it.comp.appl.access
Titolo: Ciclo

Ragazzi corregetimi dove sbaglio.
In una maschera ho diversi controlli tra cui
T1
T2
T3
T4
T5
dovrei fare un ciclo su questi SOLO su questi controlli e quando sono vuoti 
dovrebbe numerarli in sequenza
da T1 in giù.
Con questo codice che posto esegue un ciclo su tutti i controlli (mentre io 
vorrei solo sui controlli interessati) e vengono numerati ma da basso verso 
l'alto.
Come faccio?
Dim Ctr As Control
Dim Numera As Integer
Numera = 1
For Each Ctr In Me
   If Left(Ctr.Name, 2) = "Tz" Then
        If Ctr.Text = "" Then
        Ctr.Text = Numera
         Numera = Numera + 1
   End If
   End If
 Next
Grazie per un Vs. consiglio

++++Debora++++ ha scritto:

imax = 5
for i=1 to imax
     if  "" & controls("Tz" & i).Text = "" then
	controls("Tz" & i).Text  = Numera
	numera = numera +1
     endif
next
perche usi la proprieta' .Text?
La for non e' in me.controls ?
--
ac

 ha scritto nel messaggio 
news:njmqk.20506$0N.1...@tornado.fastwebnet.it...

Grazie Ale è perfetto
si la for  e' in me.controls,  che proprietà devo usare?
non ho capito questa riga:
 if  "" & controls("Tz" & i).Text = "" then
mi puoi dare una descrizione
Grazie mille
Ciao 

 mi puoi dare una descrizione
Ormai per me e' una abitudine. Per evitare possibili errori sul "null" 
faccio sempre la concatenazione con "", se e' questo quello che non ti 
e' chiaro.
--
ac

 ac
Perchč  If Left(Ctr.Name, 2) = "Tz" Then
e non
If Left(Ctr.Name, 1) = "T" Then
non ho capito perchč Tz.
Scusate l'intromissione. 

 Scusate l'intromissione.
Se segui il post ti accorgi che Debora chiede espressamente "Tz":
For Each Ctr In Me
   If Left(Ctr.Name, 2) = "Tz" Then
....
Ciao, Carlo 

 ha scritto nel 
messaggio news:g8e0pp$j5j$1...@tdi.cu.mi.it...

Si, questo l'ho notato................infatti non mi spiego se il nome dei 5 
controlli possono essere uguali e se no, sicuramente non entrerà mai nel 
ciclo per tutti e 5.
Grazie Carlo.
Ciao Ulderico.

 wrote in message 
news:g8cqb4$ggk$1...@nnrp-beta.newsland.it...

==============================
Private Sub Command37_Click()
Dim i As Integer, Numera As Integer
For i = 1 To 5
    If IsNull(Controls("Tz" & i)) Then
        Numera = Numera + 1
        Controls("Tz" & i) = Numera
    End If
Next
End Sub
==============================
Bruno 

 ha scritto nel messaggio 
news:48aa8730$0$41660$4faf...@reader4.news.tin.it...

Il left 2 cerca solo le prime due lettere del nome...
Nulla vieta di poter avere n controlli che iniziano per Tz...
Tz1, Tz2, Tz3, Tzpippo, Tzquello che vuoi...
Ciao, Carlo 

 ac
Grazie Ale era proprio questo al posto di  IsNull usando i doppi apici e la 
concatenazione si ottiene lo stesso risultato
Ciao e grazie ancora 

 ciclo per tutti e 5.
Effettivamente riguardando cio' che ha scritto Debora un piccolo 
controsenso c'e'. Prima cita i controlli T1-->T5 e poi nel codice testa 
per Tz.....
Io mi sono fidato prima del codice e poi della sua "analisi" scritta  ;<)
Quello che dici e' "parzialmente" vero. Nel ciclo entra ma se i nomi dei 
controlli non sono quelli giusti la if interna non viene *mai* verificata.
--
ac

 ha scritto nel messaggio 
news:bBDqk.20943$0N.1...@tornado.fastwebnet.it...


Hai ragione mi sono dimenticata una z il controllo era :
Tz1
Tz2
Tz3
Tz4
Tz5
Ciao