Página 1 de 1
Enviar datos de un formulario a otro
Publicado: Jue May 26, 2005 2:14 pm
por Raziel
Hola a tod@s. Estoy aprendiendo Visual Basic, y tengo un pequeño problema. Quiero mostrar los datos de una tabla en un formulario secundario, que tengo definida en el formulario principal como global. El caso es que cuando quiero hacer referencia desde el secundario a la tabla, me da error de compilacion, procedimiento o sub no definido. Que hago mal? Saludos.
Publicado: Lun May 30, 2005 6:01 am
por gonzalo_aizpun
Para poder usar los datos de un Formulario A en un Formulario B, debes programar desde el Formulario B teniendo en cuenta que el Formulario A esté cargado!
... el código desde el Formulario B es:
Variable = FormularioA.List1.List(Posicion)
si dejas tu código, te voy a poder ayudar mas!
Saludos!
El código es el siguiente:
Publicado: Lun May 30, 2005 11:44 pm
por Raziel
Hola, Gonzalo. Gracias por tu ayuda.
Form1
-------
Option Explicit
Dim tabla(0 To 100) As String
Dim auxiliar As Integer
Private Sub Form_Load()
For auxiliar = 1 To 100
tabla(auxiliar) = auxiliar
Next
Form2.Show
End Sub
Form2
-------
Option Explicit
Private Sub Form_Load()
Text2.Text = tabla(7)
End Sub
Lo que quiero hacer, es que en el formulario2 se muestre el elemento de la tabla número 7, lo lógico sería poner form1.tabla(7), pero no funciona. Tienes alguna idea? Un saludo y gracias de nuevo.

Publicado: Mar May 31, 2005 12:26 am
por gonzalo_aizpun
Ok! Es fácil, tenes un problema importante pero sencillo.
Los vectores y matrices no pueden ser declarados Públicos en un Formulario! (Las variables si).
2 soluciones:
(1) Usar un módulo (donde si podes declarar publico el vector). Lo único que tenes que hacer es: Agregar > Modulo (Module1.bas) y escribir la siguiente línea de código:
Public tabla(1 To 100) As String
El resto es el código que escribiste!
(2) Usar en el Form1 una Lista (List1) y cargar ahí los valores de la tabla!
Después, desde el Form2 podes consultar List1 del Form1
' FORM 1
Private Sub Form_Load()
For Auxiliar = 1 To 100
List1.List(Auxiliar) = Auxiliar
Next
Form2.Show
End Sub
' FORM 2
Private Sub Form_Load()
Text2.Text = Form1.List1.List(7)
End Sub
Saludos,
Gonzalo
Publicado: Mar May 31, 2005 4:44 pm
por Raziel
OK. Comprendido. Un millón de gracias, estaba atascado con el problema. Saludos.