Vídeo recomendado
https://youtu.be/diWPPPhW-9E

excel e macro, cria e controla um banco de dados[RESOLVIDO]

Discussões principalmente sobre SQL e outros problemas relativos a bancos de dados, relacionais ou não
Edcronos
Manda bem
Manda bem
Mensagens: 122
Registrado em: Qua Abr 02, 2014 2:23 am

excel e macro, cria e controla um banco de dados[RESOLVIDO]

Mensagem por Edcronos »

será que alguem tem um exemplo pronto de excel e macro que cria e controla um banco de dados

eu já tentei mas não consegui, se bem que estou achando que tinha faltado era as referencias no vba

no caso o baco de dados não vei ser fixo,
quero criar referencias de pesquisas e comparações de dados que se faz na planilha

estou achando que postei no lugar errado, mas...
vou editar o tópico até conseguir ou alguém responder...
tbm como um memorando.


numa pesquisa aqui achei uma pagina que tem alguns detalhes importantes, além de falar de pontos chaves de vários bancos de dados
http://www.codeproject.com/Articles/586 ... PostgreSQL


o assunto da escolha é complicado...
https://www.scriptcase.com.br/forum/ind ... 354.0.html
http://pt.stackoverflow.com/questions/8 ... postgresql

-------------------------------------------------------------------
como eu tinha que começar de algum lado...

escolhi o PostgreSQL
mas está dificil

estou tentando ler algumas coisas a respeito mas o fato de não saber ingles e o tradutor as vezes mais atrapalhar, torna tudo mais dificil
http://stackoverflow.com/questions/5509 ... xcel-sheet
http://blog.mclaughlinsoftware.com/micr ... xcel-2007/
https://support.office.com/en-ie/articl ... n-IE&ad=IE


Parece que encontrei um tutorial útil.
http://talendbrasil.com.br/2011/02/14/s ... lha-excel/

Talvez a parte pura do banco de dados ajude na interação e no uso das funções
http://jquerydicas.blogspot.com.br/2014 ... dados.html
o blog só fala de bancos de dados

---------------------------------------------------------------
algo a respeito de Java excel e banco de dados "meio antigo"
pode ser uma boa para quem gosta de mexer com planilha, sabe um pouco de vba e quer iniciar em outra liguagem de programação
http://www.guj.com.br/java/31858-ler-de ... o-de-dados

http://stackoverflow.com/questions/3640 ... g-prompted
http://www.mrexcel.com/forum/excel-ques ... excel.html
http://www.devmedia.com.br/lendo-e-escr ... rte-i/7328
http://com4j.kohsuke.org/
http://obba.info/

Desculpa misturar as coisas, é que eu estou tentando conciliar as ideias e definir um rumo mais sólido


fui dar uma olhada em um forum de access
http://www.maximoaccess.com/
e fiquei totalmente perdido,
não entendi o pq tudo ser tão diferente do excel apesar do conceito ser o mesmo
Editado pela última vez por Edcronos em Dom Ago 30, 2015 4:05 am, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: excel e macro que cria e controla um banco de dados

Mensagem por Mikel Silveira Fraga »

Edcronos, boa tarde e seja bem vindo ao fórum.

Cara, se você é iniciante no mundo de VBA, já chegar trabalhando com banco de dados vai ser muito complicado, mas não impossível.

Não estou tendo muito tempo, mas vou ver se consigo ir editando algumas dicas neste tópico, para poder lhe ajudar.


A primeira coisa que acredito ser fundamental para se iniciar um trabalho com o Banco de Dados é, saber exatamente o que é um banco de dados e como funciona. Uma coisa boa de se trabalhar com BD´s atualmente é que, independente que você escolha utilizar PostGree SQL, MySQL, Mongo BD, Maria BD, Firebird, Oracle, MS SQL Server, MS Access, etc, é a padronização da Linguagem SQL.

A linguagem SQL é utilizada para realizar consultas e manipulação de todos esses banco de dados citados acima, tendo como diferença apenas alguns parâmetros discretos. Então, antes de tentar iniciar um projeto integrando MS Excel com um Banco de Dados, aconselho que aprenda antes o Conceito de Modelagem Relacional para BD´s e a Linguagem SQL.

Seguem duas dicas abaixo, para começar (sites em português):
- Curso de SQL Completo da Softblue;
- SQL para Iniciantes do RBTech.info.

Todos os dois cursos utilizam o MySQL, mas como eu disse, o aprendizado de um não irá interferir em ser aplicado no outro.

