Problemas con el Combobox
Publicado por Cesar (20 intervenciones) el 31/08/2005 05:48:33
Saludos! espero puedan ayudarme, resulta que tengo un combobox que se llena de datos de una tabla de access, hice una funcion de modo que el usuario pueda teclear la opcion a elegir y que se vaya mostrando la palabra a completar, es decir, si dentro de la lista del combo se encuentra la palabra MEXICO, que el usuario teclee la "M" y aparezca MEXICO. El problema es que no se selecciona dado que al entrar al evento validate, la propiedad listindex pierde el valor y no puedo asignar el indice que es el que me interesa. esta es la funcion:
Private Sub CmbPais_Change()
Dim strletras As String
Dim intcontador As Integer
strletras = Trim(CmbPais.Text)
If CmbPais.Text <> "" Then
For intcontador% = 0 To CmbPais.ListCount - 1
If Len(strletras$) <= Len(Trim(CmbPais.List(intcontador))) Then
If Mid(CmbPais.List(intcontador%), 1, Len(strletras$)) = strletras$ Then
CmbPais.Text = CmbPais.List(intcontador%)
CmbPais.ListIndex = intcontador%
CmbPais.SelStart = Len(strletras$)
CmbPais.SelLength = Len(CmbPais.Text)
Exit For
End If
End If
Next intcontador%
End If
End Sub
Despues lo valido para poder llenar un combo de Estados pero filtrado por el Pais seleccionado, como se muestra:
Private Sub CmbPais_Validate(Cancel As Boolean)
Dim Sql As String
Dim cont As Integer
If CmbPais.Text = "" Then
MsgBox "seleccione un elemento de la lista", vbExclamation, "SISTEMA DE CONTROL DE INTERNOS"
Cancel = True
Else
Cancel = False
Sql = "Select id_estado, s_estado From Cg_estado Where id_pais=" & MatPais(CmbPais.ListIndex) & _
" Order by s_estado"
Call llena_combo(Sql, FrmIngreso.CmbEstado)
Erase MatEstado
For cont = 0 To CmbEstado.ListCount - 1
MatEstado(cont) = matcombo(cont)
Next cont
End If
End Sub
Pero el CmbPais.ListIndex es igual a -1 como si no fuera seleccionado ningun elemento del combo de pais. Espero sea entendible Gracias.
Private Sub CmbPais_Change()
Dim strletras As String
Dim intcontador As Integer
strletras = Trim(CmbPais.Text)
If CmbPais.Text <> "" Then
For intcontador% = 0 To CmbPais.ListCount - 1
If Len(strletras$) <= Len(Trim(CmbPais.List(intcontador))) Then
If Mid(CmbPais.List(intcontador%), 1, Len(strletras$)) = strletras$ Then
CmbPais.Text = CmbPais.List(intcontador%)
CmbPais.ListIndex = intcontador%
CmbPais.SelStart = Len(strletras$)
CmbPais.SelLength = Len(CmbPais.Text)
Exit For
End If
End If
Next intcontador%
End If
End Sub
Despues lo valido para poder llenar un combo de Estados pero filtrado por el Pais seleccionado, como se muestra:
Private Sub CmbPais_Validate(Cancel As Boolean)
Dim Sql As String
Dim cont As Integer
If CmbPais.Text = "" Then
MsgBox "seleccione un elemento de la lista", vbExclamation, "SISTEMA DE CONTROL DE INTERNOS"
Cancel = True
Else
Cancel = False
Sql = "Select id_estado, s_estado From Cg_estado Where id_pais=" & MatPais(CmbPais.ListIndex) & _
" Order by s_estado"
Call llena_combo(Sql, FrmIngreso.CmbEstado)
Erase MatEstado
For cont = 0 To CmbEstado.ListCount - 1
MatEstado(cont) = matcombo(cont)
Next cont
End If
End Sub
Pero el CmbPais.ListIndex es igual a -1 como si no fuera seleccionado ningun elemento del combo de pais. Espero sea entendible Gracias.
Valora esta pregunta


0