Uma das facilidades máximas do MS Access é a possibilidade de conectá-lo a qualquer base de dados e a partir disso poder extrair e manipularmos os dados de forma rápida e eficiente. Obviamente a facilidade e a velocidade disso está ligado a proficiência no aplicativo.
É normal precisarmos acessar alguma tabela ou query do MS Access precisando exportá-la para um arquivo texto delimitado por TAB. Como se faz isso?
No exemplo a seguir temos 3 necessidades atendidas:
- O acesso aos dados de uma query.- E exportação desses dados seguindo um formato em uma nova tabela.- A exportação deste mesmo resultado num arquivo texto.
Para tanto estamos utilizando o método DAO.
O que são DAO e ODBC?Objetos de acesso a dados (DAO) e o Open Database Connectivity (ODBC) são APIs que permitem que escrevamos aplicativos independentes de qualquer sistema gerenciador de banco de dados (DBMS).O DAO é familiar aos programadores de banco de dados que usam o VBA do Microsoft Access ou Microsoft Visual Basic. O DAO usa o mecanismo de banco de dados Microsoft Jet para fornecer um conjunto de objetos de acesso a dados:
- banco de dados de objetos,- objetos tabledef e- querydef,- objetos recordset e- outros.O DAO funciona melhor com arquivos .ACCDB como aqueles criados pelo Microsoft Access, mas também podemos acessar outras fontes de dados ODBC através dele e outros mecanismos de banco de dados Microsoft Jet.
O ODBC disponibiliza uma API de outros fornecedores de banco de dados diferentes que implementaram os drivers ODBC para um determinado DBMS. O programa utiliza essa API para chamar o Gerenciador de Driver ODBC, que passa as chamadas para o driver apropriado. O driver, por sua vez, interage com o DBMS usando o SQL.
Classes do DAOAs classes DAO também podem acessar uma grande variedade de drivers disponíveis para o Open Database Connectivity (ODBC).
CDaoWorkspaceGerencia uma sessão de banco de dados nomeada, protegida por senha de login para fazer logoff. A maioria dos programas usam o padrão.CDaoDatabaseUma conexão com um banco de dados através da qual pode operar os dados.CDaoRecordsetRepresenta um conjunto de registros selecionados de uma fonte de dados.CDaoRecordViewUm modo de exibição que exibe registros do banco de dados sob controle.CDaoQueryDefRepresenta uma definição de consulta, normalmente salva em um banco de dados.CDaoTableDefRepresenta a definição armazenada de uma tabela base ou tabela anexada.CDaoExceptionRepresenta uma condição de exceção decorrentes das classes DAO.CDaoFieldExchangeSuporta as rotinas de exchange (DFX) do campo de registro DAO usadas pelas classes de banco de dados DAO. Você normalmente não irá usar essa classe diretamente.Classes relacionadasCLongBinaryEncapsula um identificador para o armazenamento de um objeto binário grande (BLOB), como um bitmap. Os objetos CLongBinary são usados para gerenciar grandes
dados armazenados em
objetos e tabelas de banco de dados.COleCurrencyUm tipo aritmético de ponto fixo, com 15 dígitos antes do ponto decimal e 4 dígitos após.
COleDateTimeRepresenta os valores de data e hora.COleVariantDados VARIANTs podem ser armazenados em vários formatos.
O código abaixo serve de exemplo para que possa ampliar conforme as suas necessidades:
Public Sub DAORecordset()' Definição do acesso a dados.Dim db As DAO.DatabaseDim qdf As DAO.QueryDefDim rs As DAO.RecordsetDim strfile As StringDim Strstring As StringDim strValue As StringDim nLine As StringDim nSetor As VariantDim nCities As StringDim preCity As StringDim nFlag As BooleanLet fFile = FreeFile'Nomeia o arquivo texto que receberá os dados na pasta e arquivo definidosLet strfile = "D:\Bernardes\TextFileName.Txt"' Informa o nome da Query que será a base dos dados considerados.Set db = CurrentDbSet qdf = db.QueryDefs("qry_Lin_Export")Set rs = qdf.OpenRecordset' Abre o arquivo onde serão gravados os dados.Open strfile For Output As #fFile' Garante que o processo só rodará enquanto não for o final, nem o começo do Recordset.If Not (rs.EOF And rs.BOF) ThenDo While Not rs.EOFLet nLine = rs.Fields(0).ValueLet nSetor = rs.Fields(1).ValueLet nCities = ""Let nFlag = TrueDo While Not rs.EOF And (rs.Fields(1).Value = nSetor)If nFlag ThenLet nCities = nCities & Trim(rs.Fields(2).Value) & "/"Let preCity = Trim(rs.Fields(2).Value)Let nFlag = FalseElseIf preCity <> Trim(rs.Fields(2).Value) ThenLet nCities = nCities & Trim(rs.Fields(2).Value) & "/"End IfEnd Ifrs.MoveNextLoop' String final a ser exportada.Let Strstring = nLine & vbTab & nSetor & vbTab & Replace(nCities, " / ", "/")'Let strValue = Now() & " | " & nSetor & ": " & Replace(nCities, " / ", "/") 'Replace(strValue, Chr(13), "")Debug.Print Now() & " | " & Strstring'Exporta para tabela.DoCmd.SetWarnings (False)' Grava o resultado como um registro dentro de uma tabela previamente preparada.DoCmd.RunSQL ("INSERT INTO tbl_Linhas_Brick_Sector_002_Horizontalizado ( Linha, Setor, CIDADE ) " & _"SELECT '" & nLine & "' AS Line, " & nSetor & " AS Sector, '" & nCities & "' AS City " & _"FROM tbl_Sys_Add")DoCmd.SetWarnings (True)' Grava a string resultante da consolidação.Print #fFile, StrstringLet Strstring = ""Looprs.CloseClose #fFileSet rs = NothingSet qdf = NothingSet db = NothingEnd IfEnd Sub
Veja outros códigos:
Leia também:
Conheça também:
Série Piece of Cake
- PIECE OF CAKE - MS Excel - Zipando - Compacte no formato Zip
- PIECE OF CAKE - MS Excel - Zipando - Escolha os Arquivos a Compactar
- PIECE OF CAKE - MS Excel - Zipando - Escolha uma Pasta e Compacte
- PIECE OF CAKE - MS Excel - Zipando - Compacte Todos os Arquivos da Pasta
- PIECE OF CAKE - MS Excel - Zipando - Compacte a Planilha Atual
- PIECE OF CAKE - MS Excel - Zipando - Compacte e Envie por e-Mail
- PIECE OF CAKE - Connecting to Oracle 12g with Excel VBA
- PIECE OF CAKE - Extract Path From String
- PIECE OF CAKE - Detecta se Arquivo Existe
- PIECE OF CAKE - MS Excel - Finding Last Row
- PIECE OF CAKE - Obtendo Endereço IP
- PIECE OF CAKE - Criando Arquivo Texto Externo
- PIECE OF CAKE - Criando Tabelas no SQL Server a partir do MS Excel
- PIECE OF CAKE - Notação Húngara
- PIECE OF CAKE - Usando Stored Procedures
- PIECE OF CAKE - Microsoft Access - Removendo Prefixo das Tabelas
- PIECE OF CAKE - MS Access e MS Word - Técnica de Automação
- PIECE OF CAKE - MS Access - 5 Formas Manuais de Reparo
- PIECE OF CAKE - Correção de Métricas
- PIECE OF CAKE - Convertendo Texto em Imagem
- PIECE OF CAKE - Excel - Manipule o Google Maps em sua Planilha
- PIECE OF CAKE - VBA Excel - Traduzindo Planilhas - Google Translate API
- PIECE OF CAKE - Defina a Latitude e a Longitude
Séries Donut
- DONUT PROJECT 2018 - VBA - 12 - Aumente sua Produtividade
- DONUT PROJECT 2018 - VBA - 11 - Os Benefícios do Controle de Versão
- DONUT PROJECT 2018 - VBA - 10 - Loop For-Each
- DONUT PROJECT 2018 - VBA - 09 - Método Count
- DONUT PROJECT 2018 - VBA - 08 - Referenciando Ranges
- DONUT PROJECT 2018 - VBA - 07 - Amostra de Macro
- DONUT PROJECT 2018 - VBA - 06 - Recursos Adicionais
- DONUT PROJECT 2018 - VBA - 05 - Gravando a Primeira Macro
- DONUT PROJECT 2018 - VBA - 04 - Opções de Solução
- DONUT PROJECT 2018 - VBA - 03 - Requisitos e Preparação
- DONUT PROJECT 2018 - VBA - 02 - Continua Cético
- DONUT PROJECT 2018 - VBA - 01 - Maximizando Sua Eficiência
- DONUT PROJECT 2018 - Excel - Gravando Macro Altere SELECT por RANGE
- DONUT PROJECT 2018 - O que Desenvolvedores Aprendem com Michael Jordan
- DONUT PROJECT 2018 - Excel - Macros - Mudando o Mindset
- DONUT PROJECT 2018 - Excel - Acelerando Macros
- DONUT PROJECT 2015 - Extraindo e-Mails
- DONUT PROJECT 2015 - Função - Extraindo Elementos da String
- DONUT PROJECT 2015 - Função - Retornando Nº de ocorrências de um Caractere
- DONUT PROJECT 2015 - Função - Retorna Conteúdo Delimitado por 2 Caracteres
- DONUT PROJECT 2015 - Função - Retorna Apenas o Conteúdo Entre Parênteses
- DONUT PROJECT 2015 - Função - Extrai Conteúdo entre Parênteses
- DONUT PROJECT 2015 - Excel - Report Layout
- DONUT PROJECT 2015 - Excel - Grand Totals - Inserindo Totais na Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Mudando a Fonte de Dados da Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Aplicando Refresh em Tabelas Dinâmicas
- DONUT PROJECT 2015 - Como Manter Informações parcialmente Anônimas
- DONUT PROJECT 2015 - Excel - Limpando o Filtro da Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Criando Filtros Múltiplos na Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Criando Filtro de Relatório na Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Remover Campos Calculados da Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Remover Campos da Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Adicionar Campos Calculados na Tabela Dinâmica
- DONUT PROJECT 2015 - Excel - Apagar todas as Tabelas Dinâmicas
- DONUT PROJECT 2015 - Excel - Apagar Tabela Dinâmica Específica
- DONUT PROJECT 2015 - Adicionar Rodapé de Confidencialidade no Office
- DONUT PROJECT 2015 - Excel - Criando uma Tabela Dinâmica
- DONUT PROJECT - Use os add-ins do MS Excel e dê um salto em sua performance
- DONUT PROJECT - VBA - Automatize o Outlook para enviar um e-mail com anexo
- DONUT PROJECT - VBA - Outlook - Salvando arquivos anexados nos e-mails
- DONUT PROJECT - VBA - Criando uma Matriz de Datas MAT - Moving Annual Total
- DONUT PROJECT - VBA - Excel - Atualize Tabelas Dinâmicas
- DONUT PROJECT - VBA - Excel - Removendo os Caracteres Alfabéticos e Especiais
- DONUT PROJECT 2014 - VBA - Access - Criando uma Query com Parâmetros
- DONUT PROJECT 2014 - VBA - Access - Atualizando o conteúdo de uma Query
- DONUT PROJECT - VBA - Access - Saiba o Número de Registro de cada tabela
- DONUT PROJECT - VBA - Access - Extraia Dados sem Problemas de TIMEOUT
- DONUT PROJECT - VBA - Access - Lista o Tamanho de Todas as Tabelas
- DONUT PROJECT - VBA - Excel - Populando um ListBox no seu Formulário
- DONUT PROJECT - VBA - Excel - Importando arquivos CSV
- DONUT PROJECT - VBA - Excel - Deletando Conexões de Dados
- DONUT PROJECT - VBA - Excel - Obtendo o Nome da Planilha sem a Extensão
- DONUT PROJECT - VBA - WORD - Exportação Automatizada - DOC para PDF
Comente e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
Acesse: http://goo.gl/0v6AO
Nenhum comentário:
Postar um comentário