locked
Exportar para Um Excel semelhante ao relatório

    Question

  • Preciso exportar meus relatórios para excel exatamente como são no relatório. Porém, os formatos tipo caixa controle retangulo etc nao são exportados, consigo exportar apenas as Tabelas.

    Vi que o que eu posso fazer é criar um excel igual ou bem semelhante ao relatório e ali exportar os dados de minha tabela.



    Como faço isso ?



    O que fazer se no próximo mes os registros forem maiores que os do mes anterior ?



    Um Abraço


    Monday, January 28, 2008 12:54 PM

All replies

  • O caminho é este mesmo que você descreveu: criar um arquivo Excel formatado e carregá-lo com dados do Access.

     

    Há diferentes formas para se fazer isto:

    a) Usar automação VBA para preencher a planilha.

    b) Usar hyperlinks na planilha formatada apontando para uma planilha não formatada, e gerar pelo Access a planilha não formatada. Neste caso, é possível quebrar os links, deixando a planilha formatada "livre" para ser distribuída.

     

    Thursday, January 31, 2008 12:06 AM
    Moderator
  • Bom dia! Luiz Cláudio

    Estou com o mesmo problema porem quero utilizar a automação VBA. poderia me dar uma ajuda de como ficaria o codigo.?

    Tuesday, March 04, 2008 12:30 PM
  • Outra opção é utilizar Dados >> Consulta a Dados Externos no Excel.

    Desta forma cria uma consulta direta às tabelas do Acess sem necessidade de automação, e controlando a formatação das células de destino.

    [ ]s

     

    Tuesday, March 04, 2008 4:54 PM
  • O código pode ser feito de muitas maneiras, depende do que você precisa.

     

    Aqui vai um exemplo:

    Code Snippet

     

    Sub LoadData()
    Dim cnn As ADODB.Connection
    Dim strSQL As String
    Dim rst As ADODB.Recordset
    Dim rng As Excel.Range

    On Error GoTo ErrHandler

    Application.Cursor = xlWait

    Set cnn = New ADODB.Connection
    cnn.Open strConn

    Set rst = New ADODB.Recordset
    strSQL = "SELECT ProductID, ProductName, UnitsInStock FROM Products ORDER BY ProductName"
    rst.Open strSQL, cnn, adOpenStatic, adLockReadOnly

    ThisWorkbook.Worksheets(1).Range("A1").Value = "Código"
    ThisWorkbook.Worksheets(1).Range("B1").Value = "Descrição"
    ThisWorkbook.Worksheets(1).Range("C1").Value = "Estoque"
    ThisWorkbook.Worksheets(1).Range("A1:C1").Font.Bold = True
    Set rng = ThisWorkbook.Worksheets(1).Range("A2")
    rng.CopyFromRecordset rst

    ThisWorkbook.Worksheets(1).Range("A:C").EntireColumn.AutoFit

    ExitHere:
    Application.Cursor = xlDefault
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub

    ErrHandler:
    MsgBox Err.Description & vbCrLf & Err.Number & vbCrLf & Err.Source, vbCritical, "Module1-LoadData"
    Resume ExitHere
    End Sub

     

     

     

    Wednesday, March 05, 2008 3:19 AM
    Moderator
  • Olá Luiz Claudio,

     

    Eu criei um módulo e colei esse código, mas deu erro primeiro ele deu erro neste linha

    Dim rng As Excel.Range

     

    depois eu não sei como criar a conectionstring  > strConn ?

     

    Esse módulo está dentro do access, na verdade eu criei um novo mdb vinculei a tabela de um outro banco de dados access versão 97, pois nesta versão eu não consigo criar objetos, por esse motivo que tive de criar um banco no access 2000 e fazer a vinculação e dai estou tentando algo com o que vc disse no post acima.

     

    Agradeço pela ajuda.

     

    Abs,

     

    Adriano_SP

     

     

     

    Tuesday, March 11, 2008 1:48 PM