Jump to content
arturm

Exportar para Excel

Recommended Posts

arturm

Olá a todos,

Gostava de aprender como exportar dados do access para o excel, mas que os mesmos sejam colocados num livro previamente formatado e em células especificas.

Exemplo: possuo um form que corre diversos recordset e preenche caixas de texto com os valores obtidos. Numa segunda etapa permitir enviar alguns destes dados para um ficheiro excel onde esses valores seriam armazenados em células e folhas específicas.

Estive a fazer uma pesquisa mas o que encontro é maioritariamente em .net.

Neste contexto o que vos peço são sugestões e/ou exemplos onde possa estudar tais procedimentos.

[ ]'s

ArturM

Share this post


Link to post
Share on other sites
FreiNando

Usando VBA, podes a partir de qualquer aplicação do Office, controlar outra aplicação do Office.

O primeiro passo é inserir a referencia à aplicação pretendida, no teu caso o Excel:

                    Microsoft Excel 14.0 Object Library (Excel 2010)

Depois tens de criar variaveis para aceder ao excel. Para isso deixo-te um exemplo:

Private Sub EscreverNoExcel()
    Dim EXC As New Excel.Application
    Dim WKB As Workbook
    Dim wks As Worksheet
    
    Set WKB = EXC.Workbooks.Open(Ficheiro)
    Set wks = WKB.Worksheets(1)
    
    wks.Range("A1").Value = "Texto inserido pelo Access"
    
    WKB.Close
    EXC.Quit
End Sub

A partir daqui é tudo identico ao VBA do Excel.

Se quiseres que o Excel fique visivel basta colocar a propriedade Visible=True.

Também podes pelo VBA do Excel, ir buscar dados do Access.

Para isso inseres a referencia Microsoft Office 14.0 Access database engine Object Library.

Fica o exemplo de uma função generica para obter o valor de um campo usando uma pesquisa:

Public Function CampoBdAccess(BaseDeDados, Tabela, Condicao, CampoRetorno)
    Dim DB As Database, rst As Recordset
    
    Set DB = OpenDatabase(BaseDeDados)
    Set rst = DB.OpenRecordset("SELECT * FROM " & Tabela & " WHERE " & Condicao)
    If Not rst.EOF Then
        If Not IsNull(rst(CampoRetorno)) Then
            CampoBdAccess = rst(CampoRetorno).Value
        Else
            CampoBdAccess = Empty
        End If
    Else
        CampoBdAccess = Empty
    End If
End Function


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Share this post


Link to post
Share on other sites
arturm

Viva,

É um bom ponto de partida. Vou testar e depois dou feedback.

Obrigado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.