locked
Concorrência no acesso aos dados RRS feed

  • Pergunta

  •  

    Boa tarde, pessoal!

     

    Estou começando a ficar bastante preocupado com a confiabilidade do Access em relação a manipulação das tabelas pelos formulários, uma vez que meu programa tem se comportado de modo cada vez mais estranho. Gostaria da opinião de vocês, pois talvez eu esteja fazendo merda tbm... hehehehe...

     

    Seguinte!

     

    1) Suponha que tenho as seguintes tabelas:

     

    Pessoa

    - id_pessoa, Numeração Automática

    - nome, Texto

    - e-mail, Texto

    - telefone, Texto

    - id_cargo, Número

    - id_area, Número

     

    Cargos

    - id_cargo, Numeração Automática

    - cargo, Texto

    - Hierarquia, Número

     

    Area

    - id_area, Numeração Automática

    - nome, Texto

     

    2) Tenho também a seguinte consulta, chamada Selecao_Pessoas:

     

    SELECT Pessoa.id_pessoa, Pessoa.nome, Pessoa.[e-mail], Pessoa.telefone, cargos.cargo, Area.nome_area AS area
    FROM (Pessoa LEFT JOIN cargos ON Pessoa.id_cargo = cargos.id_cargo) LEFT JOIN Area ON Pessoa.id_area = Area.id_area
    ORDER BY Pessoa.nome;

    3) Tenho um formulário que exibe os dados dessa consulta, no modo Formulário Contínuo. Cada linha do formulário é uma linha da consulta. Ao lado de cada linha, coloquei um botão "Alterar", que abre um novo formulário.

     

    4) O novo formulário contém os detalhes do registro relacionado, permitindo alterações. Porém, após alterar um dado escolhido, aparece uma mensagem antes da janela se fechar e voltar ao primeiro formulário que diz o seguinte:

    "Este registro foi alterado por outro usuário desde que você começou a editá-lo. Se você salvar o registro, as alterações feitas pelo outro usuário serão substituídas.

    Se você copiar as alterações para Área de Transferência, poderá verificar os valores inseridos por outro usuário e colar suas alterações de volta caso você decida fazer as alterações."

     

    E tem três opções: Salvar Registro, Copiar para Área de Transf., Descartar alterações.

     

     

     

    Pergunta: Tem um modo dessa janela não aparecer? Ou seja, do Access permitir que o segundo formulário faça as alterações na tabela que está alimentando a consulta que alimenta os dados do primeiro formulário?

     

    Se ficou muito confuso, por favor me questionem!

     

    Muito obrigado!!!

     

     

    Felipe

    sexta-feira, 24 de agosto de 2007 15:44

Todas as Respostas

  •  

    Felipe,

     

    uma das possibilidades de estar acontecendo isto, eh que vc esteja trabalhando com campos vinculados e em algum evento, vc efetua uma instrução SQL via código alterando dados da mesma tabela vinculada...

     

    de uma verificada..

     

    qquer coisa, retorne.

     

    abraco!

    sexta-feira, 24 de agosto de 2007 16:14
  • Isto não é uma questão de confiabilidade, o seu registro está marcado para alteração em algum outro ponto.

    Coloque o formulário que tem o botão alterar como somente para leitura (propriedade permitir alterações). Este problema acontece quando na rede dois usuários alteram o mesmo registro ou quando você tem dois registros para edição.

    Outra alternativa é colocar o comando

    docmd.runcommand accmdsaverecord

    antes de chamar o formulário de edição.

    Um abraço!

    Gilberto Mendes
    www.sistemasemaccess.com.br

    sexta-feira, 24 de agosto de 2007 23:35