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


3 participantes

    Impedir Visualização Simultânea de Registros no Form

    avatar
    guilhermegorges
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 01/03/2016

    Impedir Visualização Simultânea de Registros no Form Empty Impedir Visualização Simultânea de Registros no Form

    Mensagem  guilhermegorges 16/11/2016, 18:31

    Olá Pessoal, tudo bem?
    Tenho um Banco de Dados que será usado de maneira compartilhada (cerca de 5 pessoas ao mesmo tempo), que consiste em formulário principal que apresenta uma lista de "Intenções de Revenda", onde cada assistente irá preencher essas intenções.

    Estou tentando fazer com que, ao Assistente 1 estiver editando a Intenção de Revenda X essa mesma intenção não seja mostrada para o Assistente 2, e sim a Intenção de Revenda Y.

    Basicamente, o Form está vinculado a uma tabela, nesta tabela tenho o campo "Editando", e sempre que o Form é carregado, essa opção é marcada como Sim para a Intenção de Revenda que está sendo editada, quando pressiono o botão "Próximo" no formulário, ele limpa essa marcação, teoricamente permitindo que esse registro possa ser modificado por outro usuário.
    Entretanto, não estou obtendo sucesso, e uma hora ou outra acaba sendo mostrado a mesma intenção para dois assistentes diferentes.

    Vou anexar o banco para contextualizar, o formulário que tenho problemas é o frm_Principal, e a tabela vinculada a ele é a TB_Mailing.

    Abs,
    Anexos
    Impedir Visualização Simultânea de Registros no Form AttachmentBanco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (290 Kb) Baixado 9 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 02:20

    Amigao ja verificou se ess propriedade nao atende as suas necessidades?

    Impedir Visualização Simultânea de Registros no Form 2hdcoci

    Agora se nao sesolver veja essa dica....


    nesse caso então a solução e criar um novo campo Na tabela do tipo Sim/Nao chamado Bloqueado. Por padrão=0 (desmarcado)

    De forma que:

    Sempre quando o usuário Carregar esse Registro para EDITAR, primeiro vc atualiza o campo Bloqueado para -1 e em seguida carregue o registro para o Usuário.
    Antes de Liberar a Edição desse Registro verifique sempre esse Campo Bloqueado, se ele for igual a -1, emita a mensagem que nao pode ser editado no momento...
    Se for =0 aee sim, vc liberar para o Usuário editar.

    Isso deve resolver seu Problema...

    Da uma pesquisada aqui no Fórum, ja vi alguns tópicos com esse Assunto e sugestão...

    https://www.maximoaccess.com/t7154-resolvidoimpedir-que-registros-sejam-editados-apos-serem-salvos


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 02:21

    Texto ficou meio bagunçado pq estou celular...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  Alvaro Teixeira 17/11/2016, 09:56

    Olá a todos.
    Fábio, dei um jeito.
    É mesmo isso, acho que vai ser a alternativa.
    Aguardamos o colega.
    Abraço
    avatar
    guilhermegorges
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 01/03/2016

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  guilhermegorges 17/11/2016, 11:19

    Oi Fábio e ahteixeira, obrigado pela disponibilidade!

    Fábio, essa imagem que você postou não carregou no computador do trabalho nem em minha casa, se não for pedir muito, pode descreve-la por gentileza?

    Sobre sua sugestão, basicamente foi para este lado que parti e aparentemente não tem funcionado. Criei em minha tabela um campo chamado "Editando", toda vez que o form é carregado (propriedade OnLoad) eu marco esse campo como "Sim", impedindo que ele seja visualizado pelos demais usuários, quando o usuário salva o registro e clica no botão de próximo registro, outra macro marca o valor para Null, voltando a permitir a edição desse registro por outro usuário.
    Entretanto, pelo que notei, o Access não tem identificado essas alterações na consulta, acho que ela não está sendo atualizada em "tempo real", pois, muitas vezes ele ignora esse campo marcado como "Sim" e mostra o mesmo registro.

    Abaixo o código que estou usando na propriedade OnLoad e no botão que vai ao próximo registro:

    Private Sub Form_Load()
    Me.OrderBy = "Data DESC" & "," & "Nome ASC"
    Me.OrderByOn = True
    Me.txt_Editando.Value = "Sim"
    DoCmd.RunCommand acCmdSaveRecord

    End Sub

    Botão Próximo:
           Me.txt_Editando.Value = Null
           Me.Refresh
           DoCmd.GoToRecord , , acNext
           Me.Refresh
           Me.txt_Editando.Value = "Sim"
           DoCmd.RunCommand acCmdSaveRecord

    Abs,
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 14:22

    Saudações Amigo ahteixeira.


    Grato por remover aqueles aumento de Leta... Sempre ocorre qnd estou no Celular e realizou Zoom na Pagina...


     

    guilhermegorges, A propriedade se Chama Proteção de Registro que fica na Guia Dados.



    Abra o Formulário em Modo Designer> Clique em Propriedades> Va ate a Guia Dados> desça ate o Item 

    Proteção de Registro > Selecione: "Registro Editado"



    Obs: Isso não impedirá a visualização do Registro, mas alertará e bloqueará a edição do registro caso alguém esteja editando ele...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 14:29

    Quanto ao seu codigo, me parece que esse é o Caminho mesmo amigo...

    Se o problema esta em Identificar quando o registro esta=SIM, experimente isso:

    Me.txt_Editando.Value = "Sim"
    DoCmd.RunCommand acCmdSaveRecord

    Me.Recalc


    Veja que add o Recalc


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    guilhermegorges
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 01/03/2016

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  guilhermegorges 17/11/2016, 15:12

    Fábio, eu imaginei mesmo que fosse o RecordLocks, mas como você disse, ele impede que o usuário visualize o registro, porém acaba bloqueando o form também.

    Eu não consegui desenvolver uma lógica para quando for identificado o conflito, o form automaticamente mostre o registro seguinte para o usuário. Caso você tenha algo que possa me auxiliar, ficaria muito grato.

    Vou tentar com o Recalc, apesar de já ter feitos uns testes com Requery e Refresh.
    Obrigado pelo auxílio até agora!

    Abs,
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 15:55

    Outra coisa que deve tentar é mandar a atualização via SQL, assim ficará visivel para todos no ato...


    No Evento do Formulario, no Atual coloque:

    CurrentBb.Execute"UPDATE NOMETABELA SET Editado = 'SIM' WHERE ID = " & Me.CampoID & ""




    NomeTabela mude para o Nome da Sua Tabela...

    ID seria o Campo chave primaria da Tabela (o Campo Unico) para atualizar apenas aquele registro.

    Me.CampoID é o nome do Campo que mostra o Valor do Campo ID no formulario.


    Agora no Botão de Proximo> Coloque o inverso...

    CurrentBb.Execute"UPDATE NOMETABELA SET Editado = 'NÃO' WHERE ID = " & Me.CampoID & ""




    Faça um Teste!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  Alvaro Teixeira 17/11/2016, 16:29

    Olá a todos,
    No atual, acho que não vai dar, pois vai bloquear ao próprio utilizador.
    A menos que o campo de bloqueio seja colocado o utilizador, assim bloqueava aos utilizadores diferentes.

    Outra alternativa, seria colocar o recordset do form a origem numa consulta que deixava todos os registos e os bloqueados do utilizador.
    Antes de continuar recomendo a leitura da dica abaixo do colega Avelino Sampaio:

    usandoaccess.com.br/tutoriais/video-controle-personalizado-acesso-de-usuarios.asp?id=1
    Abraço
    avatar
    guilhermegorges
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 01/03/2016

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  guilhermegorges 17/11/2016, 18:22

    Putz Pessoal, está difícil.
    Tentei todas as alternativas que vocês passaram, mas o erro persiste.

    AhTeixeira, acredito que um controle de usuários não seja necessário, pois a ideia é que todos os usuários tenham acesso aos registros.
    Imagine que o Sistema é uma grande Lista onde todos podem acessar os registros dessa lista via form, porém, no momento em que eu estiver com o Registro 01 desta lista aberto no form, os demais usuários não podem acessá-lo, para garantir uma maior produtividade e organização na operação.

    O que acredito que esteja acontecendo é que a Fonte de Registro do Form não esteja computando as alterações simultâneas, pois já testei e a ordem dos registros segue um padrão lógico independente do critério que estabeleci. Já tentei utilizar o Refresh, Requery, Recalc, pausar o código por um tempo e então utilizar o Refresh, mas nada parece funcionar.

    Vou continuar fazendo mais algumas alterações, até mesmo com um código semelhante que encontrei do Fábio, mas muito obrigado pela disponibilidade até agora!

    Abs,
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  FabioPaes 17/11/2016, 19:25

    Acredito que so ira reaolver isso exibindo oa dados em uma Caixa de Listagem, e ao clicar no registro:

    Vc verifica, se tive liberado abre o formulario pra ediçao, se nao ele emite mensagem e recarrega a Caixa de Listagem....


    Quanto aos eventos do formulario, no evento ao Carregar so sera executado quando abrir p formulario e nao ns troca de registros...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7995
    Registrado : 15/03/2013

    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  Alvaro Teixeira 20/11/2016, 15:21

    Olá a todos,
    Guilherme, não será fácil.
    E via ter menos performance na nível de rede.
    Lembrei o seguinte.
    O que acha os registos serem navegados como protegidos, conforme já abordado.
    Depois caso um utilizador desejar alterar, ter um botão "Alterar", aí, sim :
    1) Consulta se entretanto o registo esta disponivel para "alterar" (pode outro utilizasdor ter clicado primeiro ao visualizar)
    2) Caso não tenha sido bloquedao por outro utilizador, bloqueia.
    3) No fim ao gravar e voltar novamente para registos "bloqueados", marca o registo que esteve a editar como "livre".
    Talvez seja uma alternativa mais simples de construir e menso "pesada".
    Fica a sugestão.
    Abraço

    Conteúdo patrocinado


    Impedir Visualização Simultânea de Registros no Form Empty Re: Impedir Visualização Simultânea de Registros no Form

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/11/2024, 21:50