Bueno, olvidas lo más importante y es que dices que quieres escribir en más de un formulario (que se ve que contienen controles textbox del mismo nombre?)...
No voy a entrar demasiado en señalar en que no es la forma más óptima... creo que si varios textbox aparecen por igual en varios formularios, podrías crear un contenedor (control de usuario), que puedas poner a cada uno de los formularios. Esto haría innecesario recorrer la colección de controles de cada formulario, ese contenedor ya tendría esos controles...
...bueno, a lo que veníamos...
Cada formulario que lo precise, declara una coleccion, de nombre idéntico (por ejemplo txtBoxes as collection) en cada formulario...
Luego (desde donde se vaya a usar), creas una colección y metes en ella cada formulario que interese (esos que contiene copia de dichos textbox y que deben ser actualizados).
La llamada a la función (seguramente desde un botón) sería mñás o menos así...
dim colFrm = nueva coleccion
with colFrm
'si form1.txtBoxes.count>0) then
' esto no debe ser necesario si en efecto como dices todos tienen textbox del mismo nombre...
.Add(form1)
'end if
.Add(form7)
.Add(frmCuentas)
.Add(form12)
.Add(me) ' siendo el caso que este botón esté en este formulario...
end with
call ActualizarEstosForms(colFrm, query, conex, ...)
' activar-mostrar el form que prefieras, por ejemplo
colFrm.Item(0).show ' .BringToFront .Activate, .Visible=True . enable=true etc... según sea el caso estén cargados o no, visibles o no, etc...
Esto es rentable, porque la búsqueda de dichos controles solo debería hacerse una vez cuando se carga el proyecto (y si no hay cambios dinámicos de controles textbox, claro), y no cada vez que se requiera cargar datos desde la BD.
private sub Main
LlenarColTextboxFromformx(form1)
LlenarColTextboxFromformx(form7)
LlenarColTextboxFromformx(frmCuentas)
LlenarColTextboxFromformx(form12)
LlenarColTextboxFromformx(frmPrincipal)
end sub
declara en diseño en cada formulario una coleccion txtBoxes...
funcion LlenarColTextboxFromformx( byref f as form) as short
por cada ctrl in f.ControlCollection
si ctrl.getType.name = "TextBox" luego ' otra forma de preguntar...
f.txtBoxes.add(ctrl)
end if
siguiente
devolver f.txtBoxes.Count
fin funcion
Luego creas una función que reciba como parámetro esa colección de formularios...
que se recorre y de los cuales se van tomando sus textbox...
funcion ActualizarEstosForms( colF as coleccion, ....)
dim f as form
dim tb as textbox
dim txt as string
try
consulta a la BD
por cada f en colF
por cada tb en subf.txtBoxes
try
txt = Getstring(....)
tb.Text = txt
catch
messagebox.show "Nombre del textbox no hallado, corrige el nombre" ' el error más probable, para el caso...
end try
siguiente
siguiente
catch ex as exception
mesagebox.show (ex.message) ' algún problema con la base de datos...
finally
end try
fin funcion