Olá pessoal, mais uma vez eu venho aqui com uma "bomba",
Através de umas instruções lidas aqui eu estou tentando implementar estes códigos em um formulário
com alguns controles de memorando com limite de caracteres... Então vamos lá...
----NO CAMPO COM LIMITE----
Private Sub Contrato_BeforeUpdate(Cancel As Integer)
On Error Resume Next
If Len(Nz(Me.ActiveControl, "")) > 214 Then
Cancel = True
Call MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
End If
End Sub
----BOTÃO SALVAR----
Private Sub ButSalvar_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
End If
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Gravação efetuada com sucesso.", vbInformation, ""
End If
End If
End Sub
----BOTÃO FECHAR----
Private Sub ButFechar_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
If Me.Dirty = False Then
DoCmd.Close
End If
Else
If QCaracter = MsgBox("Alterações detectadas, deseja salvá-las?", vbYesNo + vbInformation, "Confirmação") = vbNo Then
Me.Undo
MsgBox "Todas as alterações foram desfeitas!", vbQuestion, ""
End If
If QCaracter = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Gravação efetuada com sucesso.", vbInformation, ""
End If
End If
End If
End If
End Sub
----BOTÃO AbrirEXContrato----
Private Sub AbrirEXContrato_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
End If
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
DoCmd.OpenForm "EX-Contrato"
End If
End If
End Sub
---------------------
Somente no campo com limite é que está funcionando, pois se ultrapasso o limite de caracteres e tento
ir para outro controle, a caixa de mensagem aparece dizendo que excedi os 214 caracteres.
E no outros, quando eu clico, a barra de título da janela pop-up do formulário pisca e não acontece nada.
Marquei de vermelho o que esperava que acontecesse, caso o limite de caracteres não fosse excedido.
Eu não sei o que estou fazendo de errado... alguém pode me dar um help?
Desde já agradeço!
Paulo César
Através de umas instruções lidas aqui eu estou tentando implementar estes códigos em um formulário
com alguns controles de memorando com limite de caracteres... Então vamos lá...
----NO CAMPO COM LIMITE----
Private Sub Contrato_BeforeUpdate(Cancel As Integer)
On Error Resume Next
If Len(Nz(Me.ActiveControl, "")) > 214 Then
Cancel = True
Call MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
End If
End Sub
----BOTÃO SALVAR----
Private Sub ButSalvar_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
End If
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Gravação efetuada com sucesso.", vbInformation, ""
End If
End If
End Sub
----BOTÃO FECHAR----
Private Sub ButFechar_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
If Me.Dirty = False Then
DoCmd.Close
End If
Else
If QCaracter = MsgBox("Alterações detectadas, deseja salvá-las?", vbYesNo + vbInformation, "Confirmação") = vbNo Then
Me.Undo
MsgBox "Todas as alterações foram desfeitas!", vbQuestion, ""
End If
If QCaracter = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
MsgBox "Gravação efetuada com sucesso.", vbInformation, ""
End If
End If
End If
End If
End Sub
----BOTÃO AbrirEXContrato----
Private Sub AbrirEXContrato_Click()
Dim QCaracter As Integer
If Len(Nz(Me.Contrato, "")) > 214 Then
QCaracter = MsgBox("Você excedeu os 214 caracteres permitidos, diminua o texto do CONTRATO.", vbOKOnly, "Aviso")
If QCaracter = vbOKOnly Then
Cancel = True
End If
Else
If Len(Nz(Me.Contrato, "")) <= 214 Then
DoCmd.OpenForm "EX-Contrato"
End If
End If
End Sub
---------------------
Somente no campo com limite é que está funcionando, pois se ultrapasso o limite de caracteres e tento
ir para outro controle, a caixa de mensagem aparece dizendo que excedi os 214 caracteres.
E no outros, quando eu clico, a barra de título da janela pop-up do formulário pisca e não acontece nada.
Marquei de vermelho o que esperava que acontecesse, caso o limite de caracteres não fosse excedido.
Eu não sei o que estou fazendo de errado... alguém pode me dar um help?
Desde já agradeço!
Paulo César