MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Fazer o access falar centavos

    Compartilhe

    Rosalvo Risso
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 21/05/2015

    [Resolvido]Fazer o access falar centavos

    Mensagem  Rosalvo Risso em 26/4/2018, 21:31

    Oi gente tô eu aqui novamente com dúvidas sobre o mesmo assunto que postei meses atrás. Preciso que o access fale o valor total de uma compra.
    O código do Mestre João Paulo que usei me diz somente o valor arrendondado e se tiver centavos ele diz assim, ex: R$ 35,20 - "trinta e cinco vírgula vinte reais". Abaixo o código usado. Muito obrigado a todos.

    FazerFalar ((Me.TextoTotal) & " " & "Reais")

    Resolvido:

    Primeiro: CRIAR O MÓDULO

    Option Compare Database

    Meste João Paulo
    Option Explicit
    Public Function FazerFalar(str As String)
    Dim objVo As Object
    Set objVo = CreateObject("SAPI.SpVoice")
    objVo.Speak str
    End Function

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    CassioFabre -

    Depois colocar no evento ao clicar de um botão o seguitente código:

    Private Sub Botão_Click()

    Dim s
    Dim str As String
    Dim numero As String

    "Onde 'TextoTotal' é o campo que será lido e deve ter o formato determinado como PADRÃO e não como moeda."

    TextoTotal.SetFocus
    numero = TextoTotal.Text

    s = Split(numero, ",")

    'aqui eu monto a string apenas nos reais
    If s(0) = 1 Then
    str = s(0) & " real"
    ElseIf s(0) > 1 Then
    str = s(0) & " reais"
    End If


    If s(1) <> "00" Then
    If str <> vbNullString Then str = str & " e "

    'agora vou montar os centavos
    If Len(s(1)) = 1 Then
    str = str & s(1) & 0 & " centavos"
    ElseIf s(1) = 1 Then
    str = str & Right(s(1), 1) & " centavo"
    ElseIf s(1) < 10 Then
    str = str & Right(s(1), 1) & " centavos"
    ElseIf s(1) > 9 Then
    str = str & s(1) & " centavos"
    End If
    End If

    'agora é só fazer falar
    FazerFalar (str)

    End Sub


    Última edição por Rosalvo Risso em 14/5/2018, 04:18, editado 1 vez(es)
    avatar
    CassioFabre
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 728
    Registrado : 18/01/2013

    Re: [Resolvido]Fazer o access falar centavos

    Mensagem  CassioFabre em 27/4/2018, 13:12

    Bom dia,

    É simples, separe os centavos dos reais. Você pode fazer isso usando a função Split(), utilizando a vírgula como separador. Ficaria algo assim:
    Código:
    Dim s

    s = Split(Me.TextoTotal, ",")

    FazerFalar(s(0) & " " & "Reais" & " e " & s(1) & "Centavos")

    Onde s(0) se refere ao trecho antes da vírgula (os reais) e s(1) se refere ao trecho posterior. Aí você faria as verificações caso nao houvessem centavos, etc etc...

    Abraço.


    .................................................................................
    Só não tem código pra morte!

    Rosalvo Risso
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 21/05/2015

    Fazer o access falar centavos

    Mensagem  Rosalvo Risso em 27/4/2018, 13:31

    funcionou perfeitamente Cassio!
    Muito obrigado! Grande abraço!

    Rosalvo Risso
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 66
    Registrado : 21/05/2015

    Fazer o access falar centavos

    Mensagem  Rosalvo Risso em 27/4/2018, 13:33

    obrigado a todos!

      Data/hora atual: 20/7/2018, 15:49