Pessoalmente falando, não conheço o curso do RBTech, mas estou tentando arrumar um tempo para avaliá-lo, pois o autor do site é muito bom e gosto sempre de acompanhar seus Vídeos/Artigos.

Em relação ao Curso da Softblue, fiz quando estava aprendendo a trabalhar com SQL e gostei muito do curso.

Acho que vale a pena dar uma olhada nos dois cursos, para começar.

Como disse, vou postando algumas coisas de pouco a pouco. Dê uma olhada nesse acima e me dê sua opinião.

Abraços e bons estudos.


Edcronos
Manda bem
Manda bem
Mensagens: 122
Registrado em: Qua Abr 02, 2014 2:23 am

Re: excel e macro que cria e controla um banco de dados

Mensagem por Edcronos »

obrigado pelas dicas vou dar uma olhada

eu falo que sou iniciante pq sempre estou aprendendo algo novo
minha curva de aprendizado é meio conturbada
para conseguir entender eu acabo misturando um monte de coisas

numa mistura danada e numa tentativa de interagir o excel com algo mais entrei num forum de access "pensei que funcionava como banco de dados"
isso pq a unica interação que eu tinha conseguido até hoje foi com paginas da internet

para tentar entender o conceito de logica de programação do access fiz uma planilha para listar arquivos de uma pasta e listar as tabelas para escolher e importar para o excel
http://www.maximoaccess.com/t23337-list ... tipo-accdb
parece que o pessoal não lida muito bem com interação do access a partir de outros programas
Anexos
Excelacesimpo.zip
(32.14 KiB) Baixado 769 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: excel e macro que cria e controla um banco de dados

Mensagem por Mikel Silveira Fraga »

Edcronos, boa noite.

Li seu tópico no MaximoAccess e entendo sua situação, mas na verdade acredito que você esteja fazendo uma pequena confusão.

Vou tentar explicar, pegando como base a Interação Excel e Access.

Como você mesmo mencionou, seu problema não é com Excel, pois você disse que conhece bem a ferramenta. Analisando as bibliotecas selecionadas na referência, você não esta sabendo quando utilizar referência X ou Y. Bem, de uma olhada nos links abaixo:
- Criando Banco de Dados e tabelas - Site Macoratti.net;
- ADO, ADOX - Manual de Sobrevivência ... - Site Macoratti.net

Estes links darão uma explicação sobre quais bibliotecas utilizar em determinado momento. Carregando todas estas bibliotecas, você irá gerar um arquivo pesado, sem necessidade.

Outro ponto, não acho que seja necessário conhecimento aprofundado em Access para realizar a interação. Procure aprender a estruturar uma tabela de dados no Access, que já será o suficiente. Claro que, se você estiver com disposição para aprender a trabalhar com Access, sempre é bem vindo. Eu mesmo tenho aprofundado um pouco mais em Access, mas apenas com o objetivo de agregar conhecimento. Tanto para realizar Exportação do Access x Excel, quanto o caminho oposto, o ponto de partida (desenvolvimento VBA) pode ser feito completamente pelo Excel, sem necessidade de se conhecer Macros/VBA do Access.
Edcronos escreveu:minha curva de aprendizado é meio conturbada
Sobre esse comentário, sempre falo para as pessoas que me perguntam sobre VBA a importância de se adquirir um conhecimento básico com solidez. Como você, também aprendi as coisas conforme minha necessidade. No ano passado, comprei alguns cursos do Prof. Julio Battist, os quais me ajudaram muito a compreender conceitos padrões da própria Linguagem VBA.

Outra dica que lhe dou sobre interação com Excel VBA e Banco de Dados, de modo geral, é conhecer um pouco da linguagem antecessora do VBA, no caso a plataforma Visual Basic 6. Atualmente, eu a tenho estudado muito para aprofundar nas possibilidades do VBA, como também tenho buscado conhecimento com VBScript, direcionado para administração de redes. Os dois conhecimentos (VB6 e VBScript) tem agregado muito as possibilidades de uso do VBA.

De uma olhada nos dois links acima, sobre as bibliotecas. Eles vão lhe auxiliar muito nesse processo de compreensão da interação entre Excel VBA e Banco de Dados.
Para finalizar, segue um link de um outro tópico do fórum, com um projeto da faculdade, onde desenvolvi uma ferramenta para PCP Industrial, utilizando Excel VBA e MySQL. Caso tenha interesse em dar uma olhada, é só baixar o instalador no link do tópico e testar. Lembrando que ele funciona apenas com Windows 32 bits e Office 32 bits.

