Problemas de arquivos do ambiente multiusuário / Excel

0

Temos um arquivo do Excel em nossa rede 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 idéia do que está acontecendo?

Office 2010
Windows 7 Pro x64

    
por Markaway 19.12.2012 / 13:56

3 respostas

1

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

Então, a qualquer momento que alguém abrir o arquivo, ele verá isso:

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

    
por 19.12.2012 / 15:06
1

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 eu 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. Após uma ação de leitura ser concluído, o contador nRead é diminuído em 1.

No caso de um pedido de gravação, o árbitro verifica / espera até que não haja mais ações de gravação ativas (nEscrita = 0), depois disso o Árbitro verifica / aguarda até que todas as ações de leitura sejam feitas (nRead = 0) e então 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)

    
por 21.10.2013 / 20:53
0

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

  • A opção Permitir que os usuários editem intervalos configurados (consulte 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 será liberado.
por 19.12.2012 / 14:02