Evitar que se preseleccionen valores en el combo

Es una pregunta para Sveinbjorn EL Rojo

Gracias a tu ayuda hemos creado un combo que al escribir en el recuadro se nos autodespliegan solo los valores coincidentes, del listado del combo "cbo_ediorial"

Lo que me gustaría es que al introducir datos en el recuadro del combo, al autodesplegarse el listado de valores no me preseleccionara ninguno.

Te muestro un ejemplo:

Cuando escribo "alba" en el recuadro, querría que al autodesplegarse el listado con los valores coincidentes, ("albada" y "albatros") no me preseleccionara "albada" ni ningún otro.

1 Respuesta

Respuesta
1

Cambia la propiedad "Expansión automática" de la pestaña "Datos" a No.

Ten en cuenta que si tienes "Limitar a la lista" en sí, lo anterior no te funcionará.

Hola Sveinbjorn

Lo primero, gracias por contestarme.

Lo de la expansión automática a NO lo tenía.

Respecto a lo de "limitar en la lista" lo tengo en "sí" porque los elementos que se despliegan del combo los extraigo de una segunda tabla "editorial" y tengo para ingresar o no nuevos elementos, el evento "NotInList" con un msgbox yes/not.

Esta pregunta que te hago es en referencia a la que me contestaste hace un tiempo:

Rellenar control mediante combo actualizable y sin duplicados

Crear cuadro combinado que se autodespliegue al insertar datos

Los 2 eventos que fundamentan el combo hecho, son:

Private Sub cbo_editorial_NotInList(NewData As String, Response As Integer)

If MsgBox("No esta en la lista Dar de alta?", vbYesNo) = vbYes Then
Response = acDataErrContinue
CurrentDb.Execute "INSERT INTO Teditorial(editorial) VALUES('" & NewData & "')"
Me.cbo_editorial = NewData
Me.autor.SetFocus
Me.cbo_editorial.Requery
Else
Response = acDataErrContinue
Me.cbo_editorial = ""
Me.autor.SetFocus
End If
End Sub

Private Sub cbo_editorial_Change()

If Me.cbo_editorial.Text = "" Then
Me.cbo_editorial.RowSource = "SELECT DISTINCT Teditorial.editorial FROM Teditorial WHERE Nz([editorial],"""")<>"""" ORDER BY Teditorial.editorial;"

Else
Me.cbo_editorial.RowSource = "Select Distinct Teditorial.editorial from Teditorial where Teditorial.editorial like '" & Me.cbo_editorial.Text _
& "*' or Teditorial.editorial like '* " & Me.cbo_editorial.Text & "*' ORDER BY Teditorial.editorial;"

Me.cbo_editorial.Dropdown
End If

End Sub

Me di cuenta que cuando uso el evento "al cambiar" y voy introduciendo datos en el recuadro del combo, lo hace todo bien y me muestra solo los valores que voy escribiendo, etc. pero me preselecciona el primer valor coincidente del desplegable del combo.

En definitiva, y perdona por el rollo, me gustaría que todo siguiera la misma mecánica que ahora tenemos, con lo que hace cada evento "al cambiar" y "notinlist" pero me gustaría que cuando en el evento "al cambiar"  cuando escribo en el recuadro..., se autodesplegara el combo sin tener ningún elemento del desplegable seleccionado.

Había intentado poner en el evento "al cambiar":

Me.cbo_editorial.listindex = -1

pero con esto consigo que se despliegue el combo sin seleccionar ningún elemento pero no me deja escribir los valores en el recuadro del combo.

La verdad es que lo he intentado todo pero no logro conseguirlo. Si pudieras ayudarme te lo agradecería.

Un saludo

Pues es lo que hay, es la única forma que conozco de que no se te seleccione el valor.

Pero... sólo por entenderlo, si no es mucha molestia, lo que he puesto yo de...

Me.cbo_editorial.listindex = -1

¿no es para que no se seleccione ningún valor en el desplegable?

Pensaba que listindex = 0 muestra el primer elemento y .listindex = -1 sirve para que no se seleccione ningún valor en el desplegable del combo.

Tal vez no deba poner... "Me.cbo_editorial.listindex = -1" en evento "al cambiar" y sea mejor ponerlo en otro. Ya me comentas. Gracias por todo.

https://msdn.microsoft.com/es-es/library/office/ff193579.aspx 

Mira la ayuda de esa propiedad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas