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

[SOLUCIONADO] FILTRO rs.RecordCount

Estas en el tema de FILTRO rs.RecordCount en el foro de Visual Basic clásico en Foros del Web. HOLA Colegas les cuento tengo un filtro que pide el apelliido de un medico a travez de un text.box y trae sus datos de un ...
  #1 (permalink)  
Antiguo 26/02/2014, 19:22
 
Fecha de Ingreso: febrero-2014
Ubicación: la banda
Mensajes: 31
Antigüedad: 10 años, 2 meses
Puntos: 0
FILTRO rs.RecordCount

HOLA Colegas
les cuento tengo un filtro que pide el apelliido de un medico a travez de un text.box y trae sus datos de un lisviwev pero cuando filtro una letra el listviwev queda sin elementos en la lista,...me guie de un trabajo q me pasaron y ai este elemento rs.RecordCount se pone en 1 es asi con lo q muestra el elemento el mio dice -1......

esta es la sentencia y tambien les pongo la sentencia de la que me guio:

Private Sub Text1_Change()
Set rs = New ADODB.Recordset
Dim Campo, OrderByCampo, Orden As String
Campo = Text1.Text
If rs.State = adStateOpen Then
rs.Close
End If

sql = "SELECT * FROM centromedico.doctor Where apellidomed like '" & Campo & "%'"

rs.Open sql, cn, adOpenStatic, adLockOptimistic

'----------------------------------------------------------------'

With turnos
.ListView1.ListItems.Clear
' si hay registros

MsgBox rs.RecordCount
If rs.RecordCount > 0 Then

Do While Not rs.EOF
Set subelemento = .ListView1.ListItems.Add(, , rs.Fields("nombre_esp"))
subelemento.SubItems(1) = rs.Fields("apellidomed")
subelemento.SubItems(2) = rs.Fields("nombremed")
subelemento.SubItems(3) = rs.Fields("hora_mañanaini")
subelemento.SubItems(4) = rs.Fields("hora_mañanafin")
subelemento.SubItems(5) = rs.Fields("hora_tardeini")
subelemento.SubItems(6) = rs.Fields("hora_tardefin")
subelemento.SubItems(7) = rs.Fields("lunes")
subelemento.SubItems(8) = rs.Fields("martes")
subelemento.SubItems(9) = rs.Fields("miercoles")
subelemento.SubItems(10) = rs.Fields("jueves")
subelemento.SubItems(11) = rs.Fields("viernes")
subelemento.SubItems(12) = rs.Fields("sabado")
rs.MoveNext
Loop
End If
End With
End Sub

la sentencia de la q me guio:------------------------------------------------------------
Public Sub Filtrar()
Dim Campo, OrderByCampo, Orden As String
Dim SQL As String

If Combo1.ListIndex = -1 Then
Combo1.ListIndex = 0
End If
If Combo2.ListIndex = -1 Then
Combo2.ListIndex = 0
End If
If Combo1.ListIndex = 0 Then
Campo = "Id"
ElseIf Combo1.ListIndex = 1 Then
Campo = "Nombre"
ElseIf Combo1.ListIndex = 2 Then
Campo = "Apellido"
End If

Select Case Combo2.ListIndex
Case 0: OrderByCampo = "Id"
Case 1: OrderByCampo = "Nombre"
Case 2: OrderByCampo = "Apellido"
Case 3: OrderByCampo = "FechaDeAlta"
End Select

If CmdOrdenar(0).Value Then Orden = "asc"
If CmdOrdenar(1).Value Then Orden = "desc"

' si el recorset está abierto lo cierra
If rs.State = adStateOpen Then
rs.Close
End If

SQL = "SELECT * FROM Personas Where " & _
Campo & " like '" & txtSearch & _
"%' order by " & OrderByCampo & " " & Orden

rs.Open SQL, cnn, adOpenStatic, adLockOptimistic

Call CargarListView(FrmPrincipal.LV, rs)

End Sub
---------------------------------------------------------------------------------------------------------
Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)

On Error GoTo ErrorSub

Dim i As Integer
'limpia el LV
LV.ListItems.Clear

' si hay registros
If rs.RecordCount > 0 Then

' recorre el recordset
While Not rs.EOF
' añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))


ObjItem.SubItems(1) = rs!Nombre
ObjItem.SubItems(2) = rs!Apellido
ObjItem.SubItems(3) = rs!Telefono
ObjItem.SubItems(4) = rs!Direccion
If Abs(rs!sexo) = 0 Then
ObjItem.SubItems(5) = "Masculino"
Else
ObjItem.SubItems(5) = "Femenino"
End If
ObjItem.SubItems(6) = rs!FechaDeAlta

' siguiente registro
rs.MoveNext
Wend

End If
Call ForeColorColumn(&H8000&, 0, FrmPrincipal.LV)
'Call ForeColorColumn(vbRed, 6, FrmPrincipal.LV)

Exit Sub

ErrorSub:

If Err.Number = 94 Then Resume Next

End Sub

Etiquetas: filtros, myslq, recordset, visual+basic+6
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 13:08.