MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Tarifação por faixa de tempo VBA

    Compartilhe

    vinicius.anna
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 168
    Registrado : 28/04/2011

    Tarifação por faixa de tempo VBA

    Mensagem  vinicius.anna em Qui 25 Fev 2016, 11: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: Seg 05 Dez 2016, 13:29