🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.databases.ms-access
Article #441

Re: Recorrer campos de un formulario

#441
From: Mario
Date: Tue, 14 Oct 1997 00:00
104 lines
4970 bytes

--------------EC90B917FC1F2B8E1E8AD9FC
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit



Blanca Mart�nez Pastor escribi�:

> Utilizando los m�todos de la colecci�n Forms se puede acceder a un
> formulario determinado mediante un �ndice, sin necesidad de utilizar su
> nombre.
> �Es posible hacer lo mismo con los controles de un formulario determinado?.
> Necesito poder recorrer todos los controles de un formulario y acceder a
> sus respectivos nombres utilizando un bucle.
>
> Gracias

    Todas las colecciones de Microsoft Access pueden ser accedidas mediante un
bucle que recorra los elementos de la colecci�n. Los controles de un formulario
pertenecen a la colecci�n Controls del formulario que se trate. Date cuenta que
cuando recorres una colecci�n, el primer elemento es el elemento cero y, por
tanto, el �ltimo elemento es uno menos que el n�mero total de elementos de la
colecci�n. El ejemplo siguiente recorre todos los controles de un formulario en
el momento de abrirse y, si el control es un bot�n de comando, cambia el color
del texto del bot�n a azul:

Private Sub Form_Open(Cancel As Integer)
Dim i As Integer

    For i = 0 To Me.Controls.Count - 1
        If TypeOf Me.Controls(i) Is CommandButton Then
            Me.Controls(i).ForeColor = RGB(0, 0, 255)
        End If
    Next i

End Sub

    Si el formulario que quieres recorrer es otro diferente al actual, s�lo
tendr�s que cambiar el identificador "Me" por el nombre del formulario que
quieras recorrer. Si est�s utilizando Microsoft Access 95 o superior, tienes
una alternativa al bucle For...Next en For Each...Next: el resultado es el
mismo pero, seg�n la Ayuda de M. Access, parece estar m�s optimizado (si tienes
muchos controles, ir� m�s r�pido).

Saludos
Mario

--------------EC90B917FC1F2B8E1E8AD9FC
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<HTML>
&nbsp;

<P>Blanca Mart&iacute;nez Pastor escribi&oacute;:
<BLOCKQUOTE TYPE=CITE>Utilizando los m&eacute;todos de la colecci&oacute;n
Forms se puede acceder a un
<BR>formulario determinado mediante un &iacute;ndice, sin necesidad de
utilizar su
<BR>nombre.
<BR>&iquest;Es posible hacer lo mismo con los controles de un formulario
determinado?.
<BR>Necesito poder recorrer todos los controles de un formulario y acceder
a
<BR>sus respectivos nombres utilizando un bucle.

<P>Gracias</BLOCKQUOTE>
&nbsp;&nbsp;&nbsp; Todas las colecciones de Microsoft Access pueden ser
accedidas mediante un bucle que recorra los elementos de la colecci&oacute;n.
Los controles de un formulario pertenecen a la colecci&oacute;n <B><I>Controls
</I></B>del formulario que se trate. Date cuenta que cuando recorres una
colecci&oacute;n, el primer elemento es el elemento cero y, por tanto,
el &uacute;ltimo elemento es uno menos que el n&uacute;mero total de elementos
de la colecci&oacute;n. El ejemplo siguiente recorre todos los controles
de un formulario en el momento de abrirse y, si el control es un bot&oacute;n
de comando, cambia el color del texto del bot&oacute;n a azul:

<P>Private Sub Form_Open(Cancel As Integer)
<BR>Dim i As Integer

<P>&nbsp;&nbsp;&nbsp; For i = 0 To Me.Controls.Count - 1
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If TypeOf Me.Controls(i)
Is CommandButton Then
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Me.Controls(i).ForeColor = RGB(0, 0, 255)
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If
<BR>&nbsp;&nbsp;&nbsp; Next i
<BR>&nbsp;
<BR>End Sub

<P>&nbsp;&nbsp;&nbsp; Si el formulario que quieres recorrer es otro diferente
al actual, s&oacute;lo tendr&aacute;s que cambiar el identificador "Me"
por el nombre del formulario que quieras recorrer. Si est&aacute;s utilizando
Microsoft Access 95 o superior, tienes una alternativa al bucle For...Next
en <B>For Each...Next:</B> el resultado es el mismo pero, seg&uacute;n
la Ayuda de M. Access, parece estar m&aacute;s optimizado (si tienes muchos
controles, ir&aacute; m&aacute;s r&aacute;pido).

<P>Saludos
<BR>Mario</HTML>

--------------EC90B917FC1F2B8E1E8AD9FC--
Technical Details
Message-ID: <344373E7.14FB0B0D@arrakis.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <01bcd80e$3a0e78e0$a3c77ac3@b-martinez>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 111a5a,4af63f264a2aa46f
X-Google-Attributes: gid111a5a,public
X-Google-Thread: 10db39,4af63f264a2aa46f
X-Google-Attributes: gid10db39,public
X-Google-Thread: 111cf5,4af63f264a2aa46f
X-Google-Attributes: gid111cf5,public
X-Google-Thread: ff0ac,4af63f264a2aa46f
X-Google-Attributes: gidff0ac,public
From: Mario <mariorg@arrakis.es>
Subject: Re: Recorrer campos de un formulario
Date: 1997/10/14
Message-ID: <344373E7.14FB0B0D@arrakis.es>
X-Deja-AN: 280365032
References: <01bcd80e$3a0e78e0$a3c77ac3@b-martinez>
Organization: NetSat Inc.
Newsgroups: comp.databases.ms-access,es.comp.bd.ms-access,microsoft.public.es.espanol.soporte.entre.usuarios.office97,microsoft.public.es.windows95