Ir ao conteúdo
  • Cadastre-se

Salvar base de dados do excel no access


Posts recomendados

Pessoal, boa tarde.

 

Estou querendo saber como salvar uma base de dados (uma aba simples com X colunas e Y linhas) em um arquivo access com uma macro.

 

A ideia é que a partir de um start qualquer, a macro pegue os dados no excel e "cole" no access.

 

Um colega já me ajudou a fazer algo parecido, mas salvando apenas uma linha. O código é:

 

'_________________________________________________

Call Conecta
    
    Set Rst = New ADODB.Recordset

Rst.Open "Delete * FROM Chave", Conexao, adOpenKeyset, adLockOptimistic, adCmdText
Rst.Open "SELECT * FROM Chave", Conexao, adOpenKeyset, adLockOptimistic, adCmdText
        
With Rst

.AddNew
.Fields("Aberto/Fechado") = "1"
.Fields("Usuário") = Plan9.Range("as5")
.Fields("Horário de Abertura") = Plan9.Range("as7")
.Fields("Versão") = Plan9.Range("av3")
.Update
'_________________________________________________

 

Mas agora queria fazer com uma quantidade maior de dados (mais linhas) de uma só vez.

 

Ainda tem o detalhe que o número de linhas é variável e tende a aumentar. Além disso, o arquivo vai sempre "colar por cima" no access.

 

Sou até mais ou menos com programação no excel, mas essa integração com o access estou começando agora. 

 

Alguém poderia ajudar?

 

Desde já, agradeço! Abs!!!

 

Link para o comentário
Compartilhar em outros sites

você poderia fazer com q os terceiros entrassem com os dados direto no Access, no final das contas foi p/ isso q ele foi projetado. No Excel você deveria apenas analisar as informações produzidas pelos dados inseridos no Access.

O Access é muito melhor p/ projetar telas de entradas de dados e pode trabalhar em multitarefa, ou seja várias pessoas entrando dados ao mesmo tempo. A muito tempo atrás eu programei em Access, agora estou enferrujado, mas qq bom programador em Access faz o q você quer com um pé nas costas.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Entendi. Nunca tinha pensado nisso. Vou analisar a viabilidade dessa alteração.

 

O problema que o arquivo (excel) em questão já é usado há um bom tempo para lançamento de informações. E, quando o arquivo é fechado, ele já salva a base em txt. O que queria alterar era isso, ao invés de salvar em txt, salvar em um arquivo do access.

 

Mas de qualquer forma, obrigado pela dica. Será bastante útil em outras situações. Abs!

Link para o comentário
Compartilhar em outros sites

Muito interessante.

 

Mas no caso de inserção direto no Access seria necessário que todos os usuários tivessem access, né?

 

porque no caso que citei na primeira pergunta, mesmo usuários sem access conseguem conectar no arquivo e fazer a alteração.

 

Aqui nem todos possuem access e eu nem sei se faz parte do pacote simples do office. E o arquivo também não ficará na rede, mas esse nem seria um problema nesse caso.

 

Outra pergunta: No caso de um formulário do access, ele executa cálculos? Por exemplo, campo A com valores, outro campo B com valores e um campo C que seria a "soma do total"? Ou seria necessário inserir somente os valores e realizar o cálculo à parte?

 

 

Link para o comentário
Compartilhar em outros sites

A muitos anos atrás, quando eu programava em Access...

Eu montava um pequeno executável q servia p/ entrada de dados e conectava em rede com a base de dados central, isto só pode ter melhorado.

Os formulários do Access são o q há de melhor p/ entrada de dados, você pode fazer qq coisa com eles. 1000 a 0 no Excel.

O ideal é você entregar suas planilhas p/ um bom programador em Access e pedir p/ ele automatizar tudo pelo Access. Obviamente retire qq informação sensível.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Basole , dei uma olhada aqui. A ideia é bem essa mesmo.

 

O código deu um erro na hora de abrir a conexão (cn.Open strCon). Tentei alguns ajustes, mas nada. No entanto não tem problema. Posso solucionar isso depois.

 

Fiquei interessado mesmo nada parte que insere os dados. Vi que os códigos são parecidos com o que eu mostrei na minha primeira pergunta. Mas o seu sempre adiciona em uma linha abaixo no access, né?

 

E vi também que você usa um Loop. No arquivo exemplo que você mandou deve ser rápido. Mas se tiver umas 10 mil linhas você acha que vai demorar muito?

 

valeu a ajuda...

Link para o comentário
Compartilhar em outros sites

2 horas atrás, Fernando.Igor disse:

O código deu um erro na hora de abrir a conexão (cn.Open strCon). Tentei alguns ajustes, mas nada

- Qual erro que a presentou ?

 

