• Domingo 22 de Diciembre de 2024, 20:41

Autor Tema:  Combobox  (Leído 1183 veces)

xxxNeOxxx

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Combobox
« en: Sábado 14 de Agosto de 2004, 09:26 »
0
Hola, tengo un control combobox que toma los valores de una base de dato. Como ultimo item del combobox tengo la opcion añadir, y hasta aki todo bien. Añado un elemento, se agrega a la base y al combo. Ahora bien, he intentado que el nuevo item que añado pase a estar 'seleccionado' (como si lo seleccionara manualmente del combobox), pero no he logrado hacerlo.
Gracias.
--------------------
FREE YOUR MIND
--------------------

DiabloRojo

  • Miembro MUY activo
  • ***
  • Mensajes: 220
    • Ver Perfil
Re: Combobox
« Respuesta #1 en: Sábado 14 de Agosto de 2004, 22:57 »
0
Hola.
Me llamó la atención lo que estabas buscando hacer. Aquí te mando el código de una prueba que hice y me parece que resuelve tu problema:

Código: Text
  1.  
  2. Private Sub Combo1_Click()
  3.   Dim i As Integer
  4.   Dim indice As Integer
  5.   Dim nvoElement As String
  6.  
  7.   If (Combo1.Text = "-añadir-") Then
  8.      nvoElement = InputBox("Escriba el nuevo elemento", "Añadir")
  9.      If nvoElement <> "" Then
  10.         Combo1.AddItem nvoElement
  11.      End If
  12.    End If
  13.    
  14. ' para que me muestre seleccionado el nuevo elemento
  15. '
  16. ' ésta es una forma
  17. ' Combo1.ListIndex = Combo1.NewIndex ' sólo si el elemento se añade al final de la lista
  18. '
  19. ' esta es otra forma. Si no sé en que posición se añade (ej. si utilizo la propiedad Sort)
  20.  
  21.    For i = 1 To Combo1.ListCount
  22.    indice = i - 1
  23.       If (Combo1.List(indice) = nvoElement) Then
  24.          Combo1.ListIndex = indice
  25.          Exit For
  26.       End If
  27.    Next i
  28. End Sub
  29.  
  30.  

Lo interesante del código es lo que esta contenido dentro del bucle for. Fíjate que debes almacenar en una variable (nvoElement en el caso de mi prueba) el elemento que deseas agregar para realizar luego la comparación de ésta variable con cada uno de los elementos que integra el combo. Como vez la comparación se realiza a nivel de cadenas de caracteres ya que la propiedad List devuelve o establece el elemento de determinada posición. Al haber una coincidencia se establece la propiedad ListIndex al elemento que produjo la coincidencia (representado por la variable "indice"). Como supongo que cada elemento es único coloco un Exit For para salir del bucle una vez establezco la propiedad ListIndex (que es la que se encarga de mostrarme el elemento recién ingresado).

Bueno espero que esto te ayude a resolver lo que estás buscando hacer.

Suerte.

Hey, por cierto, si puedes indicar la forma en que agregas tanto en el combo como en la base de datos te lo agradecería.