Dividir parte inteira de fraccionaria em VBA

milo0p

Power Member
Viva!!

Estou com um problema numa BD que estou a realizar, ao passar os parâmetros para a stored procedure pelo Access (VBA), passa-se o seguinte:

O SQL recebe os parâmetros de entrada divididos por virgulas, e o Access ao mandar o valor total de uma conta por exemplo 123,12 o SQL entende isso como 2 parâmetros.

Parâmetros de entrada do SQL:

ALTER PROC db_owner.PagamentoDocumento



@DataPagamento datetime,
@ValorPagar money,
@Observações Nvarchar(100),
@TipoPagamento Nvarchar(30),
@NumeroTransferencia int,
@Ordem Nvarchar(150),
@NumeroCheque int,
@IDConta int,
@IDCaixa int,
@RefIDEntidade int

Linha de VBA que chama o Proc:

strSQL = "exec PagamentoDocumento" & "' " & Me.DataPagamento.Value & "', " & Me.ValorTotal.Value & ",'" & Me.Observação.Value & "','" & Me.TipoPagamento.Value & "'," & Me.NumTransferência.Value & ",'" & Me.Ordem.Value & "'," & Me.NumCheque.Value & "," & Me.IDConta.Value & "," & Me.IDCaixa.Value & "," & Me.RefIDEntidade.Value

O que acontece ao utilizar um valor com cêntimos ele dá erra a dizer que estou a passar parâmetros a mais.

Ora bem para tratar disto estava a pensar em dividir o número em parte inteira e fraccionária, e passar os valor como parâmetros independentes e dentro do SQL samar as duas partes novamente, se souberem como fazer isso... apitem, ou outra maneira.

Portem-se.
 
Boas!!"
em sql não se pode passar " como string, mas sim com '. Os valores são passados normalmente e as data com # . Assim fica (verifica... não sei se é o problema):
strSQL = "exec PagamentoDocumento #" & " & Me.DataPagamento & "#, " & Me.ValorTotal.Value & ",'" & Me.Observação & "','" & Me.TipoPagamento & "', " & Me.NumTransferência " & ", '" & Me.Ordem.Value & "'," & Me.NumCheque & "," & Me.IDConta.Value & "," & Me.IDCaixa.Value & "," & Me.RefIDEntidade.Value
 
Back
Topo