Almacenar varios valores de un cuadro de lista

Lo he preguntado a varias personas sin resultado alguno. Me urge ya que tengo que tener el programa terminado en octubre.
Te agradecería si me pudieses orientar. Necesito, que de un cuadro de lista en el que he puesto la propiedad selección múltiple simple para elegir varios valores me los guarde en la casilla nombre de una tabla.
Esto es opcional que lo intentaré con la ayuda que me aportes del otro párrafo. El caso es que tengo un formulario de formación de personal y otro de cursos. Quiero vincularlos de tal manera que cuando elijo el personal (nombre; uno o varios) del cuadro de lista en el formulario formación los datos de la formación pasen a la ficha de personal de cada uno, que he elegido en el cuadro de lista.

1 respuesta

Respuesta
1
Ustedes, los usuarios que preguntan, deben entender que uno quiere ayudarlos, pero que no puede adivinar las cosas. Las preguntas son muy escuetas, muy cortas, no explican nada sobre la estructura de la base de datos que están usando, ni sus relaciones entre tablas, ni la programación que están usando, por tanto uno tiene que suponer un montón de cosas, para recibir una respuesta más acertada deben brindar más información al respecto.
Como por ejemplo:
¿Cuáles son los nombres y los campos de las tablas que estás usando?
¿Ese cuadro de lista está en un formulario cuyo origen es la misma tabla a la cual quieres trasladar el valor?
¿Sabes de programación en Visual Basic para Ms Access para enviarte la respuesta en forma de código?
¿Sabes hacer macros?
Sólo para empezar, un campo no debe llamarse "Nombre" porque Ms access se confunde con el término, ponle al campo algo más como: Nombre_Cliente o Nombre_Empleado, etc.
Y es muy importante saber si sabes programar porque lo que pretendes hay que hacerlo por medio de programación.
Le pido disculpas si ha habido un mal entendido. No está en mi ánimo criticar ni exigir una solución por parte de ningún experto. En mi caso yo también estoy como experto en otra categoría y no me gustaría que me exigisieses cosas por encima de la ayuda altruista que se da dentro de las posibilidades que cada uno tenemos.
Mis conocimientos son básicos he intento hacer las cosas buscando información en la red y probando opciones y variandolas.
Ejemplo creado para poder hacer lo que necesito. ID_personal autonumérico y personal (esta tabla solo me sirve para poder coger los valores de los nombres de las personas para el cuiadro de lista). ID_opciones, opciones, seleccion. Formulario FRTabla1 que contiene un cuadro de lista (Lista6, con los valores de la tabla2) y un cuadro de texto llamado selección que será oculto y en actual se guardarán los datos.
He conseguido que me guarde las posiciones en las que está cada opción o nombre pero el número que indica su posición en la tabla2, (ejemplo; en lugar de que me guarde a, c, d... me está guardando 1,3,4 se salta el dos ya que no he seleciionado la b). NEcesito que me guarde el nombre y no su número deposición y cada uno en una casilla y no en la misma separado de comas. Esto se sale por mucho de mis limitados conocimientos.
El código que he escrito en evento al perder enfoque de LIsta6 es:
Private Sub Lista6_LostFocus()
Seleccion.SetFocus
Seleccion.Text = ""
For Each it In Lista6.ItemsSelected
Seleccion.Text = Seleccion.Text & Lista6.ItemData(it) & ";"  Hasta aquí es donde la puedo probar y salen los datos que no quiero y de forma que no puedo usarlos.
' SQL = "INSERT INTO [Tabla1] (opcion, Tabla1; Selección, Tabla1) VALUES ('" & Lista6.ItemData(it) & "')"
' Set registro = CurrentDb.OpenRecordset(SQL)
Next it
End Sub
También estoy mirando la forma de recuperar los datos para que los refleje el cuadro de lista en cada registro, pero hasta que no lo pruebe y vea si funciona no lo preguntaré (la mejor forma de aprender es intentar hacerse uno primero las cosas y después preguntar donde te atasques.
Te agradecería si pudieras echarme una mano. Gracias. EStos días estaré fuera del trabajo por lo que puedo tardar varios días en responder. Un saludo.
Oh! Disculpa por lo que escribí anteriormente, no es mi intención ofenderte, sólo quisiera poder entender mejor lo que me escriben.
En este caso, tampoco he podido entender bien la pregunta. No obstante, quisiera exlicarte lo siguiente:
Un "cuadro de lista" o un "cuadro combinado" pueden basarse en una consulta o en una tabla de uno, dos o más campos, y puede representar varios de esos campos en pantalla, todo está definido en las "Propiedades del Control", de estas propiedades la propiedad "Columna dependiente" indica cual de los campos se almacena en el control (ya sea para guardarlo en el campo o para uso posterior) y las propiedades "Número de columnas" y "Ancho de las columnas" indican los campos que se representarán en pantalla.
No obstante para efectos de programación, se puede hacer referencia a cualquiera de los campos (o columnas) de la consulta (o tabla) en la que se basa el control (propiedad "Origen de la Fila").
Por ejemplo si en la propiedad origen del control hay una consulta de tres campos, yo puedo hacer referencia en la página de código a una de esas columnas de esta forma:
Me.EdoOProv = Me.CódPostal.Column(1)
Lo que significa Mi Cuadro de Texto (en el formulario) "EdoOProv" (Estado o provincia) pasa a contener el contenido del control Cuadro combinado "CódigoPOstal" en la columna 1 (la numeración de las columnas empieza en 0, 1, 2, etc.).
Así que al seleccionar el código postal POR se almacena la provincia o estado que le corresponde a ese código en el cuadro de texto "Estado o Provincia".
Este código se añadiría a la propiedad de Evento "Al cambiar" del cuadro Combinado o de Lista, así:
-----------------------------------------------
Private Sub CódPostal_Change()
Me.EdoOProv = Me.CódPostal.Column(1)
End Sub
------------------------------------------------
Tal vez esto te sirva. Ciao y Suerte.
Intentaré probar esta opción que me dices y dejaré para otra pregunta si es que no lo consigo la parte de guardar estos datos cada uno en un registro en lugar de en el mismo separados por ";" tal como me sale ahora.
Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas