Quiero saber si es correcto el siguiente código para un buscador en Visual Basic

Otra cosilla deu ¿qué pasa aquí?
Public Sub BuscarReg()
On Error GoTo Interrupcion
Dim Reply As String
Dim Actual As String
Dim mensaje As String
Dim NumReg As String
txtnombre(0).SetFocus
Reply = InputBox("Introducir nombre a Buscar o Modificar", "BUSCAR O MODIFICAR MATERIA")
If Reply = "" Then Exit Sub
Actual = "SELECT * FROM Tabladatos WHERE [Materia Activa] ='" & Reply & "'"
If Reply = frmdatos.txtnombre(0).Text Then
Adodc1.Recordset.MoveLast
NumReg = Adodc1.Recordset.RecordCount
Label22.Caption = NumReg
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
txtnombre(0).SetFocus
With frmdatos.Adodc1
frmdatos.Adodc1.RecordSource = Actual
frmdatos.Adodc1.Refresh
End With
End If
If Reply <> frmdatos.txtnombre(0).Text Then
mensaje = MsgBox("Nombre no encontrado-¿desea buscar otro?", vbYesNo + vbQuestion, "BUSCAR O MODIFICAR MATERIA")
If mensaje = vbNo Then Exit Sub
With frmdatos.Adodc1
frmdatos.Adodc1.RecordSource = Actual
frmdatos.Adodc1.Refresh
End With
Call BuscarReg
End If
Exit Sub
Interrupcion:
MsgBox Err.Description
End Sub
Esto funciona así de bien:
1º. Cuando hago la búsqueda, sabiendo que existe el registro.
2º.Me aparece el mensaje "nombre no encontrado.
3º.Y si acepto buscar otro, me aparece el registro que buscaba al principio.
¿El NumReg? Bueno ya sabes, un total de registros actualizado.
¿QUÉ te parece? Una ruina,¡Verdad!
Hasta pronto deu .Gracias Alf

1 Respuesta

Respuesta
1
Bueno la verdad es que hace tiempo que no miro pa Visual Basic, pero, a la hora de decir si encontró o no registros, ¿no seria más sencillo ejecutar la consulta y si el RecordCount del Recorset es 0 decir que no encontró ninguno?
Porque lo que me dices es como si no ejecutaras la consulta después de darle al inputBox, quizás sea por ahí, de todas formas en VB puedes establecer puntos de ruptura, en el menu de debug o algo así, o dándole en la columna gris de la izquierda. Donde este un punto de ruptura, cuando el programa llegue a este se parará, y poniéndote con el cursor encima de las variables y con los Watch(otra opción) sabrás el valor que tienen en ese momento y podrás determinar mejor el error.
Claro, lo he leído de nuevo y ya lo he pillao:
Lo que estas haciendo es que si el texto que se quiere buscar es igual a un texto que tienes en el textbox, lo busca, ¿pero al principio el textbox estará vacío no?
Creo que por ahí van los tiros, no se como que es lo que quieres que haga el programa, pero quizás la solución sea ejecutar la consulta antes de nada y luego comprobar el RecordCount.
Espero que te sea de ayuda, al menos un poco.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas