Gabriel Cabral Postado Abril 19, 2007 Denunciar Share Postado Abril 19, 2007 Olá pessoal,eu tenho um campo em um formulario com o valor 05:00 (05h00min)e em outro formulario, eu qro cadastrar a duração do atendimento a cada cliente.como uso o TimeSerial() nesse caso??como devo fazer pra subtrair um campo de um formulario por um campo d outro formulario???colocarei aqui parte do codigo pra vocês avaliarem o que fiz e o que está errado...Private Sub cmdGravar_Click()Dim descontarhora As IntegerDim descontarminuto As Integerdescontarhora = Hour(mkeTempo.Text)descontarminuto = Minute(mkeTempo.Text)cmdIncluir.Enabled = TruecmdGravar.Enabled = FalsemkeData.Enabled = FalsemkeTempo.Enabled = FalsecboCliente.Enabled = FalseDadosAtendimentos.Recordset.Fields("Data") = mkeDataDadosAtendimentos.Recordset.Fields("Tempo") = TimeSerial(Hour(mkeTempo.Text), Minute(mkeTempo.Text), 0)DadosAtendimentos.Recordset.Fields("Cliente") = cboCliente.TextDadosAtendimentos.Recordset.UpdateClientes.Recordset.FindFirst "NomeFantasia = '" & cboCliente.Text & "'"If Clientes.Recordset.NoMatch = False ThenIf IsNull(Clientes.Recordset.Fields("TempoDisp")) = False ThenClientes.Recordset.EditClientes.Recordset.Fields("TempoDisp") = TimeSerial(Hour(Clientes.Recordset.Fields("TempoDisp")) - descontarhora, Minute(Clientes.Recordset.Fields("TempDisp")) - descontarminuto, 0)Clientes.Recordset.UpdateMsgBox "Este cliente possui " & Clientes.Recordset.Fields("TempoDisp") & " disponíveis para atendimento este mês."Clientes.RefreshDadosAtendimentos.RefreshEnd IfEnd IfEnd SubObrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Abril 20, 2007 Denunciar Share Postado Abril 20, 2007 Por que você não trabalha só com minutos? Seria muito mais simples, não acha?Public Function ParaTempo(ByVal minutos As Integer) As String ParaTempo = TimeSerial(0, minutos, 0) End Function tempo = 120 MsgBox ParaTempo(tempo) MsgBox ParaTempo(tempo + 15) MsgBox ParaTempo(tempo - 75)Outra coisa: é desperdício e mais trabalhoso você guardar o tempo restante de atendimento do cliente. Imagine que o usuário cadastre o tempo errado? Quando ele consertar o erro, você vai ter que consertar o tempo disponível do cliente. Ou imagine que ele cadastrou o tempo no cliente errado? Ele vai ter que mudar o cliente, certo? Aí você vai ter que consertar o tempo restante nos dois clientes (tirando de um e colocando no outro). Não é bem mais simples criar uma função que some quanto o cliente já usou naquele mês e subtraia esse total de 5h para saber o restante?Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Abril 20, 2007 Autor Denunciar Share Postado Abril 20, 2007 mas é que pro usuario, seria melhor trabalhar com o tempo em horas e minutos...pois tem muita gnt que se confunde ao usar apenas minutos... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gabriel Cabral
Olá pessoal,
eu tenho um campo em um formulario com o valor 05:00 (05h00min)
e em outro formulario, eu qro cadastrar a duração do atendimento a cada cliente.
como uso o TimeSerial() nesse caso??
como devo fazer pra subtrair um campo de um formulario por um campo d outro formulario???
colocarei aqui parte do codigo pra vocês avaliarem o que fiz e o que está errado...
Private Sub cmdGravar_Click()
Dim descontarhora As Integer
Dim descontarminuto As Integer
descontarhora = Hour(mkeTempo.Text)
descontarminuto = Minute(mkeTempo.Text)
cmdIncluir.Enabled = True
cmdGravar.Enabled = False
mkeData.Enabled = False
mkeTempo.Enabled = False
cboCliente.Enabled = False
DadosAtendimentos.Recordset.Fields("Data") = mkeData
DadosAtendimentos.Recordset.Fields("Tempo") = TimeSerial(Hour(mkeTempo.Text), Minute(mkeTempo.Text), 0)
DadosAtendimentos.Recordset.Fields("Cliente") = cboCliente.Text
DadosAtendimentos.Recordset.Update
Clientes.Recordset.FindFirst "NomeFantasia = '" & cboCliente.Text & "'"
If Clientes.Recordset.NoMatch = False Then
If IsNull(Clientes.Recordset.Fields("TempoDisp")) = False Then
Clientes.Recordset.Edit
Clientes.Recordset.Fields("TempoDisp") = TimeSerial(Hour(Clientes.Recordset.Fields("TempoDisp")) - descontarhora, Minute(Clientes.Recordset.Fields("TempDisp")) - descontarminuto, 0)
Clientes.Recordset.Update
MsgBox "Este cliente possui " & Clientes.Recordset.Fields("TempoDisp") & " disponíveis para atendimento este mês."
Clientes.Refresh
DadosAtendimentos.Refresh
End If
End If
End Sub
Obrigado
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.