MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


+2
vieirasoft
_Dess_
6 participantes

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    avatar
    _Dess_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/06/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  _Dess_ 30/6/2010, 17:02

    Boa tarde pessoal. Preciso da ajuda de vcs novamente.

    Na propriedade do meu formulário (antes de atualizar) eu coloquei um procedimento que torna a caixa de texto CADASTRADOR como obrigatória. Até aqui está OK.

    Caso o usuário começe a entrar com dados no formulário e tente sair sem inserir valor na caixa de texto CADASTRADOR aparece a msg que eu defini no procedimento antes de atualizar. O usuário não consegue sair sem antes preencher o campo CADASTRADOR. Até aqui está OK.

    Caso o usuário clicar no xis de "fechar janela" ou no xis de "fechar"(aqueles X normais que têm no canto superior direito da tela do programa) aparece a seguinte msg:

    "Você não pode salvar este registro agora".

    "O FORMULÁRIO X* pode ter encontrado um erro ao tentar salvar o registro. Se você fechar este objeto agora, as alterações que você fez serão perdidas. Voce deseja fechar o objeto de banco de dados mesmo assim? botões: SIM NÃO"

    *Formulário X é o nome do meu formulário

    Motivo para o qual requeiro vossa ajuda: tem como eu alterar o conteúdo dessa msg que o access apresenta? É que eu quero personalizá-la.
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 30/6/2010, 18:23

    utilize algo assim

    If IsNull(Me.nomecampo) Or Me.nomecampo = "" Or IsNull(Me.nomecampo) Or Me.nomecampo = "" Then
    Call MsgBox("Os campos xxxxxx e xxxxxxx são obrigatórios", vbCritical, "Preencher")
    Else
    DoCmd.Close
    Form_seuform.Refresh
    End If
    avatar
    _Dess_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/06/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  _Dess_ 30/6/2010, 18:43

    vieira, meu problema não reside nisso.

    Qdo eu menciono que gostaria de personalizar a msg que aparece, estou me referindo àquela msg que aparece qdo o usuário vai fechar o programa access.
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 30/6/2010, 18:51

    Amigo Dess

    Pelo que entendi você está a querer personalizar um erro, porque a mensagem que lhe aparece à partida será duplicação de registos na tabela. O método que está a usar não é o correcto. Aqui mesmo no fórum o Mestre JPaulo tem um exemplo para que ao sair de um form o usuário não deixe campos em branco. O conselho que lhe dou é o seguinte:

    Não defenir campos obrigatórios na tabela
    Utilizar rotinas de código (como a que lhe enviei) para efectuar o check aos campos e assim não deixar o usuário sair sem preencher.
    Se não quizer deixar brnhum campo em branco utilize o exemplo do Mestre.

    Se precisar de mais....
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 30/6/2010, 19:08

    Amigo

    Olhe este simples exemplo que eu preparei para si
    http://dl.dropbox.com/u/8157744/bd1.zip

    Outra coisa e não leve a mal pois vou apenas expressar uma opinião:

    Não considero boa prática que o utilizador esteja sempre a levar com uma mensagem cada vez que vai preencher dados. Na minha opinião ao sair aí sim...dizemos que falta isto e aquilo, caso contrário povoamos o ecrã com "Dados bem inseridos..."dados mal inseridos,etc, etc"

    Abraço
    avatar
    _Dess_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/06/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  _Dess_ 2/7/2010, 14:26

    Vieira, o que eu quero é evitar registro com campos vazios. Há situações que o cara começa a preencher o formulário e, no meio do registro, desiste. Da forma como está hj, ele não consegue sair do registro pois o sistema faz exatamente o que vc me indicou (os campos x e y devem ser preenchidos). Acontece que o cara não quer mais salvar o registro. ele quer apenas sair do registro e fazer outra coisa. com isso ele clica no "fechar" do access. dai aparece a msg de erro.

    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 2/7/2010, 14:37

    Boas

    Aqui vai

    Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim strMsg As String
    strMsg = "Foram efectuadas alterações"
    strMsg = strMsg & "...Deseja gravar as alterações?"
    If MsgBox(strMsg, vbQuestion + vbYesNo, "Gravar?") = vbYes Then
    'do nothing
    Else
    DoCmd.RunCommand acCmdUndo

    End If

    End Sub

    Se ela não quizer o programa faz undo e o registo volta ao estado inicial em branco.

    Agora: Você quer ou não que o usuário preencha os campos em falta? Porque por um lado você quer obriga-lo a preencher e pelo outro quer dar-lhe a oportunidade de sair com os campos em branco!

    Se precisar não hesite tá...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 2/7/2010, 14:51

    Experimente assim para evitar o aparecimento de mensagens do Access:

    Private Sub NomeCliente_Exit(Cancel As Integer)
    If Trim(Nz(Me.NomeCliente, "")) = "" Then
    MsgBox "O campo Nome do Cliente não pode estar vazio", vbInformation, "Aviso"
    Cancel = True
    End If
    End Sub


    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  JPaulo 2/7/2010, 17:08

    Coloque no evento ao fechar do seu form;

    Me.Dirty=False


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Folder_announce_new Instruções SQL como utilizar...
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  vieirasoft 2/7/2010, 17:15

    Tem razão Mestre, faltou essa.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  Dilson 2/7/2010, 18:56

    Pelo que entendi o usuário não quer mais continuar o registro, desistiu daquele cadastro, se arrependeu, então nesse caso eu usaria um botão Cancelar:

    Private Sub Cmd_Cancela_Click()
    Me.undo
    DoCmd.Close
    End Sub

    Em todas as janelas costumo colocar isso. É uma opção ao usuário de deixar o formulário e a tabela não ficar suja.

    Porque o botão fechar, só aparece se apertar Salvar e se você aperta Salvar, ele checa todos os controles (como o Vieira falou), se estiver todo correto, ele faz aparecer o Fechar. Caso contrário ele emite a mensagem personalizada informando os campos que precisam ser preenchidos.

    Se ele está determinado a completar o cadastro, ele vai preencher os campos necessários (o código do JPaulo é adequado).
    Se ele se arrependeu de ter iniciado o cadastro, ele certamente apertará Cancelar.

    Não esqueça também de ocultar os xis.


    avatar
    _Dess_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 22/06/2010

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  _Dess_ 5/7/2010, 14:24

    Pessoal, com a ajuda de TODOS vcs, eu montei a seguinte estrutura:

    Private Sub BOT_CANC_REG_Click()

    Dim strMsg As String
    strMsg = "Foram efetuadas alterações neste registro."
    strMsg = strMsg & " Ao sair do cadastro as alterações não serão salvas. Deseja sair do sistema sem salvar as alterações?"
    If MsgBox(strMsg, vbQuestion + vbYesNo, "ATENÇÃO USUÁRIO!") = vbYes Then
    On Error GoTo Err_BOT_CANC1_Click
    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
    DoCmd.Close
    Exit_BOT_CANC1_Click:
    Exit Sub
    Err_BOT_CANC1_Click:
    MsgBox Err.Description
    Resume Exit_BOT_CANC1_Click
    Else
    DoCmd.CancelEvent

    End If

    End Sub

    Ou seja, caso o usuário comece o registro e desista de terminá-lo, basta a ele clicar no botão CANCELAR. Dai aparece a msg dizendo que houve alterações e se ele sair elas não serão salvas. Se o usuário clicar em SIM, o formulário é fechado e as alterações não são salvas; se clicar em NÃO, o formulário continua aberto para o usuário concluir o cadastro.

    Ficou show de bola!
    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  Antonybrazil 16/5/2013, 01:39

    Também estou com esta mesma incógnita. Resolvi assim para quem precisar:

    Código:

    Option Compare Database
    Dim Interromper As Boolean

    Código:

    Private Sub Form_Error(DataErr As Integer, Response As Integer)
    'By Luis Antonio
    Response = acDataErrContinue
    If DataErr = 2169 Then
        If MsgBox("As alterações realizadas no formulário não serão salvas. " _
        & vbNewLine & " Deseja sair assim mesmo?", vbExclamation + vbYesNo, "AIDS control") = vbYes Then
        Interromper = False
        Else
        Interromper = True
        End If
    End If
    End Sub

    Código:

    Private Sub Form_Unload(Cancel As Integer)
    Cancel = Interromper
    Interromper = False
    End Sub
    avatar
    lekcunha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 36
    Registrado : 06/11/2014

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Agradecimento

    Mensagem  lekcunha 27/10/2017, 14:58

    Passando por aqui, anos depois, para agradecer ao Antonybrazil.

    Procurei esse código por toda a internet e só encontrei aqui.

    Muito obrigado, amigo!

    cheers
    avatar
    Antonybrazil
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/04/2011

    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  Antonybrazil 30/10/2017, 15:26

    Obrigado pelo retorno.

    Conteúdo patrocinado


    [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar Empty Re: [Resolvidos]Personalizar mensagem caso o usuario desista do cadastro ao apertar cancelar

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 14:20