Visual Basic - Consulta sobre Visual Basic

Life is soft - evento anual de software empresarial
 
Vista:

Consulta sobre Visual Basic

Publicado por A.G.A. (3 intervenciones) el 28/08/2000 00:00:00
Soy una programadora novata en visual basic, y necesito hacer lo que en FoxPro se denomina Sustitución de nombre o de macro, que consiste en colocar un & delante de una variable, para que al ser ésta utilizada, el lenguaje tome como dato el contenido de la misma y no su nombre. El ejemplo siguiente es lo que intento hacer en visual basic.

Dim COL1, COL2, COL3,... COLN

I)

Set COL1 = dbgrid1.columns(1)
Set COL2 = dbgrid1.columns(2)
Set COL3 = dbgrid1.columns(3)
:
:
Set COLN = dbgrid1.columns(N)

Quiero reemplazar I) por II)

II) Se arma una variable, por ej. WCOL, que contendrá el nombre de la variable COL1, COL2, COL3, etc. según el valor de J, de manera que al utilizar la instrucción SET haga referencia al contenido de WCOL (COL1, COL2, COL3) y no a su nombre WCOL. En FoxPro esto se haría anteponiendo un & a WCOL o encerrando la variable entre paréntesis: &WCOL o (WCOL). El problema es que no encuentro la sintaxis para visual basic, al utilizar SET WCOL, el visual intenta setear una variable WCOL y no su contenido COL1, COL2, COL3, etc.

Dim WCOL as string

For J =1 to N
WCOL = “COL” & cstr(J)
Set WCOL = dbgrid1.columns(J)
Next J

Desde ya agradezco a quien pueda brindarme su ayuda en este tema.-
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta sobre Visual Basic

Publicado por hernux (37 intervenciones) el 28/08/2000 00:00:00
No conozco una forma directa de hacerlo, se que ahora en VB6 aparecio la funcion CallByName, que sirve para llamar a metodos dentro de una variable, pero no la conozco, asi que no te puedo hablar mucho. Lo que si se de esta funcion, es que es de asociacion postergada, lo que significa, que es lenta.

Ahora, una posible solucion es esta:

Dim COL(1 to N)

Set COL(1) = dbgrid1.columns(1)
Set COL(2) = dbgrid1.columns(2)
Set COL(3) = dbgrid1.columns(3)
:
Set COL(N) = dbgrid1.columns(N)


For J =1 to N
Set COL(j) = dbgrid1.columns(J)
Next J

SUERTE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar