Enviar datos de un formulario a otro

Cuestiones y dudas acerca de lenguajes de programación diversos.

Moderador: Moderadores

Avatar de Usuario
Raziel

Enviar datos de un formulario a otro

Mensaje por Raziel » Jue May 26, 2005 2:14 pm

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.

Avatar de Usuario
gonzalo_aizpun
Senior
Mensajes: 28
Registrado: Sab May 07, 2005 11:50 pm
Ubicación: Buenos Aires
Contactar:

Mensaje por gonzalo_aizpun » Lun May 30, 2005 6:01 am

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!

Avatar de Usuario
Raziel

El código es el siguiente:

Mensaje por Raziel » Lun May 30, 2005 11:44 pm

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. :-?

Avatar de Usuario
gonzalo_aizpun
Senior
Mensajes: 28
Registrado: Sab May 07, 2005 11:50 pm
Ubicación: Buenos Aires
Contactar:

Mensaje por gonzalo_aizpun » Mar May 31, 2005 12:26 am

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

Avatar de Usuario
Raziel

Mensaje por Raziel » Mar May 31, 2005 4:44 pm

OK. Comprendido. Un millón de gracias, estaba atascado con el problema. Saludos.

Responder