El desplegable del campo del formulario de access, no me muestra las palabras que contienen las letras que voy poniendo

He mirado varias publicaciones pero no soy capaz de solucionarlo.
En mi base de datos tengo un Formulario de registro con diferentes campos a rellenar. En el formulario, uno de los campos está vinculado a una de las tablas que tengo, llamada Instalaciones (la información está en la columna Recinto de dicha tabla). De esta manera, en el formulario a través del despregable del campo Instalaciones me aparece todo el listado.
Lo que no soy capaz de conseguir es que en vez de desplegar el listado y buscarlo de manera manual, cuando por ejemplo en el campo "Instalaciones" voy escribiendo el nombre de la instalación que quiero buscar, solo me muestra el listado de las que empiezan por la letra que voy escribiendo. Lo que me interesaría es que me vaya mostrando todas las palabras que vayan conteniendo lo que voy escribiendo. Por ejemplo si tengo "Planta superior", cuando yo busque por superior, me debería aparecer en el listado "Planta superior". En cambio, si lo busco, como no empieza por la palabra "Superior", no me aparece nada en el listado.
¿Hay alguna manera de hacer que aparecza listado en el desplegable las palabras que voy escribiendo?

1 respuesta

Respuesta
2

La verdad, no lo he entendido, pero por si fuera algo parecido. Si tengo un formulario Clientes dependiente de la tabla Clientes, que tiene los campos, Nombrecliente, ..., Ciudad, Pais y en un cuadro de texto, al que llamaré Buscar y escribo algo en él En sus propiedades-Eventos-Despues de actualizar puedo crear un procedimiento de evento y poner

me.reccordsource="select * from clientes where pais like ""*""&'" & me.buscar & "'&""*"""

Así, si en ese cuadro Buscar escribo Lem, me mostrara todos aquellos registros en que el campo Pais tenga la cadena Lem, como aLEMania, LEMuria, etc.

Mejor gráficamente

y al pulsar enter

En caso de que quisieras abrir el formulario Clientes desde otro con ese criterio sería

Docmd. Openform"Clientes",,,"pais like... lo de arriba

Hola! Gracias por la respuesta, pero no es exactamente lo que busco  aunque te lo valoro com excelente por la rapidez y claridad. A ver si ahora me explico mejor!

En la imagen de debajo está el formulario que digo. El campo Instalación del formulario está vinculado con la tabla Instalaciones y dentro de esa tabla, muestra la información de la columna "Nombre". De tal manera, que cuando escribo en el campo del formulario, según escribo aparece la lista. Lo que pasa es que si escribo REST, me aparece todo lo que empieza por REST, en cambio, si en el campo pongo Masía, no me encuentra nada, ya que no es la primera palabra. Mi consulta es sobre si hay alguna manera de hacer que cuando escriba en el campo Instalación, ponga la palabra que ponga me aparezca en el deplegable, esté al principio o al final (que vaya buscando en cualquier posición según las letras o palabra que voy escribiendo.

Las tardes de fútbol son jodidas.

Si tengo el formulario, donde tengo un combinado, que sería lo mismo que en tu formulario

Si escribo una v

El origen de la fila del combinado Buscar lo dejo en blanco y en el evento Al cambiar le pongo

Private Sub Buscar_Change()
Form.Refresh
Buscar.RowSource = "SELECT CargoContacto FROM Clientes where cargocontacto like ""*""&'" & Me.Buscar & "'&""*"" GROUP By CargoContacto"
Buscar.Dropdown
End Sub

Hola de nuevo!! Ahora casi casi! La unica pega es que tan solo me deja poner una letra, no me deja escribir más de dos letras o palabras enteras. Además, si la palabra que pongo no aparece en el listado, se debería poder escribir para registrarla. Me sabe mal ser tan pesado! Gracias de antemano

Vamos por partes. En el ejemplo que te puse, si puedes escribir, sólo tienes que llevar el cursor a la derecha de la letra(en el ejemplo la v) y hacer clic

Los combinados en sus propiedades-Datos se le puede poner Limitar a la lista=Sí, de forma que sólo aceptarían valores que estén, en mi caso en el campo CargoContacto de la tabla Clientes. Esto normalmente se combina con el evento Al no estar en lista. Hay se le dice lo que tiene que hacer en caso de que lo que escribas no esté en la lista.

Pero hay otra forma

Escribo Ven, pulso Enter y "despliego" el combinado. Si escribiera algo que no está, para el ejemplo Oficinista y pulso Enter

Si le digo Sí, se abre en vista diálogo el formulario Clientes. Una vez que haya escrito Oficinista en el campo Carcontacto, si cierro el formulario Clientes, en el combinado ya me aparece ese valor. Si le dijera que no, el cursor se vuelve al combinado para que cambies el valor. El código de este caso es

Private Sub Buscar_BeforeUpdate(Cancel As Integer)
If Nz(DCount("*", "clientes", "cargocontacto like ""*""&'" & Me.Buscar & "'&""*""")) = 0 Then
Dim respuesta As Byte
respuesta = MsgBox("Ese cargo no está en la lista. ¿Quiere agregarlo?", vbYesNo, "Lo que sea pero decídete")
If respuesta = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.OpenForm "clientes", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
ElseIf DCount("*", "clientes", "cargocontacto like ""*""&'" & Me.Buscar & "'&""*""") >= 1 Then
Buscar.RowSource = "select cargocontacto from clientes where cargocontacto like ""*""&'" & Me.Buscar & "'&""*"" group by cargocontacto"
End If
End Sub

Hola de nuevo, he hecho las pruebas que me comentas pero no hay manera. Hace más de  años que no tocaba nada de base de datos y ando bastante espeso. He estado haciendo pruebas todo el día y no lo he conseguido. He hecho una copia muy reducida de mi base de datos. Te pongo aquí ell enlace a ver si así me puedes iluminar un poco

https://www.dropbox.com/s/ey94obuh4vpt3sj/BBDD%20Incidencias%20Instalaciones_Prueba.accdb?dl=0 

En el panel inicial, se ha de dar en Introducir Incidencias. Los cuadros comginados de ejemplo serían:
- Incidencias: Si escribo "Disco", sale en el desplegable "Disco Rojo". Si escribo "Rojo", no me aparece nada.
- Instalacion: Si escribo "REST" me aparece la lista con REST Foto Mina, pero si pongo "Mina", no me aparece nada.
El Cuadro combinado Incidencias del formulario, busca la información en la tabla Tipo_Incidencias.
El Cuadro combinado Instalacion del formulario, busca la información en la columna "Nombre" de la tabla "Instalaciones".

Llevo días con esto y no veo el camino! Gracias de antemano.

Aquí en la zona de Murcia sólo queremos las "nubes" para ver si llueve, pero ni por esas. Te he modificado el origen de los combinados. Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando tu base modificada. Si lo haces, en el asunto del mensaje pon tu alias thorbe, ya que si no sé quien me escribe ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas