Home Excel - Dicas Microsoft Excel VBA Excel VBA - Access x Excel Excel vba planilha importar dados tabela bd access

Excel vba planilha importar dados tabela bd access

E-mail Imprimir PDF
Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções




<< Pratica com Excel x Access - Saberexcel   >>
Neste tabela do Banco de Dados Access contém:

 - Um campo Chamado Nome_Cliente

 - Um campo Chamado Cidade

 - Um campo Chamado Salario
 - Um campo Chamado DataNasc
 - Um campo Chamado

 

Observeração: a base de dados Access.mdb deverá existir dentro do mesmo Diretório

 

'//=======' Esse exemplo de planilha esta na área de assinantes Saberexcel

' http://www.microsoftexcel.com.br

' - - - - - - - - - - - - - - - - - - - - -'

Sub sbx_ler_bd_access_dao()

    'habilite a referencia Microsoft DAO 3.6 dentro de Ferramentas/Referncias

    'caso nao estiver em suas referencias procure por (Sistem32/dao360.dll)

    Dim bd As Database

    Dim rs As Recordset

    Set bd = OpenDatabase(ActiveWorkbook.Path & "\access2000.mdb")

    Set rs = bd.OpenRecordset("Select * From Cliente")

    i = 2

   

    Set rs = bd.OpenRecordset("select count(*) as  vNum from cliente")

   

    '//=======' retornando a mensagem número de clientes cadastrados na tabela access

     MsgBox "Há [ " & rs("vNum") & " ] clientes cadastrados nesta Tabela Access" & vbCrLf & _

            "-----------------------------------" & vbCrLf & _

            "Escola Saberexcel VBA Estudos®" & vbCrLf & _

            "Treinamentos com Macros, Fórmulas e Funções", vbInformation, "Escola Saberexcel VBA Treinamentos®"

    rs.Close

    Set rs = bd.OpenRecordset("Select * From Cliente")

    i = 2

   

    Do While Not rs.EOF

        Cells(i, 1) = rs!Nome_Cliente

        Cells(i, 2) = rs!Cidade

        Cells(i, 3) = rs!Salario

        Cells(i, 4) = rs!DataNasc

        Cells(i, 5) = rs!N°

        rs.MoveNext

        i = i + 1

    Loop

   

End Sub

 

 

'//=======' macro usando instrução for para localizar a região usada e limpar dados
''//=======' observe  que (dois pontos (
:) em códigos significam  (Linha debaixo)

Sub sbx_limpar_teste()

Dim i As Single

For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row

    Range("A" & CStr(i)).Resize(, 5).ClearContents: [g11].clearcontents

Next i
Saber1.Label2.Visible = False

End Sub

'//=======' macro para treinamento e teste com visual basic application

Sub sbx_negritando_dados()

Dim vLinha As Single  'declarado como single por ser muito poucas linhas.estude sobre variáveis

Saber1.[a2:e100].Font.Bold = False

Saber2.[a2:e100].ClearContents

Dim i As Single

vLinha = 2

For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row

      If Saber1.Range("b" & CStr(i)) = Saber1.Range("g1") Then

        Saber1.Range("a" & CStr(i)).Resize(, 5).Font.Bold = True

        Saber1.Range("a" & CStr(i)).Resize(, 5).Copy Saber2.Range("A" & CStr(vLinha))

        Saber2.Range("a" & CStr(vLinha)).Resize(, 5).Font.Bold = False

        vLinha = vLinha + 1

       End If

Next i

'//=======' msgbox retorna vbyesno para acesso a folha de planilha (Saber2)

resp = MsgBox("Dados negritados e copiados para planilha 'Auxiliar' Deseja ver?" & vbCrLf & _

      "[ " & vLinha - 2 & " ] Clientes de " & Saber1.Range("g1").Value, vbYesNo + vbInformation, "Escola Saberexcel VBA Estudos®")
'//=======' retornando valor para um label em  uma determinada folha de planiha usando uma WorksheetFunctions (poderia ter usado a Variavel (vLinha -2)

     Saber2.lbCONTAFILTRO.Caption = "Foram filtrados [ " & Application.WorksheetFunction.CountA(Saber2.Range("a2:a100")) & _    '// Aplicar a var (vLinha) tb retorna  num Cliente

      " ] clientes da cidade de [ " & Saber1.Range("g1").Value & " ]"

     If resp = 6 Then  '//====' 6 é igual a sim

        Saber2.Select

        [a1].Select

     End If

End Sub

'//=======' para retornar a folha de planilha (Saber1)

''//=======' observe que sempre uso o nome da folha de código da folha de planilha [que esta fora do parêntese)

'''//=======' porque se seu usuário mudar o nome da folha de planilha na aba de planilha [nao gerará erro]

Sub sbx_voltar_plan1()

Saber1.Select     '//=======' uso sempre o nome da 'folha de código da folha de planilha' e nao o nome da 'folha de planilha'.

[f1].Select

End Sub



Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções.





   Baixe o exemplo planilha contendo os macros e procedimentos acima:   << Registre-se em nosso Site >>>
Excel vba planilha imprtar dados tabela bd access (59.92 KB)

Última atualização em Sex, 02 de Novembro de 2012 11:45  

Comentários  

 
# kleyton 31/10/2013 16:09
Boa tarde
Professor...

Estou usando vba excel associado ao access e tentando fazer algumas consulta SQL:

Dim bd As Database
Dim rs As Recordset
Dim SQLPeriodo As String

Set bd = OpenDatabase(Ac tiveWorkbook.Path & "\BDFrota.mdb")
Set rs = bd.OpenRecordset("SQLPeriodo")

'Por Nome e Periodo
SELECT Tabela1.[Código], Tabela1.[Nome], Tabela1.[Data], Tabela1.[Cidade], Tabela1.[Estado]
FROM Tabela1
WHERE (((Tabela1.[Nome])="Teste1") AND ((Tabela1.[Data]) Between #1/1/2013# And #12/31/2013#));


Só que não estou conseguindo extrair essa consulta na Planilha.
Responder | Responder com citação | Citação
 
 
# Jpfalcao 28/11/2014 09:40
Olá, professor!

O comando funcionou perfeitamente! Só estou com uma dúvida, o comando para uma tabela com vários registros é lento mesmo ou o problema é aqui só?
Responder | Responder com citação | Citação
 
 
# Jpfalcao 28/11/2014 15:07
Obrigado pela resposta professor! Realmente eram outros códigos, ficou tudo ok!
Responder | Responder com citação | Citação
 
 
# Jpfalcao 28/11/2014 15:11
Só mais uma dúvida, professor. Estou com um problema, tenho um valor em um registro do Access. E quero somar esse valor do registro com o valor de um textbox após pressionar um botão. Eu utilizei assim: consulta("qdisp") = consulta(2) + TextBox4.Text. só que ao invés de somar os 2 valores ele tem colocado os valores lado a lado. Por exemplo, se o valor do access for 5 e do textbox for 6 ele tá atualizando o banco de dados do access para 56, sabe o que pode ser?
Responder | Responder com citação | Citação
 

Adicionar comentário

"Jamais considere seus estudos como uma obrigação, mas como uma oportunidade invejável para aprender a conhecer a influência libertadora da beleza do reino do espírito, para seu próprio prazer pessoal e para proveito da comunidade." Albert Einstein


Código de segurança
Atualizar

Pesquisa Google SaberExcel

Publicidade Google

Publicidade

Rastreamento Correios

Digite o número do SEDEX conforme o exemplo:
Correios do Brasil

Assinatura SaberExcel

Google Associados

Depoimentos

Visitantes SaberExcel

Excel VBA Estudos®
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoje333
mod_vvisit_counterOntem5154
mod_vvisit_counterEsta Semana24993
mod_vvisit_counterSemana passada36487
mod_vvisit_counterEsse mês38722
mod_vvisit_counterMês passado153723
mod_vvisit_counterTodos10461551
Aprenda MS Excel VBA

Adicione Saberexcel Favoritos

 
 

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA

Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel,


   Sobre as WorksheetFunctions Funções de Planilhas que retornam valores do VBA