Evilazio 19/6/2011, 22:04
Olá pessoal!
Fiquei sem nete por um tempo mas estou de volta e continuo com problemas, não consigo anexar meu projeto no maximoaccess então vai novamente meu código abaixo:
Private Sub txt_rf_AfterUpdate()
If IsNull(Me.txt_rf.Value) Or (Me.txt_rf.Value = "") Then
MsgBox "O campo RF est?vazio!", vbCritical + vbOKOnly, "Aten玢o!"
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
ElseIf Not IsNumeric(Me.txt_rf.Value) Then
MsgBox "Insira apenas n鷐eros!", vbCritical + vbOKOnly, "Aten玢o!"
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
'********************************************************************************************
'********************************************************************************************
Else
Dim sql As String
Dim Banco As Database
Dim funcionario As Recordset
Dim Controle_ponto As Recordset
sql = "SELECT cd, rf_funcionario, nm_funcionario, foto FROM funcionario WHERE cd=" & txt_rf.Value & ""
Set Banco = CurrentDb
Set funcionario = Banco.OpenRecordset(sql)
If IsNull(DLookup("cd", "funcionario", "cd=" & Me!txt_rf)) Then
MsgBox "Registro n鉶 encontrado !", vbOKOnly + vbCritical, "Aten玢o"
txt_rf.Value = ""
Else
Me.txt_aviso.Visible = True
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = funcionario!nm_funcionario
Me.foto.Visible = True
Me.foto = funcionario!foto
'********************************************************************************************
'********************************************************************************************
If MsgBox("CLICK EM OK OU TECLE ENTER PARA CONFIRMAR!", vbOKCancel, "REGISTRAR PONTO") = vbOK Then
Dim sql2 As String
sql2 = "SELECT cd, entrada1, saida1, entrada2, saida2, data FROM controle_ponto WHERE cd=" & txt_rf.Value & ""
Set Banco = CurrentDb
Set Controle_ponto = Banco.OpenRecordset(sql2)
If IsNull(DLookup("entrada1", "controle_ponto", "cd=" & Me!txt_rf)) Then
DoCmd.SetWarnings False 'desativa a exibi玢o de mensagens do sistema
DoCmd.RunSQL "INSERT INTO controle_ponto(cd,entrada1,data) select " & Me.txt_rf & ",time(),date()"
DoCmd.SetWarnings True 'ativa a exibi玢o de menssagens do sistema
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
ElseIf IsNull(DLookup("saida1", "controle_ponto", "cd=" & Me!txt_rf)) Then
DoCmd.SetWarnings False 'desativa a exibi玢o de mensagens do sistema
DoCmd.RunSQL "UPDATE controle_ponto set saida1= time()where cd= txt_rf and data= date()"
DoCmd.SetWarnings True 'ativa a exibi玢o de menssagens do sistema
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
ElseIf IsNull(DLookup("entrada2", "controle_ponto", "cd=" & Me!txt_rf)) Then
DoCmd.SetWarnings False 'desativa a exibi玢o de mensagens do sistema
DoCmd.RunSQL "UPDATE controle_ponto set entrada2= time()where cd= txt_rf and data= date()"
DoCmd.SetWarnings True 'ativa a exibi玢o de menssagens do sistema
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
ElseIf IsNull(DLookup("saida2", "controle_ponto", "cd=" & Me!txt_rf)) Then
DoCmd.SetWarnings False 'desativa a exibi玢o de mensagens do sistema
DoCmd.RunSQL "UPDATE controle_ponto set saida2= time()where cd= txt_rf and data= date()"
DoCmd.SetWarnings True 'ativa a exibi玢o de menssagens do sistema
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
Else
MsgBox "MARCA钦ES EXCEDIDAS PARA HOJE!", vbExclamation, "ATEN敲O"
Me.txt_rf.Value = Null
Me.txt_aviso.Visible = False
Me.txt_aviso.BorderStyle = 0
Me.txt_aviso.Caption = ""
Me.foto.Visible = False
Me.foto = ""
End If
End If
End If
End If
Set Banco = Nothing
Set funcionario = Nothing
End Sub
Como eu tinha comentado o problema é que não está registrando o próximo dia, então eu pensei, talvez criando uma condição para adicionar um novo registro(addnew) resolvesse a questão, só que não estou acertando.