MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Exportar dados de consulta para o Excel via VBA

    Compartilhe

    PINHO1307
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 15/09/2017

    [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 em Sex 15 Set 2017, 12:11

    caros, bom dia.

    Sou novo no fórum e na programação do Access, já procurei e não achei como resolver o problema.

    O que preciso: exportar os dados de uma consulta para uma planilha do excel, e ao mesmo tempo essa informação tem que ir para ultima linha disponível na planilha.

    Estou tentando com esse código, está apresentado o seguinte erro: "Erro de compilação: O tipo definido pelo usuário não foi definido". Esse erro está na linha "Dim rst As ADODB.Recorset". O Access que estou trabalhando é o 2013. Obs.: Criei um módulo publico e ele é acionado por um botão no Formulário.

    Public Sub ExcelTeste()

    Dim objAPP As Object

    Dim objwk As Object

    Dim objSh As Object

    Dim rst As ADODB.Recordset

    Set objAPP = CreateObject("Excel.application")

    objAPP.SheetsInNewWorkbook = 1

    Set objwk = objAPP.Workbooks.Add

    Set objSh = objwk.ActiveSheet

    Set rst = CurrentProject.Connection.Execute("Select * from Consulta_TESTEDESLIGADOS")

    objSh.Cells(3, 3).CopyFromRecordset rst  => aqui gostaria que o programa gravasse na primeira linha disponível. Tem como ?

    rst.Close

    objwk.SaveAs "C:\teste\teste.xls"

    objwk.Close

    objAPP.Quit


    Se alguém puder ajudar, ficarei grato.

    Sds

    Pinho

    PINHO1307
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 15/09/2017

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 em Sex 15 Set 2017, 15:11

    Caros, achei esse código e está funcionando. Mas, gostaria que a linha "xls.ActiveSheet.Range(y).Select" fosse a primeira disponível em branco e a partir daí, colocar as informações.

    Public Sub CriaExcel()
    'By JPaulo ® Maximo Access
    Dim strLivro As String, xls As Object
    Dim db As DAO.Database
    Dim rst, Rst1 As DAO.Recordset
    Dim strSQL, strSQL1 As String
    Dim x As String
    Dim y As String
    Dim z As String

    Set db = CurrentDb
    Set xls = CreateObject("Excel.Application")

    strLivro = "C:\teste.xls" 'diretorio completo do ficheiro
    xls.Workbooks.Open (strLivro)
    xls.Visible = True

    strSQL = "SELECT * FROM TabelaDasConsultas;"

    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
    With rst

    .MoveFirst

    Do Until .EOF
    z = rst.Fields.Item(1) 'nome da consulta na tabela
    x = rst.Fields.Item(2) 'nome do sheet na tabela
    y = rst.Fields.Item(3) 'nome da celula na tabela

    strSQL1 = z

    Set Rst1 = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset)
    xls.Worksheets(x).Activate
    xls.ActiveSheet.Range(y).Select
    xls.ActiveCell.CopyFromRecordset Rst1
    rst.MoveNext

    Loop

    End With
    rst.Close
    Rst1.Close
    xls.ActiveWorkbook.Save
    xls.Application.Quit
    Set xls = Nothing
    End Sub
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9697
    Registrado : 04/11/2009

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  JPaulo em Sex 15 Set 2017, 16:20

    Faça o teste com esta grande alteração e retorne por favor;

    Código:
    Public Sub CriaExcel()
    'By JPaulo ® Maximo Access
    '2017-09-15
    Dim strLivro As String
    Dim xls As Object
    Dim rst As DAO.Recordset
    Dim strSQL
    Dim intUltimaCelula%
    Dim xlsht As Excel.Worksheet

    Set db = CurrentDb
    Set xls = CreateObject("Excel.Application")

    strLivro = "C:\teste.xlsx" 'diretorio completo do ficheiro
    xls.Workbooks.Open (strLivro)
        Set xlsht = xls.Worksheets(1) ' 1 é o primeiro sheet
    xls.Visible = True 'torna o excel visivel

    strSQL = "SELECT * FROM SuaTabela ou Consulta;" 'select á tabela no banco ou consulta
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

    If rst.RecordCount = 0 Then Exit Sub 'se não tem registros, morre aqui
        xls.Worksheets(1).Activate
        xls.ActiveSheet.Range("A1").Select 'seleciona a primeira celula
            intUltimaCelula = xlsht.Cells(xlsht.Rows.Count, 1).End(xlUp).Row 'obtem a ultima celula preenchida
            intUltimaCelula = intUltimaCelula + 1 'acrescenta mais uma celula, que será a vazia
        xls.ActiveSheet.Range("A" & intUltimaCelula).Select 'seleciona-a
        xls.ActiveCell.CopyFromRecordset rst 'copia os dados da tabela
    'fecha o recordset e limpa a memoria
    rst.Close: Set rst = Nothing
    'salva o excel
    xls.ActiveWorkbook.Save
    'fecha o excel
    xls.Application.Quit
    'limpa a memoria
    Set xls = Nothing
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    PINHO1307
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 15/09/2017

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 em Sex 15 Set 2017, 16:56

    Deu erro de "Erro de compilação: O tipo definido pelo usuário não foi definido" na linha:

    Dim xlsht As Excel.Worksheet
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9697
    Registrado : 04/11/2009

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  JPaulo em Sex 15 Set 2017, 17:09

    Dentro do VBA, tem de ir a ferramentas, Referencias e ative a referencia Microsoft Excel xx.0 Object Library


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    PINHO1307
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 15/09/2017

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 em Sex 15 Set 2017, 17:24

    Show !!!!!
    Funcionou !!!! cheers

    Valeu !!!!
    Muito obrigado !!! Very Happy Very Happy Very Happy
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9697
    Registrado : 04/11/2009

    Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  JPaulo em Sex 15 Set 2017, 17:29

    Fico feliz.

    Obrigado pelo retorno o forum agradece.

    Quando puder não esquecer de contribuir com o forum, nos links abaixo.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sab 18 Nov 2017, 19:30