Prezados,
Boa noite tudo bem?
Preciso verificar quando o Subgrupo for igual a DIZIMOS o Dizimista e o valor dentro do mês de lançamento não poderá ser lançado 2 vezes.
O Sistema irá dar mensagem de "Registro Duplicado" e irá perguntar se confirma o lançamento.
Exemplo :
01/03/2022 - DIZIMOS - Antônio Carlos - 25,63
02/03/2021 - DIZIMOS - Antônio Carlos - 25,63 (Mensagem Registro Duplicado, Confirma ?)
Porém, quando o valor lançado é inteiro, funciona (Ex: 25,00) se for (Ex: 25,63) com centavos dá o seguinte ERRO :
"Erro em tempo de Execução "3077" Erro de Sintaxe (Vírgula) na Expressão"
Alguém poderia me dar uma luz ou apresentar outra forma de identificar quando o registro for duplicado ?
Segue o código :
Private Sub CxEntrada_AfterUpdate()
Dim rstConta As DAO.Recordset
Dim strConta As String
Dim rstValDizimo As DAO.Recordset
Dim strValDizimo As String
Dim intResp As Integer
If Me.SubGrupo = "Dizimos" Then
Set rstConta = CurrentDb.OpenRecordset("tbl_Caixa")
strConta = "[CCCodi]='" & Me.CCCodi & "'" & " And [CxMesRef] =#" & Me!CxMesRef & "#"
rstConta.FindFirst strConta
Set rstValDizimo = CurrentDb.OpenRecordset("tbl_Caixa")
strValDizimo = "[CxEntrada]=" & Me.CxEntrada & " And [CxMesRef] =#" & Me!CxMesRef & "#" & " And [CCCodi] ='" & Me!CCCodi & "'"
rstValDizimo.FindFirst strValDizimo ======> aqui apresenta ERRO quando o valor contém "Centavos"
If rstConta.NoMatch = True And rstValDizimo.NoMatch = True Then
MsgBox "O Lançamento já foi Realizado para este Dizimista", vbCritical, "Atenção !!!"
intResp = MsgBox("Confirma o Lançamento ?", vbYesNo, "Atenção !!!")
Select Case intResp
Case vbYes
CxSaida.SetFocus
Case vbNo
DoCmd.SetWarnings False
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.GoToRecord , , acFirst
DoCmd.SetWarnings True
End Select
End If
End If
End Sub
Muitíssimo grato,
Grande Abraço a todos,
Regis Borda
Boa noite tudo bem?
Preciso verificar quando o Subgrupo for igual a DIZIMOS o Dizimista e o valor dentro do mês de lançamento não poderá ser lançado 2 vezes.
O Sistema irá dar mensagem de "Registro Duplicado" e irá perguntar se confirma o lançamento.
Exemplo :
01/03/2022 - DIZIMOS - Antônio Carlos - 25,63
02/03/2021 - DIZIMOS - Antônio Carlos - 25,63 (Mensagem Registro Duplicado, Confirma ?)
Porém, quando o valor lançado é inteiro, funciona (Ex: 25,00) se for (Ex: 25,63) com centavos dá o seguinte ERRO :
"Erro em tempo de Execução "3077" Erro de Sintaxe (Vírgula) na Expressão"
Alguém poderia me dar uma luz ou apresentar outra forma de identificar quando o registro for duplicado ?
Segue o código :
Private Sub CxEntrada_AfterUpdate()
Dim rstConta As DAO.Recordset
Dim strConta As String
Dim rstValDizimo As DAO.Recordset
Dim strValDizimo As String
Dim intResp As Integer
If Me.SubGrupo = "Dizimos" Then
Set rstConta = CurrentDb.OpenRecordset("tbl_Caixa")
strConta = "[CCCodi]='" & Me.CCCodi & "'" & " And [CxMesRef] =#" & Me!CxMesRef & "#"
rstConta.FindFirst strConta
Set rstValDizimo = CurrentDb.OpenRecordset("tbl_Caixa")
strValDizimo = "[CxEntrada]=" & Me.CxEntrada & " And [CxMesRef] =#" & Me!CxMesRef & "#" & " And [CCCodi] ='" & Me!CCCodi & "'"
rstValDizimo.FindFirst strValDizimo ======> aqui apresenta ERRO quando o valor contém "Centavos"
If rstConta.NoMatch = True And rstValDizimo.NoMatch = True Then
MsgBox "O Lançamento já foi Realizado para este Dizimista", vbCritical, "Atenção !!!"
intResp = MsgBox("Confirma o Lançamento ?", vbYesNo, "Atenção !!!")
Select Case intResp
Case vbYes
CxSaida.SetFocus
Case vbNo
DoCmd.SetWarnings False
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.GoToRecord , , acFirst
DoCmd.SetWarnings True
End Select
End If
End If
End Sub
Muitíssimo grato,
Grande Abraço a todos,
Regis Borda