Notifications
Clear all

Utilizando planilhas na rede.

8 Posts
3 Usuários
0 Reactions
1,495 Visualizações
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Prezados, bom dia!

Eu tenho um projeto de cadastro de Avaliações de Desempenho que é utilizado por todos setores da empresa onde trabalho.

É o seguinte:

Na rede, cada setor possui uma pasta com uma cópia desse projeto de Cadastro. Dai os dados são cadastrados em um único banco de dados.

O problema é que, por se tratar de apenas uma planilha como banco de dados, quando um estiver utilizando-a, o outro fica impossibilitado de utilizá-la, pois a mesma está aberta.

Eu tenho um código que, antes de gravar os registros no Banco de dados, o mesmo verifica se o tal banco de dados está aberto ou não e, caso estiver, o sistema, através de msgbox, pedi que o usuário aguarde alguns instantes, pois tem outra pessoa utilizando o banco de dados.

A minha pergunta é: existe a possibilidade do projeto de cadastro, gravar os dados no banco de dados, mesmo que ele estiver aberto em outro pc?

 
Postado : 13/03/2015 5:34 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Lorenzon,

A maneira mais fácil de fazer isso é você fazer seu Banco de Dados em Access ou outro SGBD - Sistema de Gerenciamento de Banco de Dados e usar o Excel apenas como interface do aplicativo. Através de códigos VBA, você faz, de dentro do Excel, o acesso à base de dados (no Access por exemplo, que é multi usuário). Desse modo, você instala nos terminais dos funcionários apenas as planilhas com os códigos VBA. Em um caminho da rede você coloca sua base de dados e todos poderão acessar simultaneamente, da mesma forma como funcionam todos os aplicativos que conhecemos.

Anexo, segue um pequeno exemplo de como acessar tabelas distintas de um banco de dados.

 
Postado : 13/03/2015 7:42 am
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Wagner,

É exatamente isso que eu preciso!

Pretendo deixar o projeto de cadastro exatamente como esta, trocando apenas o nome e o caminho do banco de dados que, nesse caso, será o em formato de Access.

Como que eu faço para criar um banco de dados em Access?

Vale ressaltar que o meu atual banco de dados executa uma userform. Alterando-o para Acess, como eu farei isso?

 
Postado : 13/03/2015 1:07 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Wagner,

Já contatei o setor de TI na empresa onde trabalho e, ao sugerir a implantação do Access, como banco de dados, fui informado que não há licença para o utilizarmos.

Esse SGBD é free? Como faço?

 
Postado : 13/03/2015 2:21 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

SGBD é a sigla para Sistemas Gerenciado de Banco de Dados e não é um aplicativo. É uma categoria de aplicativos que gerenciam bancos de dados como o SQL Serve, o Oracle, o DB2 e outros. Você também pode achar na Internet muitos gerenciadores de bancos de dados gatunos como o MySql e o Pôsteres.

Entretanto, acho estranho sua TI dizer que não há licença para instalar o Acesso, pois já que as máquinas possuem o Excel e devem ter também o Word e o PowerPoint, porque não o Acesso também? Todos esses aplicativos compõem o pacote do Office da Microsoft e, geralmente, esse pacote é comprado inteiro com todos esses aplicativos para escritório. Verifique essa informação da sua TI com outras pessoas pois, muitas vezes, é apenas falta de informação correta ou má vontade mesmo em se dispor para instalar.

 
Postado : 13/03/2015 4:00 pm
(@lorenzon)
Posts: 355
Honorable Member
Topic starter
 

Wagner,

Sem dúvida eu desdobrarei essa informação para eles.

Mas antes disso, solicito o seu apoio no sentido de:

Você já ajudou-me a fazer o seguinte:

Projeto A abrir o projeto B.

Agora eu preciso que, ao abrir o projeto A, o usuário possa:

Fechar o projeto A e, automaticamente, fechar o projeto B.

Preciso disso, pois o projeto A, que no caso é o banco de dados que fica na rede, não está sendo fechado, impossibilitand que os outros usuários o utilizam.

Eu fiz um exemplo. Observa que o projeto Cadastro abre o projeto Banco.

Seria interessante que, ao abrir o projeto Cadastro, o projeto B fosse encerrado.

 
Postado : 16/03/2015 8:19 am
(@mykemeris)
Posts: 8
Active Member
 

olá

faça o seguinte
mude esta linha

    Dados.Open ComandoSQL, conTarefas, adOpenForwardOnly, adLockReadOnly, adCmdText

por esta

 Dados.Open ComandoSQL, conTarefas, adOpenDynamic, adLockOptimistic, adCmdText

em ambas ocorrências

quando abrir, e quando for realizar ,insert, select,update e delete

 
Postado : 18/05/2015 6:31 am
(@mykemeris)
Posts: 8
Active Member
 

AdOpenDynamic = melhor tipo de cursor e também o mais caro (exige mais do servidor para mante-lo). Consulta abertas com esse tipo de cursor as linhas do banco não são lidas e sim acessadas dessa forma é possível pegar atualizações, deleções e INSERÇÕES de outros usuários. O Access não da suporte para esse tipo de cursor.

AdLockBatchOptimistic= Alguns aplicativos podem descarregar um conjunto de registro para o cliente, cortar a conexão com o servidor, atualizar várias linhas e depois tentar gravar todas as alterações no banco de dados estabelecendo nova conexão.Este método é usado com conjuntos de registros desconectados.

CursorType
Propriedade que define o tipo de cursor a ser aberto:

AdOpenForwardOnly = este cursor é somente de avanço e também o cursor default(caso você não especifique o tipo de cursor esse será definido automaticamente).Este cursor não permite retornar nas linhas acessadas só pode ser percorrido para frente.
AdOpenKeyset = este cursor associa um número para cada linha acessada, ao ser solicitado a linha ele acessa o banco, dessa forma com esse cursor é possível pegar alterações e deleções numa aplicação multiusuario.Esse seria o melhor cursor para o Access.

adOpenStatic = este cursor efetua uma copia do banco como se fosse uma foto (snapshot). Não pega alterações nem deleções.
Controle de Concorrência (LockType)
Propriedade que define o tipo de bloqueio do registro:
AdLockReadOnly= Use este tipo de bloqueio para abrir um cursor somente leitura.Neste caso não será possível alterar ou deletar o registro.Normalmente este cursor é utilizado somente para exibir os dados para o usuário.

AdLockOptimistic= Esta é a técnica mais comum de bloqueio.O Banco de dados coloca um bloqueio na(s) linha(s) enquanto a(s) atualiza.
AdLockPessimistic= Esta é a forma mais rígida de controle de concorrência.A linha é bloqueada enquanto o cursor estiver aberto.


 
Postado : 18/05/2015 6:44 am