EPP
14/01/2010, 04:48
Bueno el tema es simple... quiero hacer una busqueda en un DATAGRID metiante un TEXTBOX y me funciona todo de 10 salvo cuando el dato a buscar es numerico...
O sea yo escribo en el TEXTBOX y se va filtrando automaticamente las coincidencias... salvo cuando busco por DNI el cual esta declarado en la DB como numerico...
Copio el codigo a ver que carajo puede ser...
Saludos
Option Explicit
Dim strSQL As String
Dim Campo As String
Dim RSCarga As ADODB.Recordset
Dim RSAlu As ADODB.Recordset
Private Sub Form_Load()
Set RSCarga = New ADODB.Recordset
strSQL = "SELECT * From Alumnos"
Campo = "DNI"
'Comprueba si el RecordSet (RSCarga) esta abierto, si es asi lo cierra
If RSCarga.State = adStateOpen Then
RSCarga.Close
End If
RSCarga.CursorLocation = adUseClient
RSCarga.Open strSQL, CN, adOpenDynamic, adLockOptimistic
RSCarga.Requery
'Asigna un título a la Grilla
DGAlumnos.Caption = "Listado de Alumnos"
'Asigna el RecordSet (RSCarga) a la Grilla
Set DGAlumnos.DataSource = RSCarga
DGAlumnos.Refresh
DGAlumnos.Enabled = True
End Sub
Private Sub optApellido_Click()
Campo = "Apellido"
End Sub
Private Sub optDNI_Click()
Campo = "DNI"
End Sub
Private Sub txtBuscar_Change()
'Comprueba que el RecordSet (RSCarga) se halla creado
If RSCarga Is Nothing Then
Exit Sub
End If
'Verifica que el RecordSet (RSCarga) se encuentre abierto
If Not RSCarga.State = adStateOpen Then
Exit Sub
End If
If txtBuscar.Text <> "" Then
'Filtra por el campo especificado en la variable Campo y tomando como valor el dato del TextBox (txtBuscar.text)
RSCarga.Filter = Campo & " LIKE '" & txtBuscar.Text & "*'"
Else
'Si txtBuscar.text no tiene nada se limpia el filtro
RSCarga.Filter = ""
'Vuelve a mostrar todos los registros en la Grilla
Set DGAlumnos.DataSource = RSCarga
DGAlumnos.Refresh
DGAlumnos.Enabled = True
End If
End Sub
O sea yo escribo en el TEXTBOX y se va filtrando automaticamente las coincidencias... salvo cuando busco por DNI el cual esta declarado en la DB como numerico...
Copio el codigo a ver que carajo puede ser...
Saludos
Option Explicit
Dim strSQL As String
Dim Campo As String
Dim RSCarga As ADODB.Recordset
Dim RSAlu As ADODB.Recordset
Private Sub Form_Load()
Set RSCarga = New ADODB.Recordset
strSQL = "SELECT * From Alumnos"
Campo = "DNI"
'Comprueba si el RecordSet (RSCarga) esta abierto, si es asi lo cierra
If RSCarga.State = adStateOpen Then
RSCarga.Close
End If
RSCarga.CursorLocation = adUseClient
RSCarga.Open strSQL, CN, adOpenDynamic, adLockOptimistic
RSCarga.Requery
'Asigna un título a la Grilla
DGAlumnos.Caption = "Listado de Alumnos"
'Asigna el RecordSet (RSCarga) a la Grilla
Set DGAlumnos.DataSource = RSCarga
DGAlumnos.Refresh
DGAlumnos.Enabled = True
End Sub
Private Sub optApellido_Click()
Campo = "Apellido"
End Sub
Private Sub optDNI_Click()
Campo = "DNI"
End Sub
Private Sub txtBuscar_Change()
'Comprueba que el RecordSet (RSCarga) se halla creado
If RSCarga Is Nothing Then
Exit Sub
End If
'Verifica que el RecordSet (RSCarga) se encuentre abierto
If Not RSCarga.State = adStateOpen Then
Exit Sub
End If
If txtBuscar.Text <> "" Then
'Filtra por el campo especificado en la variable Campo y tomando como valor el dato del TextBox (txtBuscar.text)
RSCarga.Filter = Campo & " LIKE '" & txtBuscar.Text & "*'"
Else
'Si txtBuscar.text no tiene nada se limpia el filtro
RSCarga.Filter = ""
'Vuelve a mostrar todos los registros en la Grilla
Set DGAlumnos.DataSource = RSCarga
DGAlumnos.Refresh
DGAlumnos.Enabled = True
End If
End Sub