Hello to all.
I have this piece of code which keeps on returning "Parameter ?_1 has no default value" error message when i try to read the recordset.
Can someone please give some clue on what can i be dong wrong?
Public Const BDados As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\10.172.2.46\Finance2\Dados\SAP_BALANCES_FY.accdb"
Public Function GetFYBal(p1 As Range, p2 As Range) As Double
On Error GoTo erro
Dim aux As String
Dim cnt As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ccmd As New ADODB.Command
Dim PA1 As New ADODB.Parameter, PA2 As New ADODB.Parameter
cnt.Open BDados
ccmd.ActiveConnection = cnt
ccmd.CommandText = "SELECT SUM(YTD_BALANCE_DR - YTD_BALANCE_CR) FROM BALANCETES WHERE CONTA=? AND PER_SAP=?"
ccmd.CommandType = adCmdText
Set PA1 = ccmd.CreateParameter("first", adChar, adParamInput, p1.Value)
Set PA2 = ccmd.CreateParameter("second", adChar, adParamInput, p2.Value)
ccmd.Parameters.Append PA1
ccmd.Parameters.Append PA2
Set rst = ccmd.Execute
GetFYBal = rst.Fields(0).Value
rst.Close
Set rst = Nothing
cnt.Close
Set cnt = Nothing
erro: aux = MsgBox(CStr(Err.Number) & ":" & Err.Description, vbOKOnly, "ERRO - " & Err.Source) '
End Function
Many thanks in advance for any kind help.
Octavio
Bookmarks