• Domingo 22 de Diciembre de 2024, 14:47

Autor Tema:  Combobox Con Item Seleccionado  (Leído 4726 veces)

MeLaT

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Combobox Con Item Seleccionado
« en: Viernes 23 de Marzo de 2007, 18:37 »
0
Hola !!!

Cuando abro un formulario, cargo un ComboBox (cmb_estado) asi:

Código: Text
  1.  
  2. If CN.State = 0 Then CONEXION
  3.     CRITERIO = "SELECT * FROM T_ESTADOS"
  4.     abrirRS
  5.     For i = 1 To RS.RecordCount
  6.         cmb_estado.AddItem RS.Fields("EDO_ESTADO")
  7.         RS.MoveNext
  8.     Next i
  9.  
  10.  

Pero cuando hago una busqueda y si encuentra el registro, cómo hago para que el elemento del ComboBox (cmb_estado) quede seleccionado dependiendo del que tenga en la bd.
Información no compartida es información desperdiciada". Bueno, eso digo yo. - , les recordé.

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #1 en: Viernes 23 de Marzo de 2007, 20:04 »
0
Salu2. No estoy seguro de enterder, se me hace raro hacer una busqueda en un Combo. Prueba a usar su propiedad listindex.

O si usas un for simplemente pon exit for cuando el campo sea el correcto.

 :comp:  :smartass:  :comp:
Mi mujer tiene un físico bárbaro!!!. Einstein.

MeLaT

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #2 en: Viernes 23 de Marzo de 2007, 22:52 »
0
Tal vez no me explique bien, mira lo que hace un Form1 es:
 
1. Cuando se abre un Form1, ComboBox1 se carga con todos los campos de una tabla con el código que puse, eso ya esta.
2. Al evento clic de un Command1 se busca un registro en la base de datos, y si se encuentra el registro empieza a llenar Text1, Text2, etc. Eso también ya lo tengo. Pero cuando llego al ComboBox1, ahi es donde me quedo, no se que propiedad tengo que utilizar para que un item de los que ya estan cargados en ComboBox1 y que sea igual que el dato que tengo en un campo de la base de datos este seleccionado.

Por ejemplo:
1. Al abrirse Form1 a ComboBox1 se le añaden estos items:

Ayer
Hoy
Mañana

2. Al evento _clic de un Command1 se busca un registro en la base de datos, si lo encuentra, en un campo de cierta tabla que se llama días, ese registro que busque tiene en un campo Mañana. Cómo hago para que en ComboBox1 quede seleccionado Mañana y no Ayer u Hoy?

Mañana

Gracias por sus aportes. Estoy en Duda.
Información no compartida es información desperdiciada". Bueno, eso digo yo. - , les recordé.

Sagutxo

  • Miembro MUY activo
  • ***
  • Mensajes: 320
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #3 en: Viernes 23 de Marzo de 2007, 23:25 »
0
Salu2, pues si que es raro, debo estar espeso, supongo que con un for no tienes ningún problema,

for Combo.listindex=0 to objeto.count

  if Combo.text = "Lo que quieres" then
  exit for
  end if

next Combo.listindex

Supongo que esto funciona. Suerte.
 :smartass:  :comp:  :smartass:
Mi mujer tiene un físico bárbaro!!!. Einstein.

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #4 en: Domingo 25 de Marzo de 2007, 20:35 »
0
Yo hice una función para facilitarme eso:

Código: Text
  1.  
  2. 'Busca un texto en un combo, si lo encuentra se posiciona en el
  3. 'sino, te deja con el texto k tenía
  4. Public Function BuscarEnCombo(cmb As ComboBox, valor As String) As Boolean
  5.     Dim i As Long
  6.     i = 0
  7.     'Mientras no encuentre el valor y hayan elementos en la lista
  8.     While cmb.List(i) <> valor And i < cmb.ListCount
  9.         i = i + 1
  10.     Wend
  11.     'Si lo encontró
  12.     If cmb.List(i) = valor Then
  13.         cmb.ListIndex = i
  14.         BuscarEnCombo = True
  15.     End If
  16. End Function
  17.  
  18.  

Te regresa un true, si el elemento existe en el combo y un false, si no existe.

Lo ocupas de la siguiente manera
Código: Text
  1.  
  2. buscarEnCombo(miCombo,"Mañana")
  3.  
  4.  


Otra manera mas facil, si sabes que el elemento existe realmente en el combo, sólo escribe:
Código: Text
  1.  
  2. combo1.text = rs!miCampo
  3.  
  4.  
Que aqui pondrias el valor de tu campo

MeLaT

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #5 en: Martes 27 de Marzo de 2007, 17:58 »
0
Ok. Muchas Gracias mamex.

Si, sólo tenía que colocar el campo de la bd en el combo, ups.

Qué diferencia hay entre usar:
Código: Text
  1. cmb_name.text = RS.Fields("TIM_NAME")
  2. 'o
  3. cmb_name.text = rs!TIM_NAME
  4.  
Información no compartida es información desperdiciada". Bueno, eso digo yo. - , les recordé.

mamex

  • Miembro activo
  • **
  • Mensajes: 77
  • Nacionalidad: mx
    • Ver Perfil
Re: Combobox Con Item Seleccionado
« Respuesta #6 en: Miércoles 28 de Marzo de 2007, 01:47 »
0
Pues que la segunda opción es más simple (mas corta) y la primera es más clara, ya que especificas a que te estás refiriendo (fields -> campos).