Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

autocompletar dbcombo

Estas en el tema de autocompletar dbcombo en el foro de Visual Basic clásico en Foros del Web. He encontrado este codigo para autocompleat un combo pero cuando lo ejecuto me busca bien el primer caracter, pero cuando escribo el segundo me lo ...
  #1 (permalink)  
Antiguo 27/09/2007, 07:06
 
Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 17 años, 2 meses
Puntos: 0
autocompletar dbcombo

He encontrado este codigo para autocompleat un combo pero cuando lo ejecuto me busca bien el primer caracter, pero cuando escribo el segundo me lo escribe al final del nombre, alguien sabe que pasa? ¿Hay alguna otra manera de autocompletar un dbcombo. Este dbcombo lo tengo asociado a una base de datos.


Public Function AutoComplete(ctlComboBox As Control)



Dim i%, intSel% ' % is a "shorthand" for Integers

'If this fires in response to a Backspace or Delete, then
'Exit the function because then you wouldn't be able to backup:
Select Case (Backspaced Or Len(DBCombo2.Text) = 0)
Case True: Backspaced = False: Exit Function
End Select

With ctlComboBox
'Run through the available items in a For...Loop and grab
'the first one that matches the selection:
Data1.Refresh

Do Until Data1.Recordset.EOF
If InStr(1, Data1.Recordset("nombre"), .Text, vbTextCompare) = 1 Then
intSel = .SelStart
.Text = Data1.Recordset("nombre")
.SelStart = intSel
.SelLength = Len(.Text) - intSel
Exit Do

End If
Data1.Recordset.MoveNext
Loop
End With

End Function
  #2 (permalink)  
Antiguo 28/09/2007, 00:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 5 meses
Puntos: 13
Re: autocompletar dbcombo

Hola

Yo hago algo parecido con un textbox y una rejilla, segun voy escribiendo en la rejilla, voy actualizando la rejilla con los registros que cumplen esa condición. No es exactamente lo que buscas pero pongo el código por si te da una idea

Código:
Private Sub Text1_Change()
   If Len(Trim(Text1.Text)) > 0 Then
      Reg.Source = "select empresa, telefonos, Observaciones,Direccion,Poblacion,Provincia,Pais from proveedores where empresa like '%" & Trim(Text1.Text) & "%' Order by empresa"
      Reg.Open
      With Rejilla
        Set .DataSource = Reg
        .Refresh
      End With
   End If
Supongo que podrías hacer lo mismo con el DataCombo.

--Saludos--
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:07.