Access - ¿Como se ejecuta un procedimiento almacenado?

 
Vista:

¿Como se ejecuta un procedimiento almacenado?

Publicado por Miguel Angel (30 intervenciones) el 17/11/2000 00:00:00
Me sería de gran ayuda si alguien me explicase como ejecuto desde un módulo un procedimiento almacenado con parámetro de entrada (coge el dato de un formulario) y con un parámetro de salida.

Este es el Procedimiento:
Create Procedure calculo_nomina
@p_control char(7) = [form]![F_plantilla].[Control],*/ esto no me permite hacerlo ¿como lo hago?/*
@total int output
As
(SELECT @total = (Complementos.Importe + Nivel.Importe + Grupos.Importe)
FROM Plantilla INNER JOIN Complementos ON
Plantilla.Complemento = Complementos.ID_Complemento INNER JOIN Grupos ON
Plantilla.Tipo = Grupos.Tipo INNER JOIN Personal INNER JOIN Nivel ON
Personal.Nivel_Empleado = Nivel.Id_Nivel ON
Grupos.Id_Grupo = Personal.Grupo_Empleado AND Plantilla.Control = Personal.Control
WHERE Personal.Control = @p_control
___________________________________________
y el código:
Public Function calcular() As Integer

Dim C_Plantilla As ADODB.Connection
Dim cmd_Plantilla As ADODB.Command
Dim prm_Plantilla As ADODB.Parameter


´abre la conexión
Set C_Plantilla = New ADODB.Connection
C_Plantilla.ConnectionString = "Plantilla;MMejias;MAM;"
C_Plantilla.Open
C_Plantilla.CursorLocation = adUseClient
Select Case C_Plantilla.State
Case adStateClosed
Abreplantilla = False
Case adStateOpen
Abreplantilla = True
End Select
MsgBox Abreplantilla

´Abre el objeto Command con el parámetro
Set cmd_Plantilla = New ADODB.Command
cmd_Plantilla.CommandText = "calcul
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

¿Como se ejecuta un procedimiento almacenado?

Publicado por Alejandro (4142 intervenciones) el 14/04/2023 00:44:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Public Function calcular() As Integer
 
Dim C_Plantilla As ADODB.Connection
Dim cmd_Plantilla As ADODB.Command
Dim prm_Plantilla As ADODB.Parameter
 
 
´abre la conexión
Set C_Plantilla = New ADODB.Connection
C_Plantilla.ConnectionString = "Plantilla;MMejias;MAM;"
C_Plantilla.Open
C_Plantilla.CursorLocation = adUseClient
Select Case C_Plantilla.State
Case adStateClosed
Abreplantilla = False
Case adStateOpen
Abreplantilla = True
End Select
MsgBox Abreplantilla
 
´Abre el objeto Command con el parámetro
Set cmd_Plantilla = New ADODB.Command
cmd_Plantilla.CommandText = "calculo_nomina"
cmd_Plantilla.CommandType = adCmdStoredProc
cmd_Plantilla.ActiveConnection = C_Plantilla
 
´Agrega el parámetro de entrada
Set prm_Plantilla = cmd_Plantilla.CreateParameter("@p_control", adVarChar, adParamInput, 7, "valor_del_formulario")
cmd_Plantilla.Parameters.Append prm_Plantilla
 
´Agrega el parámetro de salida
Set prm_Plantilla = cmd_Plantilla.CreateParameter("@total", adInteger, adParamOutput)
cmd_Plantilla.Parameters.Append prm_Plantilla
 
´Ejecuta el procedimiento almacenado
cmd_Plantilla.Execute
 
´Lee el valor del parámetro de salida
calcular = cmd_Plantilla.Parameters("@total").Value
 
´Cierra la conexión
C_Plantilla.Close
Set C_Plantilla = Nothing
 
End Function

En este código, el parámetro de entrada "@p_control" se define con el valor "valor_del_formulario" que debe ser reemplazado con el valor real que se obtiene del formulario. El parámetro de salida "@total" se define como adParamOutput y se lee al final del código para obtener el valor calculado por el procedimiento almacenado. Asegúrate de modificar la cadena de conexión y los nombres de los objetos según corresponda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar