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.

PROMOÇÃO: Aprenda Excel VBA, escrevendo menos e fazendo mais, com simplicidade de códigos. PagSeguro ou Contas Bancárias



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 Qua, 11 de Março de 2020 17:23  

Comentários   

 
kleyton
# 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.Pa th & "\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.[Nom e])="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 | Citar
 
 
Jpfalcao
# 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 | Citar
 
 
Jpfalcao
# Jpfalcao 28-11-2014 15:07
Obrigado pela resposta professor! Realmente eram outros códigos, ficou tudo ok!
Responder | Responder com citação | Citar
 
 
Jpfalcao
# 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 | Citar
 

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

PROMOÇÃO DIDÁTICOS SABEREXCEL



Adquira já o Acesso Imediato
à Area de Membros

Compra Grantida --- Entrega Imediata

Aprenda Excel VBA com Simplicidade de 
códigos e Eficácia, Escrevendo Menos e
Fazendo Mais.

'-------------------------------------'
Entrega Imediata:
+  500 Video Aulas MS Excel VBA
+  35.000 Planilhas Excel e VBA
+  Coleção 25.000 Macros MS Excel VBA
+  141 Planilhas Instruções Loops
+  341 Planilhas WorksheetFunctions(VBA)
+    04 Módulos Como Fazer Excel VBA
+  Curso Completo MS Excel VBA
+  Planilhas Inteligentes


Pesquisa Google SaberExcel

Publicidade Google

<script type="text/javascript"><!--

google_ad_client = "ca-pub-2317234650173689";

/* retangulo 336 x 280 */

google_ad_slot = "0315083363";

google_ad_width = 336;

google_ad_height = 280;

//-->

</script>

<script type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

</script>

Publicidade

RSFirewallProtected


Google Associados

Depoimentos

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