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 participantes

    [Resolvido]Limitar alterações em um registro

    Wellington PG
    Wellington PG
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 17/02/2013

    [Resolvido]Limitar alterações em um registro Empty [Resolvido]Limitar alterações em um registro

    Mensagem  Wellington PG 22/11/2014, 01:02

    Boa Noite,

    Como faço para limitar alterações em um determinado registro?

    Ex: Tenho banco de dados para acompanhamento de atividades. Este BD contém campos para inserir ação, responsável, prioridade, data inicial e data final...

    Gostaria de saber qual é o código/rotina que limitasse após eu alterar 3 vezes a data final. Ou seja quando ocorresse alteração da data final de um registro aparecesse uma mensagem quando:

    1ª alteração do registro ->"Você possui 2 alterações"
    2ª alteração do registro ->"Você possui 1 alterações"
    3ª alteração do registro ->"Você não poderá mais realizar alterações na data de conclusão"
    4ª alteração do registro ->"Você não poderá postergar prazo"

    Desde já eu agradeço
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  criquio 22/11/2014, 01:42

    Uma saída pode ser colocar um campo na tabela para contar essas alterações. Esse campo pode conter o valor padrão 0 e a cada alteração aumenta o valor em 1. E pode ter um campo com a expressão:

    Código:
    =Iif([NomeCampo]=1;"Você tem mais 2 alterações;Iif([NomeCampo]=2;"Você tem mais 1 alterações;"Você não tem mais alterações;))


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Wellington PG
    Wellington PG
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 17/02/2013

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  Wellington PG 22/11/2014, 10:55

    Obrigado Criquio pelo retorno.

    Desculpe pela minha ignorância, sou iniciante no access! E minha dúvida é a seguinte:

    Em qual campo coloco a cada alteração aumenta o valor em 1?
    Esta expressão coloco onde?

    Supondo que criei o campo "Revisao" na tabela e inseri no formulário.

    Gostaria que cada alteração do campo "Data conclusão" aparecesse este nº de revisão e aparecesse a mensagem.

    Desde já eu agradeço
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  criquio 22/11/2014, 12:53

    Antes de tudo, vou deixar esse tópico como dica de leitura para te evitar algumas dores de cabeça no futuro.

    Quanto à questão, a tabela precisa ter apenas um campo para registrar a quantidade de alterações na data. Vamos supor que o nome desse campo na tabela seja qtdAlterData e no formulário seja txtAlterData e o campo da data se chama txtData. No evento Ao carregar do formulário você pode colocar a instrução abaixo:

    Código:
    If Me.txtAlterData >= 3 Then
        Me.txtData.Enabled = False
    End If

    A rotina acima irá desabilitar o campo da data caso o valor do campo da quantidade seja maior ou igual a 3. Assim não será possível alterar essa data.

    No evento Após atualizar do campo da data:

    Código:
    Me.txtAlterData = Me.txtAlterData + 1

    If Me.txtAlterData >= 3 Then
        Me.txtData.Enabled = False
    End If

    O campo aonde irá a informação sobre a quantidade de alteração pode ficar apenas no formulário com a origem conforme eu mencionei no post anterior. Ou pode colocar um label e usar os eventos acima para inputar o aviso nele. Vamos supor que esse label se chama lblAviso:

    Código:
    If Me.txtAlterData >= 3 Then
        Me.txtData.Enabled = False
    End If

    If Me.txtAlterData = 0 Then
        Me.lblAviso.Caption = "Você tem três alterações"
    ElseIf Me.txtAlterData = 1 Then
        Me.lblAviso.Caption = "Você tem duas alterações"
    ElseIf Me.txtAlterData = 2 Then
        Me.lblAviso.Caption = "Você tem uma alterações"
    Else
        Me.lblAviso.Caption = "Você não pode mais alterar essa data"
    End If

    Nesse caso, é melhor colocar tudo isso em uma Sub ou em uma Private Function e ao invés de repetir todo o código no "Ao carregar" do formulário e no "Após atualizar" do campo da data, apenas chamar essa Sub ou Function.

    É mais garantido fazer isso em um formulário simples ao invés de formulário contínuo, pois no formulário contínuo esses eventos afetam todas as linhas e não apenas a linha em questão.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Wellington PG
    Wellington PG
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 17/02/2013

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  Wellington PG 22/11/2014, 16:33

    Mais uma vez obrigado Criquio pela dicas, isso vai contribuir para o meu desenvolvimento!

    Em relação aos códigos, eu inseri e funcionou, porém eu gostaria que quando adiciono um cadastro o campo txtAlterData iniciasse com alteração "0", a partir que eu defina data no campo txtData (Data de conclusão). Quando insiro txtData aparece alteração "1" no campo txtAlterData (quando salvo/fecho). Entendo que deveria iniciar com "0" ao cadastrar o 1º registro.

    Em relação a rotina para informação da alteração, a ideia não era em criar um label e sim msg quando ocorresse alteração.
    Ou seja, quando o usuário alterar txtData (Data de conclusão) aparecesse uma mensagem cada vez que ele postergue os prazos e se possível uma mensagem solicitando a confirmação desta alteração.
    Ex: Você tem duas alterações. Confirma? Sim/Não.

    Desde já eu agradeço

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  criquio 22/11/2014, 17:29

    Crie uma variável no escopo do formulário, no topo dele e logo abaixo da primeira linha para receber a data atual e comparar com a nova data para conferir se é diferente:

    Código:
    Private Compare Database

    Dim dataAtual As Date

    Agora, no evento "Ao receber foco" do campo data:

    Código:
    dataAtual = Me.nomeDoCampoData

    No evento "Após atualizar" do campo da data:

    Código:
    If Me.nomeCampoData <> dataAtual Then
        If MsgBox("Confirma a alteração da data? Após essa alteração você só poderá altera-la novamente mais " & 3 - Me.txtQtdAlter, vbYesNo + vbQuestion, "Confirmar alteração") = vbYes Then
            Me.txtQtdAlter = Me.txtQtdAlter + 1
        Else
            Me.nomeCampoData = dataAtual
        End If

        If Me.txtQtdAlter >= 3 Then
            Me.nomeCampoData.Enabled = False
        Else
            Me.nomeCampoData.Enabled = True
        End If
    End If


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Wellington PG
    Wellington PG
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 17/02/2013

    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  Wellington PG 22/11/2014, 23:55

    Mais uma vez o meu muito obrigado Criquio, pela disposição, competência e eficiência em esclarecer, orientar e sanar dúvidas a cerca do universo do access.

    Espero que este tópico ajude aos outros.

    Sucesso!

    Conteúdo patrocinado


    [Resolvido]Limitar alterações em um registro Empty Re: [Resolvido]Limitar alterações em um registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 08:30