Programación General > Visual Basic 6.0 e inferiores
Busqueda Exacta???
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 = "SISTEMA" Set pRueba = DBEngine.OpenDatabase("\\obiwan\soporte\inventario06.mdb") strSQL = "SELECT * FROM maestra WHERE perfilUsuario like '*" & strPalabrabuscada & "*'" 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 "La Palabra nos e encuentra" 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 "La palabra se encuentra " & .RecordCount & " veces" 'La siguiente rutina recorre el recordset generado mostrando cada uno de los registros que contienen 'la palabra buscada. Do While Not .EOF MsgBox "Encontre: " & !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 = "SISTEMA" Set prueba = DBEngine.OpenDatabase("\\obiwan\soporte\inventario06.mdb") strSQL = "SELECT * FROM maestra where perfilusuario= '*" & strpalabrabuscada & "*'" 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
[*] Página Anterior
Ir a la versión completa