elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  DAO y SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: DAO y SQL  (Leído 2,323 veces)
mdg

Desconectado Desconectado

Mensajes: 73


Ver Perfil
DAO y SQL
« en: 4 Febrero 2009, 05:28 am »

Buenas amigos espero puedan ayudarme.

Resulta que tengo un formulario con el cual intento filtrar ciertos registros, el asunto es que al intentar utilizar el LIKE con el comodin % para que a medida que escribo el criterio valla filtrando las conincidencias no me funciona y con ADO si funcion, tengo entendido que con dao es otro caracter de comodin o que se utiliza de otra forma. aqui les dejo lo que tengo. gracias por todo.


PD: lo que pretendo es que al buscar apellido GONZALES al escribir G o GO o GON etc, me vaya filtrando los registros que coincidan con lo que voy escribiendo.



Public Sub Filtrar()


On Error GoTo Hay_err_err

Dim Item As ListItem
Dim Campo, OrderByCampo, Orden As String

Form2.ListView1.ListItems.Clear

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 = "afiliado"
    ElseIf Combo1.ListIndex = 1 Then
        Campo = "Nombres"
    ElseIf Combo1.ListIndex = 2 Then
        Campo = "Apellidos"
    End If
   
    Select Case Combo2.ListIndex
        Case 0: OrderByCampo = "afiliado"
        Case 1: OrderByCampo = "Nombres"
        Case 2: OrderByCampo = "Apellidos"
        Case 3: OrderByCampo = "Fecha_afiliacion"
    End Select

    'If CmdOrdenar(0).Value Then Orden = "asc"
    'If CmdOrdenar(1).Value Then Orden = "desc"
   
Dbpath = App.Path & "\" & DirectorioBase & "\" & Db_A_Name
       
    strSQL = "SELECT * FROM tbl_afiliados Where " & _
                         Campo & " like '" & txtSearch & "'% order by " & OrderByCampo & " " & Orden
                       
       
        Set Db = DBEngine.OpenDatabase(Dbpath, False, False, ";pwd=" & StrPass)
       
        Set Rst = Db.OpenRecordset(strSQL)
       

   
   
    'Recorre todos los registro para añadirlos al ListView
         While Not Rst.EOF
       
          Set Item = Form2.ListView1.ListItems.Add(, , Rst!afiliado)
           Item.SubItems(1) = Rst!apellidos
           Item.SubItems(2) = Rst!nombres
           Item.SubItems(3) = Rst!empresa
           Item.SubItems(4) = Rst!linea
           
            Rst.MoveNext
       
        Wend
       
Hay_err_exit:
   
 Rst.Close
 Db.Close
 
 Set Rst = Nothing
 Set Db = Nothing
 
Hay_err_err:
   
 Select Case Err.Number
 
 Case 3024
 
            MsgBox "Es imposible encontrar la base de datos. " & vbCrLf & vbCrLf & "Verifique que exista o que se encuentre en la ruta:" & App.Path & "\bases" & "  e intente nuevamente", vbInformation + vbOKOnly, "Aviso!"
            Resume Hay_err_exit:
           
 Case 3078
            MsgBox "Es imposible encontrar la tabla: " & vbCrLf & vbCrLf & "Verifique que exista o que se encuentre en la base de datos" & "Base_Actual.mdb" & "e intente nuevamente", vbInformation + vbOKOnly, "Aviso!"
            Resume Hay_err_exit:

   End Select
End Sub


En línea

Angeldj27

Desconectado Desconectado

Mensajes: 199


Ahorra Agua... Beba Cerveza


Ver Perfil
Re: DAO y SQL
« Respuesta #1 en: 4 Febrero 2009, 14:12 pm »

Creo que te falta un comodin despues de like

Código:
Campo like '%GON%' order by Campo


Haci es que debe quedar creo ese es el recordsorce que visualice de un ado pero en esencia es lo mismo osea

Código:
    SQL = "%" & Trim(txtSearch.Text) & "%"
    "SELECT * From tbl_afiliados WHERE " & Campo  & " like '" & Trim(SQL) & "' order by " & OrderByCampo & " " & Orden


Chekate hay si funciona no tengo vb en esta pc pero creo que debe funcionar asi talves te sirva de algo

Saludos...


En línea



"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!
ssccaann43 ©


Desconectado Desconectado

Mensajes: 792


¬¬


Ver Perfil
Re: DAO y SQL
« Respuesta #2 en: 4 Febrero 2009, 14:46 pm »

Código
  1. 'Query
  2. strSQL = "SELECT * FROM tbl_afiliados WHERE Campo LIKE '" & txtSearch & "%' Order by Campo;"
  3.  

Esa es la instrucción SQL correcta. Luego de hacerlo, pues limpias todos los registro del listview y lo cargas nuevamente pasandole esa instrucción, q por cierto lo debes colocar en el objeto txtSearch en el evento Change

De esa manera funcionará. Saludos
« Última modificación: 4 Febrero 2009, 14:48 pm por ssccaann43 » En línea

- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"
Angeldj27

Desconectado Desconectado

Mensajes: 199


Ahorra Agua... Beba Cerveza


Ver Perfil
Re: DAO y SQL
« Respuesta #3 en: 4 Febrero 2009, 17:10 pm »

Citar
Esa es la instrucción SQL correcta.

claro que el comdin de adelante se puede omitir pero yo siempre lo pongo o lo utilizo pork me abia dado ciertos errores en diversos momentos cuando lo omitia anteriormente y por eso me he acostumbrado a utilizarlos.

Saludos...
En línea



"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!
mdg

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Re: DAO y SQL
« Respuesta #4 en: 4 Febrero 2009, 18:42 pm »

Hola de nuevo, gracias por las respuestas pero no ha resultado, todas las sugerencias que me dieron funcionan en ADO pero no con DAO, lamentablemente tengo mi codigo adaptado a esta forma de trabajo y se me hace muy dificil cambiarlo. probe lo seiguiente:

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

Pero sigue sin funcionar, yo no recuerdo bien pero estoy seguro de que se utilizaba de otra manera o sin comillas o no recuerdo la combinacion pero era distinto con DAO, gracias y espero mas sugerencaias.
En línea

Angeldj27

Desconectado Desconectado

Mensajes: 199


Ahorra Agua... Beba Cerveza


Ver Perfil
Re: DAO y SQL
« Respuesta #5 en: 4 Febrero 2009, 21:05 pm »

Bueno creo k tu problema es esta parte parece que no chekaste los code que te hemos dejado pero bueno...

Código
  1. txtSearch & "'% order by " &
  2.  

este deberia ser haci

Código
  1. & txtSearch & "%' Order by " &
  2.  

Antes de la comilla simple va el comodin no despues y en todo caso la instruccion sql debe funcionarte sea ado o dao o como kieras usarla..

Saludos...
En línea



"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines