Questão Problemas com arquivos de ambiente multiusuário / Excel


Temos um arquivo do Excel que está em nossa rede e que uma pessoa geralmente mantém aberta e faz alterações. Outros usuários mantêm o arquivo aberto, no modo somente leitura.

Ocasionalmente, alguém que não seja a primeira pessoa responsável pela edição do arquivo excel abrirá esse arquivo e, de alguma forma, assumirá a funcionalidade de gravação desse arquivo, fazendo com que a pessoa que deve fazer as edições não consiga salvar essas alterações.

Isso vem ocorrendo há algum tempo e não consigo encontrar uma solução para isso.

Alguma ideia sobre o que se passa?

Office 2010
Windows 7 Pro x64


0


origem


Você está dizendo que a segunda pessoa abre o arquivo enquanto a primeira pessoa está aberta e leva o acesso de gravação longe da primeira pessoa? Ou apenas que uma segunda pessoa às vezes começa a trabalhar cedo e abre o arquivo antes a primeira pessoa tem uma chance? - Scott


Respostas:


Veja uma possível correção: na caixa de diálogo "Salvar como", selecione "Ferramentas" -> "Opções gerais", selecione "Somente leitura recomendada" e salve.

“Save As” dialog “General Options” dialog, with “Read-only recommended” marked

Então, toda vez que alguém abrir o arquivo, eles receberão isto:

“Open as read-only?” dialog

Ensine-os a clicar em "Sim", exceto para a pessoa que deve editar o arquivo (ou seu substituto, em caso de ausência).


1



Eu fiz essa opção sem senha. Espero que funcione. Obrigado pela dica - Markaway


Eu escolhi outra abordagem para a próxima situação. Existe um banco de dados do Excel, digamos, DataBase.xls e um programa do Excel Programs.xlt, ambos não são compartilhados e residem em um diretório de um servidor / disco de rede. Cada usuário usa uma cópia do modelo de programas, portanto, Programs1.xls para o primeiro usuário e Programsn.xls para o n-ésimo usuário. As regras são: . muitas leituras simultâneas ao mesmo tempo são possíveis . apenas 1 gravação é possível sem leituras simultâneas (a fim de evitar leituras de registros atualizados "pela metade") . as ações de leitura e gravação são padronizadas e mantidas tão curtas quanto possível

A solução que escolhi é um Árbitro / Árbitro / Árbitro / Árbitro - eu chamei de Árbitro.xls. É um arquivo de excel compartilhado e reside no mesmo diretório mencionado acima e é muito pequeno: só consiste em 2 campos - um contador de leitura nRead e um contador de gravação nWrite. Todo usuário que deseja acessar o DataBase envia ao árbitro uma solicitação de leitura ou gravação.

No caso de uma solicitação de leitura, o árbitro verifica / espera até que não haja mais ações de gravação (nWrite = 0) e conceda uma leitura para esse usuário aumentando o contador nRead por 1. Depois que uma ação de leitura for concluída, o nO contador de leitura é diminuído em 1.

No caso de uma solicitação de gravação, o árbitro verifica / espera até que não haja mais ações de gravação ativas (nWrite = 0), depois disso o árbitro verifica / aguarda até que todas as ações de leitura sejam concluídas (nRead = 0) e concede a solicitação de gravação e defina o contador nWrite como 1. Após a ação de gravação, o contador de gravação nWrite é definido como 0. Depois disso, o árbitro pode conceder novas solicitações de leitura e / ou gravação. As esperas são implementadas com a função "Sleep" no Lib "Kernel32" com etapas de 1 segundo (1000 milissegundos). As etapas também são contadas e após 6 etapas / segundos uma solicitação de leitura é expirada, uma solicitação de gravação é expirada após 10 etapas / segundos, mas isso depende muito de muitos fatores e deve ser encontrado na prática.

Isso tudo funciona muito bem em um ambiente do Excel 2003, Windows XP com no máximo 14 usuários simultâneos. Esses usuários são gerentes trabalhando em diferentes locais espalhados por uma área de 5.000 quilômetros quadrados e usam a ferramenta todos os dias para atualizar Informações de Competências Médicas, Informações Pessoais, Compromissos etc. para seus funcionários (média de 15 funcionários por gerente)


1





A única maneira de pensar que isso está acontecendo é

  • A opção Permitir que os usuários editem intervalos configurados (consulte a faixa de opções chamada Revisão -> Alterações)
  • A pessoa 1 nem sempre tem o arquivo aberto ou, talvez se o SO entrar em espera, o bloqueio no Excel seja liberado.

0



A pessoa mantém o arquivo aberto. Vou verificar se o SO entra em modo de espera, já que é a única coisa em que consigo pensar que causaria isso, já que ele ocasionalmente deixa sua mesa por 10 a 15 minutos de cada vez. - Markaway
O computador não está definido para entrar no modo de suspensão ou no protetor de tela. Os intervalos Permitir que os usuários editem não estão configurados. - Markaway
Onde o arquivo é salvo (em um compartilhamento de rede em seu PC (que é compartilhado) e você compartilha detalhes de login? Pode valer a pena garantir que ele esteja em seu próprio grupo no AD e que o arquivo seja acesso de gravação explícito para ele / ela só. - Dave
O arquivo está em um DroboPro conectado a um servidor (2008 R2) via iSCSI. Nós temos outro servidor com um DroboPro. Nós usamos o DFS para namespace / replicação. Eu não posso dar a ele acesso de escrita apenas como outros usuários podem precisar escrever para ele quando ele não estiver disponível. - Markaway
Parece que o bloqueio desaparece de 5 a 10 segundos depois que o usuário salva o arquivo. - Markaway