MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


    Tarifação por faixa de tempo VBA

    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    Tarifação por faixa de tempo VBA Empty Tarifação por faixa de tempo VBA

    Mensagem  vinicius.anna 25/2/2016, 14:32

    Bom dia

    Tenho a seguinte situação:

    Tenho uma tabela de preços com 3 faixas de tarifação:
    Exemplo:
    1 - Passeio - Minutos para tarifação 1 - 30 - Valor Tarifação 1: 3,00 - Minutos para tarifação 2 - 60 Valor para tarifação 2 - 5,00 - A cada 15 minutos excedentes R$ 1,00 - Diária: 20,00

    Estou tentando fazer com que, ao clicar no botão sair o sistema calcule as tarifas, porém, estou com dificuldades em obter o resultado devido....

    Se os minutos decorridos forem menor que tmp1Mov (30 minutos)
    O valor a receber será apenas a val_tmp1Mov = R$ 3,00
    Se os minutos decorridos estiverem entre 31 e 60 (tmp2Mov)
    O valor a receber será apenas a val_tmp2Mov = R$ 5,00
    Se os minutos transcorridos forem maior que 60, a cada tmp3Mov (intervalo de 15 minutos) soma a val_tmp3Mov (R$ 1,00) no valor a receber (5,00)

    Alguém tem alguma dica de como posso fazê-lo

    O código que estou a tentar usar é:
    Código:

    Private Sub btEncerrar_Click()
    Dim strHora As Double 'Hora(s) de Permanência
    Dim strMin As Double 'Minuto(s) de Permanência
    Dim strValorCobrar As Currency 'Valor a receber

    strValorCobrar = 0

    'Explicação:
    'Estes valores são buscados da tabela de preços previamente cadastrada e quando ele selecionar na tela a tabela
    'tmp1Mov = 30 minutos
    'val_tmp1Mov = R$ 3,00
    'tmp2Mov = 60 minutos
    'val_tmp2Mov = R$ 5,00
    'tmp3Mov = 15 minutos
    'val_tmp3Mov = R$ 1,00
    'diariaMov = R$ 20,00

    If IsNull(Me!dtSaída) = True Then
            Me!dtSaída = Date 'Aqui atribuo a data de saída conforme relógio da máquina
            Me!Horafim = Time 'Aqui atribuo a hora de saída conforme relógio da máquina
        Else
            DoCmd.RunCommand acCmdSaveRecord
        End If

    strHora = DateDiff("h", Horainicio, Horafim) 'Variável que recebe a permanência em horas
    strMin = DateDiff("n", Horainicio, Horafim) 'Variável que recebe a permanência em minutos

    Select Case strMin
        Case Is >= tmp1Mov
            MsgBox "Menor ou igual a tmp1mov 30 minutos"
            MsgBox "Minutos transcorridos - tmp1Mov = " & strMin - tmp1Mov, vbInformation, "Aviso"
            strValorCobrar = val_tmp1Mov
        Case Is <= tmp2Mov
            MsgBox "Maior ou igual a tmp2mov 60 minutos"
            MsgBox "Minutos transcorridos - tmp2Mov = " & strMin - tmp2Mov, vbInformation, "Aviso"
            strValorCobrar = val_tmp2Mov
     End Select
           
            Me!valReceber = strValorCobrar

    End Sub


    Att.
    Vinicius

      Data/hora atual: 8/11/2024, 12:04