Problema Dropdown combobox

07/04/2011 - 04:58 por Alfredoa4 | Informe spam
Hola a todos, buenas noches, solicito de su amable ayuda para poder
resolver mi problemita, tengo un combobox el cual conforme escribe el
usuario se van filtrando los resultados, tengo la propiedad dropdown
en el combobox para que se vayan viendo los registro que tiene y puda
seleccionar el valor,, todo me funciona bien, lo que me falta
solucionar es que cuando presionan enter o hacen click en algun valor
se quite el dropdown y salte al siguiente campo.

A continuacion pongo el codigo que tengo, ojala me pudieran ayudar, de
antemano muchas gracias, reciban un cordial saludo!

Private Sub cmbProveedor_Change()
Dim strSQL, miProv As String

strSQL = "SELECT DISTINCT qry_Proveedores.[IdProveedor],
qry_Proveedores.[RAZON SOCIAL], qry_Proveedores.[DirProv] FROM
qry_Proveedores"

'strSQL = strSQL & " WHERE qry_Proveedores.[RAZON SOCIAL]" & " LIKE
'" & Me.cmbMarca.Text & "*'"
strSQL = strSQL & " WHERE qry_Proveedores.[RAZON SOCIAL]" & " LIKE '"
& Me.cmbProveedor.Column(1) & "*'"
strSQL = strSQL & " AND qry_Proveedores.[Zona] = '" & Me.txtZonaCd &
"' ORDER BY qry_Proveedores.[RAZON SOCIAL] ASC"

Me.cmbProveedor.RowSource = strSQL
Me.cmbProveedor.Dropdown

End Sub

Preguntas similare

Leer las respuestas

#1 Eduardo
13/04/2011 - 12:12 | Informe spam
En teoría al perder el foco el combo, deja de desplegar los datos por lo que
no necesitas usar ningún método para solucionar el problema

Prueba con esto


Yo ese código lo pondría en el evento GotFocus en vez de en el Change
Es que no le veo mucho sentido a que cambies el origen del control cuando
cambias el contenido seleccionado


Private Sub cmbProveedor_GotFocus()
Todo lo que tienes en Change
End Sub

En el controlador del evento Change, envía el foco al siguiente control
Puede que con eso te sea suficiente

Private Sub cmbProveedor_Change()
SiguienteControl.SetFocus
End Sub



Saludos:

Eduardo Olaz

Respuesta Responder a este mensaje
#2 José Mª Fueyo
13/04/2011 - 14:20 | Informe spam
Dichosos los ojos que te leen, Eduardo ¿que es de ti? espero que todo
bien

Un abrazo
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#3 Alfredoa4
19/04/2011 - 03:48 | Informe spam
On 13 abr, 05:12, "Eduardo" wrote:
En teoría al perder el foco el combo, deja de desplegar los datos por lo que
no necesitas usar ningún método para solucionar el problema

Prueba con esto

Yo ese código lo pondría en el evento  GotFocus en vez de en el Change
Es que no le veo mucho sentido a que cambies el origen del control cuando
cambias el contenido seleccionado

Private Sub cmbProveedor_GotFocus()
    Todo lo que tienes en Change
End Sub

En el controlador del evento Change, envía el foco al siguiente control
Puede que con eso te sea suficiente

Private Sub cmbProveedor_Change()
    SiguienteControl.SetFocus
End Sub

Saludos:

Eduardo Olaz




