Como copiar datos de un listbox a otro formulario

Estoy trabajando con VB en Access y mi problema es:
Si tengo un lisbox con datos y estos datos los quiero guardar en otra tabla diferente, ¿qué función le tengo que dar a un botón para que me lo guarde en otra tabla? Ya sea en otro listBox o en un memo o como valor individual... Pero en una tabla diferente.

1 respuesta

Respuesta
1
Sería así:
If Lista7.ListIndex <> -1 Then
form2.Lista4.AddItem (Lista7.Value)
Else
MsgBox "tiene que elegir un valor"
End If
Tienes que indicar el nombre de la forma antes del objeto a referenciar.
Te agradezco que intentes aclarar mis dudas, pero estoy muy limitado en el tema y no he entendido la explicación.
El problema no es pasar de un listBox a otro eso lo estoy haciendo con esta función:
If Lista7.ListIndex <> -1 Then
Lista4.AddItem (Lista7.Value)
Else
MsgBox "tiene que elegir un valor"
End If
Mi problema es que el ListBox al que deseo pasar los datos no esta en el mismo formulario, y entonces no funciona.
¿Cómo puedo hacerlo?
Por favor contesta a mi pregunta cuanto antes.
Gracias por tu ayuda.
Jorge
No es función tienes que programa el recorrido de todos los elementos del listbox para que vayas armando una sentencia de insert por cada elemento en la nueva tabla. Lo mismo se realiza si trabajas para copiarlos de un list a otro.
Para saber cual es el problema que comentas, necesito ver todo el código y ver como funciona, lo puedes colocar en esta página
Muchas gracias David pero lo he intentado de varias formas con varios tipos de listbox, textbox y memo pero sigue sin funcionar, seguro que estoy haciendo algo mal pero no se que.
¿Puedes ayudarme?
¿Por qué me da fallo?
¿Qué puedo intentar en lugar de esta forma?
Gracias de nuevo por tu ayuda
Jorge
Veo código tipo visual basic, pero algo me dice que trabajas con access, es esto cierto...
Gracias por contestar tan pronto:
El código para pasar de un formulario a otro es:
Private Sub Correct_Click()
On Error GoTo Err_Correct_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "kategorie2"
stLinkCriteria = "[kategorie]=" & "'" & Me![Lista7] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Correct_Click:
Exit Sub
Err_Correct_Click:
MsgBox Err.Description
Resume Exit_Correct_Click
Kategorie.Caption = Lista7.AddColon
End Sub
El código que utilizo para pasar valores de una casilla a otra en el mismo formulario es:
If Lista7.ListIndex <> -1 Then
Lista4.AddItem (Lista7.Value)
Else
MsgBox "tiene que elegir un valor"
End If
Pero no se como se pasa texto de una casilla a otra en distintos formularios, ¿no se si esto es lo que me pides porque no tengo mucha idea de visual basic y tampoco de ningún otro lenguaje de programación pero si me das la respuesta que necesito me habrás salvado la vida?. Muchas gracias
Jorge
Aplica el mismo criterio que usaste para el listbox, funciona de la misma forma.
Si trabajo con Access, lo siento creía habértelo dicho, perdona.
Yo creía que no habría mucha diferencia entre los dos pero veo que Access no funciona igual, ¿no se?
Sabes si mi problema con Access es posible de resolver.
Un saludo y muchas gracias por contestar.
Jorge
Ya me funciona, tenias razón se hace como tu dices, más o menos lo único que tengo que declarar publica como listbox. Pero ahora tengo otro problema, y es que quiero hacer lo mismo pero con un textbox y no me sale. ¿Podrías ayudarme?
Ahora lo hago así:
If Lista2.ListIndex <> -1 Then
Form_form2.Lista7.AddItem (Lista2.Value)
Else
MsgBox "elige una variable"
End If
¿Con textbox como podría ser?
Muchas gracias por tu ayuda, sois geniales.
Un saludo
Jorge
Según la forma de trabajo sería como te digo, después del openform, ya en memoria, le puedes asignar el valor al campo de texto de acuerdo al nombre de la forma y el campo texto:
form2.text2.text = "nombreempresa"
o
form2!text2.text = "nombreempresa"
O quizás puedas utilizar una variable global que definas desde el principio y ahí le asignes el nombre desde el formulario uno y cuando el evento load del formulario dos se ejecute, le asignas el valor de la variable global.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas