Notifications
Clear all

Utilizando planilhas na rede.

8 Posts
3 Usuários
0 Reactions
1,522 Visualizações
Lorenzon
(@lorenzon)
Posts: 355
Reputable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 13/03/2015 7:42 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable 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
(@lorenzon)
Posts: 355
Reputable 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
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious 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.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 13/03/2015 4:00 pm
Lorenzon
(@lorenzon)
Posts: 355
Reputable 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
(@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

Se ajudei clique em agradecer

 
Postado : 18/05/2015 6:31 am
mykemeris
(@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.


Se ajudei clique em agradecer

 
Postado : 18/05/2015 6:44 am