Programación General > Visual Basic 6.0 e inferiores

 Busqueda Exacta???

<< < (2/2)

Juanolo:
Hola Neorent!
  Mira, estuve perfeccionando un poco el código que te entregué anteriormente (lo vi con cuidado y me dio vergüenza). Prueba este:


--- Código: Text ---Private Sub TestNeorent()    Dim pRueba As Database    Dim taBla As Recordset    Dim strSQL As String    Dim strPalabrabuscada As String        strPalabrabuscada = &#34;SISTEMA&#34;    Set pRueba = DBEngine.OpenDatabase(&#34;&#092;&#092;obiwan&#092;soporte&#092;inventario06.mdb&#34;)    strSQL = &#34;SELECT * FROM maestra WHERE perfilUsuario like '*&#34; & strPalabrabuscada & &#34;*'&#34;    Set taBla = pRueba.OpenRecordset(strSQL, dbOpenDynaset)        With taBla     If .EOF And .BOF Then   'Si está al comienzo y al final del Recordset al mismo tiempo.        MsgBox &#34;La Palabra nos e encuentra&#34;        GoTo Salida     Else        .MoveLast        .MoveFirst   'Voy al primer y al último registros con el objetivo de contar los registros.                              'Por algún motivo, si no lo hago, DAO no los cuenta bien.        MsgBox &#34;La palabra se encuentra &#34; & .RecordCount & &#34; veces&#34;        'La siguiente rutina recorre el recordset generado mostrando cada uno de los registros que contienen        'la palabra buscada.        Do While Not .EOF            MsgBox &#34;Encontre: &#34; & !PerfilUsuario            .MoveNext        Loop             End IfSalida:     taBla.Close    End With    pRueba.CloseEnd Sub 
Respecto al error que se te produce..., bueno, debí verlo antes, pero ahora he notado lo siguiente:

La comparación (para lo que querías) debía ser 'like' y no '='.
Como buscabas el primer registro que cumpliera la condición, al ir al principio del loop, siempre llegarías al mismo registro. Luego: Era imposible que llegara al final de la tabla; condición para que saliera del loop.
Como yo había modificado tu código original, 'heredé' algunos de esos errores en mi propuesta.
En fin, quien se explica se complica. El error está reparado y el código anterior debería funcionarte sin problemas.

Chau!.. Y suerte!

cpmario:
Es dificíl proponer una rutina sin tener la base de datos original para hacer pruebas, esta otra rutina  debiera funcionar:

--- Código: Text --- Private Sub Contar()    Dim prueba As Database    Dim tabla As Recordset    Dim strSQL As String    Dim strpalabrabuscada As String    Dim cuentasistema As Integer     strpalabrabuscada = &#34;SISTEMA&#34;    Set prueba = DBEngine.OpenDatabase(&#34;&#092;&#092;obiwan&#092;soporte&#092;inventario06.mdb&#34;)    strSQL = &#34;SELECT * FROM maestra where perfilusuario= '*&#34; & strpalabrabuscada & &#34;*'&#34;    Set tabla = prueba.OpenRecordset(strSQL, dbOpenDynaset)        tabla.MoveLast    cuentasistema = tabla.RecordCount    Label31.Caption = cuentasistema    tabla.Close    prueba.CloseEnd Sub  :comp:

neorent:
hey!!! muchisimas gracias a los dos bueno leyendo un poco el codigo que han posteado he podido entender como funciona una instruccion sql  :P  ais que se los agradesco, respecto a los code los dos son lo que necesitaba solo que no sabia como se debia preguntar y aplicar gracias por su ayuda y su tiempo adios.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa