Hola,
Le estoy dando mil vueltas a esto y no consigo pasarle parámetros a un stored procedure que tengo en base de datos y tampoco consigo recoger el valor que me devuelve.
este es el stored:
Código sql:
Ver originalALTER PROCEDURE [dbo].[HORAS_PROGRAMACION]
@IDTARE AS INTEGER
AS
SELECT 'Hrs' = SUM(HOR_PACT) FROM FSGA_PACT WITH(NOLOCK)
INNER JOIN ( SELECT
FSGA_TRUS.ID_EMPR , FSGA_TRUS.ID_CLNT, FSGA_TRUS.ID_PROY, FSGA_TRUS.ID_TARE, FSGA_TRUS.ID_USUA
FROM FSGA_TRUS WITH(NOLOCK)
INNER JOIN FSGA_CATU WITH(NOLOCK)
ON FSGA_TRUS.ID_EMPR = FSGA_CATU.ID_EMPR
AND FSGA_TRUS.ID_AREA = FSGA_CATU.ID_AREA
AND FSGA_TRUS.ID_CATU = FSGA_CATU.ID_CATU
WHERE COD_CATU IN ('TCINS','TCINJ','TCBIS','TCBIJ','PSDES','PJDES')
) P
ON FSGA_PACT.ID_EMPR = P.ID_EMPR AND FSGA_PACT.ID_CLNT = P.ID_CLNT AND FSGA_PACT.ID_PROY = P.ID_PROY
AND FSGA_PACT.ID_TARE = P.ID_TARE WHERE ID_AREA IN (2,5,6,7,8,9,102)
AND ( FSGA_PACT.ID_USUA NOT IN ( SELECT ID_USUA
FROM FSGA_USCT WITH(NOLOCK) INNER JOIN FSGA_CATU WITH(NOLOCK) ON FSGA_USCT.ID_EMPR = FSGA_CATU.ID_EMPR
AND FSGA_USCT.ID_AREA = FSGA_CATU.ID_AREA AND FSGA_USCT.ID_CATU = FSGA_CATU.ID_CATU
WHERE COD_CATU IN ('GEDES','RSBIS','RSPRD','SUINT','GEDES','RSBIS','GEDES','SUPRG')
AND FFIN_USCT IS NULL)
OR FSGA_PACT.ID_USUA = P.ID_USUA
)
AND NOT (fsga_pact.id_tptr = 17 AND fsga_pact.id_area = 2)
AND NOT (fsga_pact.id_tptr = 16 AND fsga_pact.id_area = 5)
AND NOT (fsga_pact.id_tptr = 8 AND fsga_pact.id_area = 102)
AND NOT (fsga_pact.id_tptr = 1 AND fsga_pact.id_area = 107)
AND FSGA_PACT.ID_TARE = @IDTARE
Y esto es lo que hago desde una macro de excel pero no consigo paserle ni el parámetro ni recoger el valor:
Código vba:
Ver originalSet cmd = New ADODB.Command
cmd.CommandText = "HORAS_PROGRAMACION"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = adoconn
Set prm = cmd.CreateParameter("@IDTARE", adInteger, adParamInput)
cmd.Parameters.Append prm
cmd.Parameters(1).Value = idTare
'Execute the Stored Procedure
Set Rst = cmd.Execute
If Not Rst.EOF Then
' Update Real Hours
sheetx.Range("V" & ActiveCell.Row).Value = Rst
txtProg.Value = Rst
'MsgBox "Horas imputadas a la tarea: " & adores(0).Value, vbInformation
Else
sheetx.Range("V" & ActiveCell.Row).Value = 0
txtProg.Value = 0
MsgBox "¡No existen horas imputadas a la tarea!", vbExclamation
End If
alguien puede ayudarme? me estoy volviendo loca!!!