Error al Guardar Datos en tabla Access

Otra consulta, tengo en mi formulario el botón Guardar, me valida que los campos estén llenos antes de guardarlos, y si lo están este los guarda y me imprime un comprobante del registro que acabamos de ingresar. Ya luego se muestra en el Cuadro de lista cada uno de los registros que ingresan. Todo lo hace bien, solo que en algunos casos me imprime el comprobante pero no me guarda los datos y no se que sera lo que provoca esta situación.

Este seria el código por si alguien lo puede revisar y me pueden ayudar:

Private Sub BtnGuardar_Click()

Dim msg As String, estilo, title As String
estilo = vbCritical + vbOKOnly
title = "Error en la inserción por falta de datos"
Msg = "No se han podido crear los registros solicitados por no existir ninguna entrada en el campo "
If IsNull(Me.txt_Num_Identificacion) Then
msg = msg & "Identificación."
MsgBox msg, estilo, title
Me.txt_Num_Identificacion.SetFocus
Exit Sub
End If
If IsNull(Me.txt_NOMBRE_COMPLETO) Then
msg = msg & "No has buscado al Paciente."
MsgBox msg, estilo, title
Exit Sub
End If
'Abre informe
DoCmd.OpenReport "Nombre del Informe", acPreview
'Cierra informe
DoCmd.Close acReport, "Nombre del Informe", acSaveNo

On Error Resume Next ' omite mensajes de error de access
DoCmd.RunCommand acCmdSaveRecord

Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("Nombre Tabla")

rs.AddNew

rs!Num_Identificacion = " " & txt_Num_Identificacion
rs!Paciente = " " & txt_NOMBRE_COMPLETO
rs!Observaciones = "" & txtObservaciones

rs.Update

rs.Close
db.Close

MsgBox "Los datos se ingresaron satisfactoriamente", vbInformation, "Datos"

Forms!NombredelFormulario.Refresh
' para marcar la ultima fila cuadro
Me.NombreCuadro = Me.NombreCuadro.ItemData(Me.NombreCuadro.ListCount - 1)
Me.NombreCuadro.Selected(Me.NombreCuadro.ListCount - 1) = True ' para marcar la ultima fila
'Limpiar campos
txt_Num_Identificacion.SetFocus
txt_Num_Identificacion = Null
txtObservaciones = Null
txt_NOMBRE_COMPLETO = Null
txt_Num_Identificacion.SetFocus

End Sub

1 respuesta

Respuesta
1

Te recomiendo:

1 limpiar el recordset, sería:

Set rs(si así lo llamas) = nothing (Set rs= nothing)

Esta sentencia tendría que ir luego del rs. Close y antes de cerrar la base (db. Close).

Respecto a los campos del formulario veo que los estás limpiando.

Con este cambio, a primera vista debería solucionarte el problema.

Hola gracias

Una duda la sentencia debe ir :

Set rs (Recordset)= Nothing 

Es que si le pongo Set rs (Recordset)= Nothing me tira el error: Error de compilación El uso de la propiedad no es valido.

Y si pongo Set rs (Recordset)= Nothing (Set rs= nothing)me lo marca todo en rojo y me da Error de Compilación  Se esperaba: fin de la instrucción

Para poder utilizar la sentencia Set rs=Nothing, se deben cumplir algunos requisitos:

1.- Debes utilizar ADO

2.- Para que te reconozca vba ADO debes agregar la librería Microsoft ActiveX Data Objects 6.1 Library (en Referencias).

Cualquier duda avisame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas