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] Verificar se um determinado registo está aberto ou a ser editado.

    brunogor
    brunogor
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 278
    Registrado : 23/02/2013

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  brunogor 4/5/2018, 17:13

    Olá a todos,
    Esta semana já vou no 3º Post, vamos lá ver se fico por aqui.
    Pretendia que um utilizador ao editar o Registo X, este registo não pudesse ser editado por mais ninguém.
    No entanto pretendia que os restantes registos estivessem disponíveis para edição.
    Já experimentei a protecção de registos "me.RecordLocks=2", mas não faz o que pretendo, pois bloqueia todos os registos da Tabela.

    Conhecem alguma função para verificar se um determinado registro estar em uso.

    Obrigado pela vossa disponibilidade.

    Bruno Gordino
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Re: [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  FabioPaes 6/5/2018, 10:27

    A melhor forma de fazer isso que conheço é criar um campo na tabela para inserir o ID do usuário.
    De forma que: Ao editar o registro vc coloca o ID do usuário nesse campo e salva! Quando outra pessoa tentar editar o registro, vc verifica se o campo esta nulo ou se o ID é o do usuário logado! assim poderá permitir que apenas seja editado pelo mesmo usuário que começou a editar esse registro. E se ninguém editou ainda, estará disponível para todos!


    .................................................................................
    _____________________________________________________________________
    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!
    brunogor
    brunogor
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 278
    Registrado : 23/02/2013

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  brunogor 6/5/2018, 12:46

    Boa tarde Fábio,
    Parece-me que é a 1ª vez que trocamos uma dúvida por um conhecimento, muito prazer.
    Como estão as coisas desse lado do Oceano?

    Através da ADO Recordset  ".State" property, consigo verificar se o seu valor é adStateClosed ou adStateOpen:
    Código:
    If Not (rs Is Nothing) Then
      If (rs.State And adStateOpen) = adStateOpen Then rs.Close
      Set rs = Nothing
    End If

    Original: https://stackoverflow.com/questions/17611545/check-if-adodb-connection-is-open

    O problema é que se eu estou no registo, não vou conseguir ver se ele está aberto para além de mim e vai dar sempre como aberto.

    Então a única solução é editar na Tabela o valor de um Campo via Recordset.

    Vou deixar o Post aberto mais uns dias para ver se aparece mais alguma ideia.

    Obrigado Fábio.

    Cumprimentos

    Bruno Gordino
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Re: [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  FabioPaes 6/5/2018, 13:32

    Outro agravante é que no momento em que vc buscar os dados na tabela utilizando Recordset, o registro pode esta livre... Mas qnd ao mesmo tempo outro usuário pode pegar o mesmo registro para edição, então não saberá disso!!! Por isso a necessidade de ter esse dado no Próprio Registro!!!


    .................................................................................
    _____________________________________________________________________
    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!
    brunogor
    brunogor
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 278
    Registrado : 23/02/2013

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  brunogor 8/5/2018, 17:46

    Boa noite Fábio,
    Tenho estado a estudar um exemplo conforme passou mas tem um problema.

    Obriga-nos sempre a gravar o dado na tabela via "RecordSet" quando se edita directamente no próprio Form dá sempre estes erro :
    Erro 7787: Erro de conflito de escrita inesperado ocorre quando se fecha um formulário no Access.

    Se forçarmos o save c/ "DoCmd.RunCommand acCmdSaveRecord" vai surgir outro erro:
    Erro 2115: The macro or function set to the BeforeUpdate or ValidationRule property for this field is preventing Microsoft Access from saving the data in the field.

    Não existirá maneira mais Simples de verificar de o registo está a ser editado?

    Cumprimentos

    Bruno Gordino
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Re: [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  FabioPaes 9/5/2018, 10:19

    Bom, tentou mandar o comando via Codigo SQL?

    Currentdb.Execute "UPDATE tabelaxxx SET CAMPOAAA = " &  IDUSUARIO & ""


    No Formulário exite algumas proteções, mas não são muito amigáveis ao usuário final... Va na Guia Dados>Proteção de Registros: Registro Editado.

    Faça um Teste... Mas a Mensagem que emite e fixa e nada Profissional!


    .................................................................................
    _____________________________________________________________________
    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!
    brunogor
    brunogor
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 278
    Registrado : 23/02/2013

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  brunogor 9/5/2018, 11:07

    Olá Fábio, nem me passou pela cabeça via SQL,
    Foi assim:
    Código:
     CurrentDb.OpenRecordset("Tbl_XXX", dbOpenDynaset)
    Vou experimentar via SQL e já dou o "FeedBack"
    Cumprimentos

    Bruno Gordino
    brunogor
    brunogor
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 278
    Registrado : 23/02/2013

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  brunogor 10/5/2018, 11:54

    Olá Fábio,
    Via SQL já deu. Fábio vou dar o POST como resolvido.
    Muito obrigado pela atenção que me dispensou.
    Até uma próxima e tudo de bom para si.
    Cumprimentos

    Bruno Gordino
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Re: [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  FabioPaes 11/5/2018, 11:00

    Grato pelo retorno amigo! Até a próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    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!

    Conteúdo patrocinado


    [Resolvido] Verificar se um determinado registo está aberto ou a ser editado. Empty Re: [Resolvido] Verificar se um determinado registo está aberto ou a ser editado.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/9/2024, 00:23