Hola Eduardo,
Buenas tardes, agradezo de antemano la atención prestada a este
hilo, mmhhh... les comento que el combobox lo tengo configurado en su
expansion automatica en "No", ya que si lo pongo en "Si" entonces me
trae el primer valor que coincida de lo que estoy tecleando y a su vez
deja de mostrar el dropdow, es por eso que lo tengo así.
Así también les comento que esto es porque tengo varias tiendas que se
llaman igual y por eso es que no quiero que me traiga la primera sino
que el usuario pueda seleccionar cualquiera de las 10,20, valores que
tiene. Pero hacer esto me ha representado un dolor de cabeza, el
dropdown me deja la lista desplegada, pero si trato de usar las
flechas para bajarme no sirven, si uso el mouse para seleccionar el
valor que deseo, lo unico que hace es seleccionarlo, pero no quita el
dropdown ni pasa a otro control. Cuando se supone que si yo escogo el
valor al dar click deberia pasara al siguiente control y quitar el
dropdow, como tu lo mencionas,, pero entiendo del modo como tengo
configurado el combobox no lo hace. Se tendria que hacer por medio del
codigo.
Ahora bien, si yo cambio el código del onChange al
GotFocus() entonces el combobox, por asi decirlo, ya no funcionario,
ya que deja de estar filtrando los datos conforme escribo, y aparte en
cuanto empiezo a escribri, no me deja terminar, ya que en automatico
me manda a otro campo.
De antemano agradezco sus comentarios ojala me puedan dar una
idea, un gran saludo a todos.
Respuesta Responder a este mensaje
#4 Eduardo Olaz
04/05/2011 - 09:39 | Informe spam
Todo bien gracias
Me sorprende el poco movimiento que tiene este grupo

De vez en cuando echaré un vistazo

Veo que mantienes el título de MVP, felicidades : )

Hasta siempre

Eduardo Olaz


"José Mª Fueyo" escribió en el mensaje de
noticias:

Dichosos los ojos que te leen, Eduardo ¿que es de ti? espero que todo
bien

Un abrazo
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#5 Eduardo Olaz
04/05/2011 - 10:42 | Informe spam
"Alfredoa4" escribió en el mensaje de
noticias:

On 13 abr, 05:12, "Eduardo" wrote:
En teoría al perder el foco el combo, deja de desplegar los datos por lo
que
no necesitas usar ningún método para solucionar el problema

Prueba con esto

Yo ese código lo pondría en el evento GotFocus en vez de en el Change
Es que no le veo mucho sentido a que cambies el origen del control cuando
cambias el contenido seleccionado

Private Sub cmbProveedor_GotFocus()
Todo lo que tienes en Change
End Sub

En el controlador del evento Change, envía el foco al siguiente control
Puede que con eso te sea suficiente

Private Sub cmbProveedor_Change()
SiguienteControl.SetFocus
End Sub

Saludos:

Eduardo Olaz




Hola Eduardo,
Buenas tardes, agradezo de antemano la atención prestada a este
hilo, mmhhh... les comento que el combobox lo tengo configurado en su
expansion automatica en "No", ya que si lo pongo en "Si" entonces me
trae el primer valor que coincida de lo que estoy tecleando y a su vez
deja de mostrar el dropdow, es por eso que lo tengo así.
Así también les comento que esto es porque tengo varias tiendas que se
llaman igual y por eso es que no quiero que me traiga la primera sino
que el usuario pueda seleccionar cualquiera de las 10,20, valores que
tiene. Pero hacer esto me ha representado un dolor de cabeza, el
dropdown me deja la lista desplegada, pero si trato de usar las
flechas para bajarme no sirven, si uso el mouse para seleccionar el
valor que deseo, lo unico que hace es seleccionarlo, pero no quita el
dropdown ni pasa a otro control. Cuando se supone que si yo escogo el
valor al dar click deberia pasara al siguiente control y quitar el
dropdow, como tu lo mencionas,, pero entiendo del modo como tengo
configurado el combobox no lo hace. Se tendria que hacer por medio del
codigo.
Ahora bien, si yo cambio el código del onChange al
GotFocus() entonces el combobox, por asi decirlo, ya no funcionario,
ya que deja de estar filtrando los datos conforme escribo, y aparte en
cuanto empiezo a escribri, no me deja terminar, ya que en automatico
me manda a otro campo.
De antemano agradezco sus comentarios ojala me puedan dar una
idea, un gran saludo a todos.

Sinceramente me resulta sorprendente que tengas que recalcular los datos del
combo con cada pulsación de teclado
Yo hubiese aplicado el recálculo de datos en el evento setfocus y a
continuación, como haces tú, aplicar el DropDown.
El origen de datos en realidad no va a cambiar y ya que te muestra las
posibles opciones usar el ratón o el cursor para seleccionar uno de los
valores mostrados

Puedes detectar también la pulsación de la tecla Intro por ejemplo así

Private Sub cmbProveedor_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
' Acciones para Cambiar el Foco
End If
End Sub

Saludos: Eduardo Olaz
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida