Ver Mensaje Individual
  #24 (permalink)  
Antiguo 06/04/2009, 21:23
Avatar de seba123neo
seba123neo
 
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 3 meses
Puntos: 19
Respuesta: Problema con filtrado

en este momente pienso un monton de cosas para hacerlo, pero para salir del paso proba pasarle como parametro la cadena de conexion y asi se conecta segun lo que vos le pases...por ejemplo(y por favor indentar el codigo y usar la etiqueta del codigo del foro!!!!!!!), mira que bueno que soy que hasta te acomode el codigo..¿no se lee mejor asi?

Código vb:
Ver original
  1. Public Sub Cargar_Lista(ByVal vSQL As String)
  2.     'Esto nos permitirá acceder a las tablas y a sus registros.
  3.    Dim rs As New ADODB.Recordset
  4.     Dim iEle As Integer
  5.    
  6.     '*********************** aqui es donde le digo con el where que me filtre por cedula************ ese fue todo el cambio. *****************************
  7.    If vSQL = "" Then
  8.         'si no hay parametro se conecta por defecto asi
  9.        rs.Open "SELECT * FROM registro Where Cedula Like '%" & FormFiltrar.txtSearch & "%'", nc, adOpenDynamic, adLockOptimistic
  10.     Else
  11.         'si hay parametro(o sea viene del formualario filtro) te conectas con la cadena que le pasaste..
  12.        rs.Open vSQL, nc, adOpenDynamic, adLockOptimistic
  13.     End If
  14.    
  15.     'Ahora biene lo bueno...
  16.    
  17.     'Limpiamos el objeto LISTVIEW...
  18.    FormRegistro.lvLista.ListItems.Clear
  19.    
  20.     While Not rs.EOF
  21.         'Se comporta como un archivo...
  22.        iEle = (FormRegistro.lvLista.ListItems.Count) + 1
  23.         With FormRegistro.lvLista
  24.             .ListItems.Add , , rs!codigo
  25.             .ListItems(iEle).SubItems(1) = rs!nacionalidad
  26.             .ListItems(iEle).SubItems(2) = rs!Cedula
  27.             .ListItems(iEle).SubItems(3) = rs!Nombre
  28.             .ListItems(iEle).SubItems(4) = rs!sexo
  29.             .ListItems(iEle).SubItems(5) = rs!estadocivil
  30.             .ListItems(iEle).SubItems(6) = CLng(rs!edad)
  31.             .SelectedItem.Selected = False
  32.         End With
  33.         'Esto no debe faltar...
  34.        rs.MoveNext
  35.         'es para moverse entre los registros.
  36.    Wend
  37.     'cerramos el recurso.
  38.    rs.Close
  39.     'y lo destruimos o sacamos de la memoria..
  40.    Set rs = Nothing
  41.     'End Sub
  42. End Sub

Código vb:
Ver original
  1. Public Sub Filtrar()
  2.     Dim Campo, OrderByCampo, Orden As String
  3.     Dim SQL As String
  4.    
  5.     If Combo1.ListIndex = -1 Then
  6.         Combo1.ListIndex = 0
  7.     End If
  8.     If Combo2.ListIndex = -1 Then
  9.         Combo2.ListIndex = 0
  10.     End If
  11.     If Combo1.ListIndex = 0 Then
  12.         Campo = "Codigo"
  13.     ElseIf Combo1.ListIndex = 1 Then
  14.         Campo = "Cedula"
  15.     ElseIf Combo1.ListIndex = 2 Then
  16.         Campo = "Nombre"
  17.     End If
  18.    
  19.     Select Case Combo2.ListIndex
  20.         Case 0: OrderByCampo = "Codigo"
  21.         Case 1: OrderByCampo = "Cedula"
  22.         Case 2: OrderByCampo = "Nombre"
  23.     End Select
  24.    
  25.     ' si el recorset está abierto lo cierra
  26.    If rs.State = 1 Then
  27.         rs.Close
  28.     End If
  29.    
  30.     SQL = "SELECT * FROM registro Where " & Campo & " like '" & txtSearch & "%' order by " & OrderByCampo & " " & Orden
  31.     Call FormRegistro.Cargar_Lista(SQL)
  32.     'rs.Open SQL, nc, adOpenStatic, adLockOptimistic
  33. End Sub

probalo...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein