O código abaixo funciona normalmente quando utilizo valores inteiros, ou seja, sem centavos nas casas decimais (ex.: 500,00), mas quando utilizo centavos (500,25) ele pede para depurar; sei que o erro está nesta linha nos campos de:
ValorDevido
ValorCurso
ValorRestituir
mas não sei como corrigir (usei um exemplo pronto da internet)
------------------------------------------------------------------------------------------------------------------------------------------------------------
Este código pega os dados e lança em outra tabela (não a que gerou o formulário); fiz isto pois estou usando uma numeração automática sequencial e foi a única maneira que consegui para não ficar pulando números toda vez que alguém
iniciava o formulário e por algum motivo não terminava ou fechava o mesmo. Com este procedimento, só é gerado um número na tabela permanente, após clicar em SALVAR. Mas agora percebi este problema.
-----------------Parte do código com erro ---------------------------------------------------------------------------------------------------------------
CurrentDb.Execute "INSERT INTO tblSysDevCadCancelamento (CodAno, DataCancelamento, Atendente, CpfAluno, CpfFavorecido, NomeFavorecido, Curso, Turma, CodBanco, Agencia, DigitoAgencia, ContaCorrente, ContaDigito, FormaPgto, OBS, MotivoCancelamento, HorasFreqAluno, ValorDevido, ValorDevidoExtenso, CargaHorariaCurso, ValorCurso, ValorCursoExtenso, ValorRestituir, ValorRestituirExtenso) VALUES ('" & CodAno & "', '" & DataCancelamento.value & "', '" & Atendente & "', '" & CpfAluno & "', '" & CpfFavorecido & "', '" & NomeFavorecido & "','" & Curso & "','" & Turma & "','" & CodBanco & "','" & Agencia & "','" & DigitoAgencia & "','" & ContaCorrente & "','" & ContaDigito & "','" & FormaPgto & "','" & OBS & "','" & MotivoCancelamento & "','" & HorasFreqAluno & "', " & ValorDevido & ", '" & ValorDevidoExtenso & "', '" & CargaHorariaCurso & "', " & ValorCurso & ", '" & ValorCursoExtenso & "', " & ValorRestituir & ", '" & ValorRestituirExtenso & "')"
-------------------------------------------------
Código Completo
Private Sub BtSalvar_Click()
CodAno = Year(Date)
DataCancelamento = Date
Atendente = txtUsuarioAtual
If IsNull(Me.CpfAluno) Then
MsgBox "Preencha o campo CPF do Aluno", vbCritical, "Atenção"
Me.CpfAluno.SetFocus
Me.CpfAluno.BackColor = 13434879
ElseIf IsNull(Me.NomeAluno) Then
MsgBox "Preencha o campo Nome do Aluno", vbCritical, "Atenção"
Me.NomeAluno.SetFocus
Me.NomeAluno.BackColor = 13434879
ElseIf IsNull(Me.Curso) Then
MsgBox "Preencha o campo Curso", vbCritical, "Atenção"
Me.Curso.SetFocus
Me.Curso.BackColor = 13434879
ElseIf IsNull(Me.Turma) Then
MsgBox "Preencha o campo Turma", vbCritical, "Atenção"
Me.Turma.SetFocus
Me.Turma.BackColor = 13434879
ElseIf IsNull(Me.MotivoCancelamento) Then
MsgBox "Preencha o campo Motivo do Cancelamento", vbCritical, "Atenção"
Me.MotivoCancelamento.SetFocus
Me.MotivoCancelamento.BackColor = 13434879
ElseIf IsNull(Me.CpfFavorecido) Then
MsgBox "Preencha o campo CPF do Favorecido", vbCritical, "Atenção"
Me.CpfFavorecido.SetFocus
Me.CpfFavorecido.BackColor = 13434879
ElseIf IsNull(Me.NomeFavorecido) Then
MsgBox "Preencha o campo Nome do Favorecido", vbCritical, "Atenção"
Me.NomeFavorecido.SetFocus
Me.NomeFavorecido.BackColor = 13434879
ElseIf IsNull(Me.CodBanco) Then
MsgBox "Preencha o campo Código do Banco", vbCritical, "Atenção"
Me.CodBanco.SetFocus
Me.CodBanco.BackColor = 13434879
ElseIf IsNull(Me.Banco) Then
MsgBox "Preencha o campo Banco", vbCritical, "Atenção"
Me.Banco.SetFocus
Me.Banco.BackColor = 13434879
ElseIf IsNull(Me.Agencia) Then
MsgBox "Preencha o campo Agência", vbCritical, "Atenção"
Me.Agencia.SetFocus
Me.Agencia.BackColor = 13434879
ElseIf IsNull(Me.ContaCorrente) Then
MsgBox "Preencha o campo Conta Corrente", vbCritical, "Atenção"
Me.ContaCorrente.SetFocus
Me.ContaCorrente.BackColor = 13434879
ElseIf IsNull(Me.ContaDigito) Then
MsgBox "Preencha o campo Dígito da Conta", vbCritical, "Atenção"
Me.ContaDigito.SetFocus
Me.ContaDigito.BackColor = 13434879
ElseIf IsNull(Me.FormaPgto) Then
MsgBox "Preencha o campo Forma de Pgto", vbCritical, "Atenção"
Me.FormaPgto.SetFocus
Me.FormaPgto.BackColor = 13434879
ElseIf IsNull(Me.CargaHorariaCurso) Then
MsgBox "Preencha o campo Carga Horaria do Curso", vbCritical, "Atenção"
Me.CargaHorariaCurso.SetFocus
Me.CargaHorariaCurso.BackColor = 13434879
ElseIf IsNull(Me.ValorCurso) Then
MsgBox "Preencha o campo Valor do Curso", vbCritical, "Atenção"
Me.ValorCurso.SetFocus
Me.ValorCurso.BackColor = 13434879
ElseIf IsNull(Me.ValorCursoExtenso) Then
MsgBox "Preencha o campo Valor do Curso por Extenso", vbCritical, "Atenção"
Me.ValorCursoExtenso.SetFocus
Me.ValorCursoExtenso.BackColor = 13434879
Me.ValorCurso.SetFocus
Me.ValorCurso.BackColor = 13434879
Else
CurrentDb.Execute "INSERT INTO tblSysDevCadCancelamento (CodAno, DataCancelamento, Atendente, CpfAluno, CpfFavorecido, NomeFavorecido, Curso, Turma, CodBanco, Agencia, DigitoAgencia, ContaCorrente, ContaDigito, FormaPgto, OBS, MotivoCancelamento, HorasFreqAluno, ValorDevido, ValorDevidoExtenso, CargaHorariaCurso, ValorCurso, ValorCursoExtenso, ValorRestituir, ValorRestituirExtenso) VALUES ('" & CodAno & "', '" & DataCancelamento.value & "', '" & Atendente & "', '" & CpfAluno & "', '" & CpfFavorecido & "', '" & NomeFavorecido & "','" & Curso & "','" & Turma & "','" & CodBanco & "','" & Agencia & "','" & DigitoAgencia & "','" & ContaCorrente & "','" & ContaDigito & "','" & FormaPgto & "','" & OBS & "','" & MotivoCancelamento & "','" & HorasFreqAluno & "', " & ValorDevido & ", '" & ValorDevidoExtenso & "', '" & CargaHorariaCurso & "', " & ValorCurso & ", '" & ValorCursoExtenso & "', " & ValorRestituir & ", '" & ValorRestituirExtenso & "')"
Favorecido = FavorecidoTemp
Form.Undo
DoCmd.Close
MsgBox ("Os dados foram gravados com sucesso!"), vbInformation, "Dados"
End If
End Sub
ValorDevido
ValorCurso
ValorRestituir
mas não sei como corrigir (usei um exemplo pronto da internet)
------------------------------------------------------------------------------------------------------------------------------------------------------------
Este código pega os dados e lança em outra tabela (não a que gerou o formulário); fiz isto pois estou usando uma numeração automática sequencial e foi a única maneira que consegui para não ficar pulando números toda vez que alguém
iniciava o formulário e por algum motivo não terminava ou fechava o mesmo. Com este procedimento, só é gerado um número na tabela permanente, após clicar em SALVAR. Mas agora percebi este problema.
-----------------Parte do código com erro ---------------------------------------------------------------------------------------------------------------
CurrentDb.Execute "INSERT INTO tblSysDevCadCancelamento (CodAno, DataCancelamento, Atendente, CpfAluno, CpfFavorecido, NomeFavorecido, Curso, Turma, CodBanco, Agencia, DigitoAgencia, ContaCorrente, ContaDigito, FormaPgto, OBS, MotivoCancelamento, HorasFreqAluno, ValorDevido, ValorDevidoExtenso, CargaHorariaCurso, ValorCurso, ValorCursoExtenso, ValorRestituir, ValorRestituirExtenso) VALUES ('" & CodAno & "', '" & DataCancelamento.value & "', '" & Atendente & "', '" & CpfAluno & "', '" & CpfFavorecido & "', '" & NomeFavorecido & "','" & Curso & "','" & Turma & "','" & CodBanco & "','" & Agencia & "','" & DigitoAgencia & "','" & ContaCorrente & "','" & ContaDigito & "','" & FormaPgto & "','" & OBS & "','" & MotivoCancelamento & "','" & HorasFreqAluno & "', " & ValorDevido & ", '" & ValorDevidoExtenso & "', '" & CargaHorariaCurso & "', " & ValorCurso & ", '" & ValorCursoExtenso & "', " & ValorRestituir & ", '" & ValorRestituirExtenso & "')"
-------------------------------------------------
Código Completo
Private Sub BtSalvar_Click()
CodAno = Year(Date)
DataCancelamento = Date
Atendente = txtUsuarioAtual
If IsNull(Me.CpfAluno) Then
MsgBox "Preencha o campo CPF do Aluno", vbCritical, "Atenção"
Me.CpfAluno.SetFocus
Me.CpfAluno.BackColor = 13434879
ElseIf IsNull(Me.NomeAluno) Then
MsgBox "Preencha o campo Nome do Aluno", vbCritical, "Atenção"
Me.NomeAluno.SetFocus
Me.NomeAluno.BackColor = 13434879
ElseIf IsNull(Me.Curso) Then
MsgBox "Preencha o campo Curso", vbCritical, "Atenção"
Me.Curso.SetFocus
Me.Curso.BackColor = 13434879
ElseIf IsNull(Me.Turma) Then
MsgBox "Preencha o campo Turma", vbCritical, "Atenção"
Me.Turma.SetFocus
Me.Turma.BackColor = 13434879
ElseIf IsNull(Me.MotivoCancelamento) Then
MsgBox "Preencha o campo Motivo do Cancelamento", vbCritical, "Atenção"
Me.MotivoCancelamento.SetFocus
Me.MotivoCancelamento.BackColor = 13434879
ElseIf IsNull(Me.CpfFavorecido) Then
MsgBox "Preencha o campo CPF do Favorecido", vbCritical, "Atenção"
Me.CpfFavorecido.SetFocus
Me.CpfFavorecido.BackColor = 13434879
ElseIf IsNull(Me.NomeFavorecido) Then
MsgBox "Preencha o campo Nome do Favorecido", vbCritical, "Atenção"
Me.NomeFavorecido.SetFocus
Me.NomeFavorecido.BackColor = 13434879
ElseIf IsNull(Me.CodBanco) Then
MsgBox "Preencha o campo Código do Banco", vbCritical, "Atenção"
Me.CodBanco.SetFocus
Me.CodBanco.BackColor = 13434879
ElseIf IsNull(Me.Banco) Then
MsgBox "Preencha o campo Banco", vbCritical, "Atenção"
Me.Banco.SetFocus
Me.Banco.BackColor = 13434879
ElseIf IsNull(Me.Agencia) Then
MsgBox "Preencha o campo Agência", vbCritical, "Atenção"
Me.Agencia.SetFocus
Me.Agencia.BackColor = 13434879
ElseIf IsNull(Me.ContaCorrente) Then
MsgBox "Preencha o campo Conta Corrente", vbCritical, "Atenção"
Me.ContaCorrente.SetFocus
Me.ContaCorrente.BackColor = 13434879
ElseIf IsNull(Me.ContaDigito) Then
MsgBox "Preencha o campo Dígito da Conta", vbCritical, "Atenção"
Me.ContaDigito.SetFocus
Me.ContaDigito.BackColor = 13434879
ElseIf IsNull(Me.FormaPgto) Then
MsgBox "Preencha o campo Forma de Pgto", vbCritical, "Atenção"
Me.FormaPgto.SetFocus
Me.FormaPgto.BackColor = 13434879
ElseIf IsNull(Me.CargaHorariaCurso) Then
MsgBox "Preencha o campo Carga Horaria do Curso", vbCritical, "Atenção"
Me.CargaHorariaCurso.SetFocus
Me.CargaHorariaCurso.BackColor = 13434879
ElseIf IsNull(Me.ValorCurso) Then
MsgBox "Preencha o campo Valor do Curso", vbCritical, "Atenção"
Me.ValorCurso.SetFocus
Me.ValorCurso.BackColor = 13434879
ElseIf IsNull(Me.ValorCursoExtenso) Then
MsgBox "Preencha o campo Valor do Curso por Extenso", vbCritical, "Atenção"
Me.ValorCursoExtenso.SetFocus
Me.ValorCursoExtenso.BackColor = 13434879
Me.ValorCurso.SetFocus
Me.ValorCurso.BackColor = 13434879
Else
CurrentDb.Execute "INSERT INTO tblSysDevCadCancelamento (CodAno, DataCancelamento, Atendente, CpfAluno, CpfFavorecido, NomeFavorecido, Curso, Turma, CodBanco, Agencia, DigitoAgencia, ContaCorrente, ContaDigito, FormaPgto, OBS, MotivoCancelamento, HorasFreqAluno, ValorDevido, ValorDevidoExtenso, CargaHorariaCurso, ValorCurso, ValorCursoExtenso, ValorRestituir, ValorRestituirExtenso) VALUES ('" & CodAno & "', '" & DataCancelamento.value & "', '" & Atendente & "', '" & CpfAluno & "', '" & CpfFavorecido & "', '" & NomeFavorecido & "','" & Curso & "','" & Turma & "','" & CodBanco & "','" & Agencia & "','" & DigitoAgencia & "','" & ContaCorrente & "','" & ContaDigito & "','" & FormaPgto & "','" & OBS & "','" & MotivoCancelamento & "','" & HorasFreqAluno & "', " & ValorDevido & ", '" & ValorDevidoExtenso & "', '" & CargaHorariaCurso & "', " & ValorCurso & ", '" & ValorCursoExtenso & "', " & ValorRestituir & ", '" & ValorRestituirExtenso & "')"
Favorecido = FavorecidoTemp
Form.Undo
DoCmd.Close
MsgBox ("Os dados foram gravados com sucesso!"), vbInformation, "Dados"
End If
End Sub