Error: Registro NO existe, Desea corregir. VBA access
Por un momento creí que ya había solucionado por mi cuenta esta situación. Haber me explico en consultas anteriores me ayudaron con el tratamiento de un error de libro prestado, que por cierto quedó excelente. Bien luego quise, que si el usuario escribe un código de libro que no existe en la base de datos, que se le avise si desea corregir inmediatamente o sale del formulario. Eso lo quise hacer con un tratamiento de error13 dado a que access por default tira ese error cuando se escribe un dato incorrecto. Veo que no me resulta porque ahora que pruebo con un código normal que sí existe me tira el mensaje como que si no existe. Me huele que no estaba allí la solución. Me puede algún experto darme una manito con esto desde ya muchísimas gracias por la ayuda!
Private Sub TexCodLib_AfterUpdate()
Dim DisponL As Boolean
Dim rst As Recordset
Dim Client As String
Dim miSQL As String
On Error GoTo TratarError13
DisponL = Nz(DLookup("Disponible", "02LIBROS", "[CodLib]='" & Me.CodLib & "'"), "")
If DisponL = False Then
miSQL = "SELECT [06CLIENTES].Carnet, [06CLIENTES]![Nombres] & "" "" & [06CLIENTES]![Apellidos] AS CLIENTE FROM (06CLIENTES INNER JOIN (02LIBROS RIGHT JOIN 11VALES_PRÉSTAMO ON [02LIBROS].CodLib = [11VALES_PRÉSTAMO].CodLib) ON [06CLIENTES].Carnet = [11VALES_PRÉSTAMO].Carnet) LEFT JOIN 12DEVOLUCIONES ON [11VALES_PRÉSTAMO].ValeNo = [12DEVOLUCIONES].ValeNo GROUP BY [11VALES_PRÉSTAMO].ValeNo, [11VALES_PRÉSTAMO].CodLib, [02LIBROS].Libro, [06CLIENTES].Carnet, [06CLIENTES]![Nombres] & "" "" & [06CLIENTES]![Apellidos], [12DEVOLUCIONES].DescargoNo HAVING ((([11VALES_PRÉSTAMO].ValeNo)=IIf(IsNull([12DEVOLUCIONES]![DescargoNo]),[11VALES_PRÉSTAMO]![ValeNo],(0))) AND (([11VALES_PRÉSTAMO].CodLib)='" & Me.TexCodLib & "'));"
Set rst = CurrentDb.OpenRecordset(miSQL, dbOpenDynaset)
MsgBox "Los registros muestran que este libro lo tiene prestado: " & vbCrLf & "'" & rst("Cliente") & "'" & vbCrLf & "con Carné No." & rst("Carnet"), vbCritical, "ERROR, LIBRO NO DISPONIBLE"
rst.Close
Set rst = Nothing
Me.Undo
Me.FechaV.SetFocus
Else
TxtCodLib = Nz(DLookup("Libro", "02LIBROS", "[CodLib]='" & Me.CodLib & "'"), "")
TratarError13:
If MsgBox("Por favor rectifique; este Código no existe en los registros." _
& " Quiere salir del formulario para darle Ingreso al Libro, click en SI. " _
& " O click en NO para no salir y corregir en este momento lo que escribió.", vbCritical + vbYesNo, "Código Inexistente") = vbNo Then
Cancel = True
Me.Undo
Me.FechaV.SetFocus
Me.TxtLibro = TxtCodLib
TexCodEq.Enabled = False
TxtEquipo.Enabled = False
Else
DoCmd.Close acForm, "EJECUTAR PRÉSTAMO"
End If
End If
End Sub