¿Como seleccionar varios valores de una lista desplegable contenidos en otra celda separados por "," en access?

Soy novata con el uso de access y se me ha planteado una duda.

Tengo una tabla con una lista de códigos y cada código tiene una descripción específica. También tengo otra tabla con mas de mil registros y en una columna tengo los códigos asignados a cada registro separados por coma (aveces le corresponde un código pero la mayoría de las veces son varios códigos). Quiero que en vez de tener los valores separados por coma, aparezca en una lista desplegable (seleccionando el código que le corresponde). Ya la lista desplegable la he hecho... Cada vez que ingreso un registro nuevo puedo seleccionar el código o los códigos que le corresponden. Mi duda es si hay una fórmula que automáticamente seleccione en la lista desplegable los valores del campo código donde tengo todos los códigos separados por coma. Porque son más de mil registros y no quiero tener que seleccionar cada código de la lista desplegable uno por uno.

1 Respuesta

Respuesta
2

No queda claro, pero si es tal como lo has puesto en la imagen, vamos a suponer que el control donde aparecen los códigos se llama así Codigo. Vamos a suponer que quieres pasarlos todos a una tabla que llamaremos Códigos donde tienes el campo Codigo.

En el encabezado del formulario pon un botón y en sus propiedades-eventos-al hacer clic crea un procedimiento de evento y entre Private Sub y End Sub escribe

docmd.setwarnings false

docmd.gotorecord,,acfirst

dim i as integer

for i=1 to form.recordset.recordcount

if len([codigo])=6 then

docmd.runsql"insert into código(codigo)values(" & me.codigo & ")"

elseif len([codigo])>6 then

dim a as strin, b as string

a=Left([codigo],Instr([codigo],",")-1)

b=Mid([codigo],Instr([codigo],",")+1)

docmd.runsql"insert into Códigos(codigo)values('" & a & "')"

docmd.runsql"insert into códigos(codigo)values('" & b & "')"

end if

docmd.gotorecord,,acnext

next

Docmd. Gotorecord,, acfirst

Me explico, cuando pulses el botón se va al primer registro, comprueba si la longitud de la cadena de código es mayor o igual a 6. Si es igual a 6, te pasa ese codigo a la tabla Codigos., si es mayor que 6 divide la cadena en dos (a y B, antes y después de la coma)y te los inserta por separado en la tabla. Se va al siguiente registro, lo mismo, y así hasta el final y luego se vuelve al primer registro.

Tambien se podría hacer con consultas.

Parece liado pero créeme es muy sencillo.

Si ves que tienes problemas y quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Yalbeiry, ya que si no sé quien me escribe ni los abro.

Muchísimas gracias Icue, no te he dicho nada porque hasta ahora he estado intentando correr el procedimiento, pero me sale este mensaje de error.

Supongo que tendrá que ver con el nombre de los campos, que los he cambiado antes de correrlo por los que tu has dicho pero sigue igual. Por eso he vuelto a los nombres originales, son estos

Otra duda que tengo es que en la primera columna el código es de 6 dígitos pero en la segunda tiene un espacio cada dos dígitos.

Como te he dicho, quiero seleccionar automáticamente en la lista de CODIGO LER todos los Códigos que tengo en el campo LERs gestionados.

Una cosa es lo que se guarda en un cuadro de texto, y otra en formato en que lo presenta. Por ejemplo, tu puedes guardar en un campo Texto 12345 y puedes presentarlo como 12 34 5. También puedes jugar con la máscara de entrada.

Normalmente los problemas suelen venir porque los controles no se llaman así. Los controles se llaman como aparece en sus propiedades-otras-nombre, no por lo que aparece en sus propiedades-Datos-Origen del control.

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un par de ejemplos. Si lo haces, en el asunto del mensaje pon tu alias Yalbeiry ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas