¿Procedimiento para guardar datos en tabla de access?

¿En access se pueden hacer procedimientos almacenados?

Lo que quiero es que desde un botón de mi formulario access poder llamar al procedimiento para guardar los datos en la tabla, me gustaría tener la menor cantidad de código VBA detrás del formulario.

He visto que access tiene la opción de agregar Módulo, Módulo de clase y Procedimiento pero aun no entiendo si eso se pueden utilizar para lo que quiero.

Actualmente para guardar, ubico todo el código en el botón, donde están las validaciones y el registro en la tabla de la siguiente forma:

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl_Nombramientos")
    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_identificacion) Then
        msg = msg & "Identificación."
        MsgBox msg, estilo, title
        Me.txt_identificacion.SetFocus
        Exit Sub
    End If 
rs.AddNew
rs!Identificacion = "" & txt_identificacion
rs!Fecha_Inicio_Nombramiento = "" & txt_rige_desde
rs!Fecha_Fin_nombramiento = "" & txt_rige_hast
rs.Update
rs.Close
Set rs = Nothing
db.Close
MsgBox "Los datos se ingresaron satisfactoriamente", vbInformation, "Datos"

Mi idea es trasladar todo ese código fuera del formulario y hacer el llamado desde un botón como lo mencione anteriormente!

Si alguien sabe si es posible y me pueda dar un pequeño ejemplo de como guardar los datos de un formulario a una tabla utilizando algo similar a un procedimiento almacenado se lo agradecería

Respuesta
2

En Access no existen los procedimientos almacenados, a diferencia de SQLServer. Sí es posible usar desde Access procedimientos almacenados de SQLServer, si los datos que maneja Access los toma de SQLServer (que no es el caso)

Sí puedes "sacar" el código del módulo asociado al formulario y ponerlo en un módulo independiente, pero has de tener en cuenta un par de cosas:

1º/ El procedimiento (o función) has de declararlo como Public, para que sea accesible desde el formulario.

2º/ No puedes usar "Me." para hacer referencia a los controles del formulario, porque ya no estás en el formulario. Habrás de usar Form("NombreFormulario"), Form! NombreFormulario... o cualquier otra sintaxis válida.

Para el código que pones, a menos que vayas a usar el mismo código para validar datos en varios formularios, no te merece la pena hacerlo en un módulo independiente. No vas a notar ninguna mejora en la ejecución, y si no vas con cuidado con lo que te indicaba antes, es probable que te salte algún error.

Un saludo.


bit.ly/NkSvAcademy   /    bit.ly/ForoNkSv 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas