1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dividir parte inteira de fraccionaria em VBA

Discussão em 'Programação' iniciada por milo0p, 21 de Junho de 2007. (Respostas: 2; Visualizações: 1175)

  1. milo0p

    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.
     
  2. K0mA

    K0mA Power Member

    Penso que tens de usar o ponto como separador.

    Replace(Me.ValorTotal.Value , "," , ".")
     
  3. 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
     

Partilhar esta Página