Vamos conversando. Abraços e bons estudos.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Edcronos
Manda bem
Manda bem
Mensagens: 122
Registrado em: Qua Abr 02, 2014 2:23 am

Re: excel e macro que cria e controla um banco de dados

Mensagem por Edcronos »

ola
suas dicas são muito boas e bem vidas
até video aula que eu odeio
a sua indicação foi muito bem vinda,
e só no exemplo já deu para ver que é muito bem feito e sem enrolação

por enquanto não pretendo aprender access profundamente,
mas na interação com o vba tem que se saber como usar pelo menos o basico

tipo, para excel, se quiser pegar uma range se usa range(), para celulas Cells(),para uma aba Sheets() e por aí vai
então para pegar um valor de uma celula e aba especifica se tem que saber sobre sheet e cells pelo menos, mesmo se for fazer isso a partir do access

para access tabelas seria como sheets e tem os campos
então tem que saber as características para pegar qualquer coisa e para isso apenas alguem que saiba mexer com access independente se a pessoa conhece o excel ou não

para saber o nome da aba ativa no excel se usa ActiveSheet.Name
eu não posso usar o mesmo comando no acces, mesmo usando a macro a partir do excel

para listar os nomes das abas em um combo box eu uso essa macro:

Código: Selecionar todos

Sub ComboBoxPLanilha(NomeCombobox As String, Optional FiltrarSemSetores As Byte)

    With Me.Controls(NomeCombobox)
        On Error Resume Next
        Do While .ListCount > 0: .RemoveItem (0): Loop    'limpa Combobox
        .AddItem "PLanAtiva"
        For Each sheetos In Worksheets
            aa = sheetos.Name
            If FiltrarSemSetores = 1 Then
                N = 1
                If PlanExiste(aa) = 1 Then If Worksheets(aa).Range("P12") <> "Nome setor" Then N = 0
                If N = 1 Then .AddItem aa
                N = 1
            Else
                .AddItem aa
            End If
        Next
    End With
End Sub
"repara a bagunça não"

no access para as tabelas

Código: Selecionar todos

Private Sub LIST_tabel_DropButtonClick()

If List_Arq.value = "" Then Exit Sub

    Dim cn As ADODB.Connection, rs As ADODB.Recordset
    Set cn = New ADODB.Connection: 
Set rs = New ADODB.Recordset

    prov1 = "Provider=Microsoft.ACE.OLEDB.12.0;"    ' para .accdb

    With Me.LIST_tabel
        Do While .ListCount > 0: .RemoveItem (0): Loop
        N_Aquiv = List_Arq.value
        Aquiv = "Data Source=" & LocArq & N_Aquiv & ";"

        prov = prov1
        cn.Open prov & Aquiv

'Daqui para baixo é para interagir com o arquivo aberto e usar os comando suportados pelo access

        Set rs = cn.OpenSchema(adSchemaTables)
        While Not rs.EOF
            NTab = rs!TABLE_NAME
            If Not (NTab Like "MSys*" Or NTab Like "~*") Then .AddItem NTab
            rs.MoveNext
        Wend
    End With

  rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub
como pode ver para se listar as tabelas se usa comandos referente ao ado ou dao , eu pelo que eu entendi é uma particularidade do access assim como nos bancos de dados

eu consegui fazer oq queria a parti de exemplos puramente access sem interação com outras ferramentas

Código: Selecionar todos

 Set rs = cn.OpenSchema(adSchemaTables)
        While Not rs.EOF
            NTab = rs!TABLE_NAME
            If Not (NTab Like "MSys*" Or NTab Like "~*") Then .AddItem NTab
            rs.MoveNext
        Wend
como pode ver não importa o conhecimento em vba excel se a pessoa quer interagir com o access mesmo pelo proprio excel, é importante ter em mãos a sintaxe de programação do próprio access

a planilha que fiz foi apenas para aprender algo

vc tem razão estou muito perdido sobre as referencias, e não apenas com ado e dao
mas pelo que eu já li as bibliotecas não ficam no arquivo e apenas são "referenciadas" quando iniciadas , não pesando ,
tanto é que se for rodar o arquivo em um pc que não tenha as dll e afins já instalado dá todo tipo de erro
a planilha apenas ganha o poder de chamar e ter posse de um dicionario

tipo ado
Dim cn As ADODB.Connection
dim rs As ADODB.Recordset

quando se declara a variavel o tradutor do vba sabe que tem que referenciar aquela variavel diretamente na biblioteca ado

