MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

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

    avatar
    PINHO1307
    Novato
    Novato

    Respeito às regras : 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 Empty [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 15/9/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
    avatar
    PINHO1307
    Novato
    Novato

    Respeito às regras : 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 Empty Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 15/9/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
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 15/9/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Instruções SQL como utilizar...
    avatar
    PINHO1307
    Novato
    Novato

    Respeito às regras : 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 Empty Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 15/9/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
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 15/9/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Instruções SQL como utilizar...
    avatar
    PINHO1307
    Novato
    Novato

    Respeito às regras : 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 Empty Re: [Resolvido]Exportar dados de consulta para o Excel via VBA

    Mensagem  PINHO1307 15/9/2017, 17:24

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

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

    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  JPaulo 15/9/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Exportar dados de consulta para o Excel via VBA Folder_announce_new Instruções SQL como utilizar...
    avatar
    erismarlima
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 26/01/2015

    [Resolvido]Exportar dados de consulta para o Excel via VBA Empty Uma dúvida!

    Mensagem  erismarlima 7/2/2021, 22:14

    Meus caros, boa noite!
    Uma duvida, para que este codigo funcione é necessário que o local indicado em "strLivro" já contenha um arquivo Excel criado com o nome indicado?

    Testei-o e deu o seguinte erro:
    "
    Erro em tempo de execução '1004':
    não foi possivel encontrar C:\teste.xlsx. É possivel que ele tenha sido movido, renomeado oou excluído?
    "

      Data/hora atual: 23/6/2021, 07:09