2 horas atrás, Fernando.Igor disse:

E vi também que você usa um Loop. No arquivo exemplo que você mandou deve ser rápido. Mas se tiver umas 10 mil linhas você acha que vai demorar muito?

- Depende muito do equipamento e da conexao(* se o BD na rede), mas 10 mil, demorará em torno de 10 segundos. é vapt-vupt. 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

12 horas atrás, Basole disse:

- Qual erro que a presentou ?

Era um "Erro inesperado". Tinha um código, mas eu não anotei. Mas agora cedo rodou de boa. Deu super certo, era isso mesmo! :)

 

12 horas atrás, Basole disse:

- Depende muito do equipamento e da conexao(* se o BD na rede), mas 10 mil, demorará em torno de 10 segundos. é vapt-vupt. 

Entendi. Rodei aqui com 10 mil linhas e demorou um pouco mais, mas ainda é um tempo aceitável. Estava com medo de ser minutos.

 

Agora que eu terei a base no Access, você saberia me dizer como eu executo uma consulta. Estou pensando em deixar o critérios definidos, mas preciso executar sempre que a base for atualizada. Na verdade se fosse possível inclusive alterar os critérios por macro seria melhor ainda!

 

Outra coisa, @Basole : Como alternativa para o problema inicial, eu vi que tem como deixar uma tabela no access vinculada a uma planilha de excel. Isso aparentemente resolveria meu problema tb, mas eu precisaria a partir do excel sempre atualizar essa tabela do access. Você sabe como eu poderia fazer isso? Quais dessas duas alternativas você acha melhor?

 

Abs!

Link para o comentário
Compartilhar em outros sites

@Fernando.Igor nao sei se reparou, na aba Plan1, tem um botao chamado Consulta que é um exemplo de consulta pelo nome e tambem uma consulta pela cidade que é feito em uma outra tabela do access. Este é so um exemplo, mas pode-se incrementar com outros criterios incluindo outros campos e etc.

 

Eu nunca utilizei a vinculacao do access com o excel, então nao posso disser sobre o desempenho e funcionamento. Sempre procuro fazer este vinculo atraves de uma conexao ado ou dao (vba.)

O que pode-se fazer na sua planilha é deixar a atualizacao automatica, ou seja, ao alterar um dado em um intervalo determinado no excel, atualiza os dados na respectiva tabela, automatico no access.

 

 

  

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

19 minutos atrás, Basole disse:

@Fernando.Igor nao sei se reparou, na aba Plan1, tem um botao chamado Consulta que é um exemplo de consulta pelo nome e tambem uma consulta pela cidade que é feito em uma outra tabela do access. Este é so um exemplo, mas pode-se incrementar com outros criterios incluindo outros campos e etc. 

É vdd, @Basole tinha reparado por alto somente. Vou dar uma olhada aqui. Mas esse sentido de "consulta" é mais tipo "resgatar a informação que está no access", "fazer o caminho inverso", né? Esse tipo de conhecimento também me interessa e vou dar uma pesquisada.

 

Mas quando disse "executar uma consulta" estava me referindo àquelas Consultas que aparecem no painel à esquerda no access, embaixo das Tabelas. Pelo que eu entendi, aquilo são Consultas já pré-configuradas, certo? Que eu preencho com os critérios e campos desejado e executo. Pelo que eu entendi então é tipo uma rotina de filtrar uma base (ou excluir, add etc). Era executar essas Consultas que eu estava me referindo... queria saber se existe algum código simples que as execute.

 

Não sei se eu estou viajando e no fundo são as mesmas coisas, mas tenho impressão que com essas Consultas configuradas eu não precisaria escrever os parâmetros no código. No entanto seria uma Consulta "fixa" e caso se quisesse mudar talvez daria a mesma coisa...

 

30 minutos atrás, Basole disse:

Eu nunca utilizei a vinculacao do access com o excel, então nao posso disser sobre o desempenho e funcionamento. Sempre procuro fazer este vinculo atraves de uma conexao ado ou dao (vba.)

O que pode-se fazer na sua planilha é deixar a atualizacao automatica, ou seja, ao alterar um dado em um intervalo determinado no excel, atualiza os dados na respectiva tabela, automatico no access.  

Entendi... estava realmente pensando em deixar essa vinculação. O problema que é uma pasta compartilhada na nuvem, então acho que o vínculo vai dar problema, porque quando eu fizer, o path do arquivo vai ser [...]\Fernando\[...] e depois que outro usuário atualizar o path já vai ser outro e penso que pode dar problema por causa disso.

 

Mas vou analisando aqui.. fazia muito tempo que não mexia com access (e quando mexia tb não fazia qse nada). É uma ferramenta muito completa, mas também muito complexa no início.

 

Abs!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!