mas bem,
pelo que eu entendi não se pode separar as coisas quando se fala de interação, tem que saber sobre os 2 lados

o pessoal do forum do access simplesmente ignorou o fato de que para interagir com o access tem que usar as ferramentas, comandos e sintaxe de programação do access , independente se vou usar pelo excel ou não

Sobre:
minha curva de aprendizado é meio conturbada
é pq não aprendo facilmente e não consigo decorar nada
eu vou lendo, fazendo, testando até dar certo e assimilando a logica
por isso mesmo uso mais programação de baixo nivel
tipo, uso laço for next com if then em vez de usar o comando find,
mas claro que isso só é valido se se tiver acesso aos dados segmentados


Edcronos
Manda bem
Manda bem
Mensagens: 122
Registrado em: Qua Abr 02, 2014 2:23 am

Re: excel e macro que cria e controla um banco de dados

Mensagem por Edcronos »

Caso não queira le o livro de cima...
e desculpa se falei alguma baboseira.

oq vc achou das macros que fiz e em que eu errei fora as referencias?

eu tenho que acertar a parte de passa a tabela para o Array
Coluno = rs.GetRows

fiz um teste com uma tabela de ruas e cep de 709.440 linhas e 4 colunas
separando os principais e tentando saber o tempo de cada parte da rotina
Sheets("Plan2").Cells(3, 1) = "passar tabela para array = " & Time - StartTime:
StartTime = Time

os tempos ficaram assim
  • 1/7/15 13:11:23
    abrir e listar tabela =00:00:01
    passar tabela para array = 00:00:02
    tranpor array = 00:00:02
    passa para range e fechar = 00:00:06
nem sei se está ruim
minha configuração é i3 3.4 Ghz, 8gb, win7 64b, office 2010 32b

para seguir com os entendimentos
tenho que aprender agora como :

varrer os campos
saber se a tabela tem dependências
filtrar
e pegar valores já filtrados

primeiro vou fazer essa planilha capaz de buscar, filtrar e pegar dados do access , depois vou fazer ela criar e modificar arquivos do access
isso é para assimilar já que não decoro nada


Basole
Colaborador
Colaborador
Mensagens: 67
Registrado em: Qua Mar 20, 2013 6:31 pm

Re: excel e macro que cria e controla um banco de dados

Mensagem por Basole »

Edcronos, boa tarde.

Pelo que entendi, voce está querendo criar uma planilha que abra qualquer bd access e que possa selecionar a tabela desejada.

Veja um exemplo que fiz que faz o que voce precisa.

* Mas no meu exemplo eu usei o componente OWC http://www.microsoft.com/pt-br/download ... px?id=9468 para inserir os dados no proprio userform.
Veja se consegue adaptar a sua necessidade.
Anexos
OWCSpreadSheet.zip
(63.83 KiB) Baixado 648 vezes


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: excel e macro que cria e controla um banco de dados

Mensagem por Mikel Silveira Fraga »

Basole, boa tarde e seja bem vindo ao fórum.

Excelente exemplo desenvolvido por você.

Não testei o funcionamento, pois não estou com o componente OWC (Office Web Component) instalado. mas seguindo a sequência dos códigos, da pra compreender o funcionamento.

Meus parabéns.


Avatar do usuário
Mikel Silveira Fraga
Jedi
Jedi
Mensagens: 1173
Registrado em: Sex Mai 27, 2011 3:27 pm
Localização: Governador Valadares - MG
Contato:

Re: excel e macro que cria e controla um banco de dados

Mensagem por Mikel Silveira Fraga »

Edcronos, boa noite.

Cara, não se preocupe em relação as livros escritos, não me importo em ler.

O exemplo postado pelo Basole faz exatamente o que você precisa. Como mencionado acima, um excelente exemplo.

Caso tenha alguma dúvida, é só falar.

Abraços!!!


Edcronos
Manda bem
Manda bem
Mensagens: 122
Registrado em: Qua Abr 02, 2014 2:23 am

Re: excel e macro que cria e controla um banco de dados

Mensagem por Edcronos »

Basole
obrigado pela planilha de exemplo vou tentar tirar proveito dela
mais uma que não conhecia "Office Web Component"
mas pelo que vi foi feito para o office xp e tem certas vulnerabilidades


eu estou fazendo a planilha para aprender, e talvez um planilha para importação e criação de tabelas
eu já consigo pegar tabelas e importar para a plan
como pode ver pela planilha que postei
download/file.php?id=2530


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder