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

    Exportar um Select variavel do formulario para Excel

    Compartilhe

    Marcio2501
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 24/10/2016

    Exportar um Select variavel do formulario para Excel

    Mensagem  Marcio2501 em Sex 18 Maio 2018, 21:51

    Ola amigos, tudo bem?

    Estou tentando fazer um exporte de dados de uma consulta do Access para o Excel, através de um formulário que montei e contem dois botoes txtExtracao e Comando239.

    O txtExtracao contem "na origem da linha"  uma select de uma tabela que nada mais é as views criadas para extração.
    o comando é o botão que contem o código da ação para extração da base.

    Tentei o seguinte código no evento click:
    Código:
    Private Sub Comando239_Click()

    strConsulta = "SELECT * FROM" & " " & txtExtracao.Value

    strNomePLanilha = "C:\Users\marciossa\Desktop\backup\Mailings\Envio\SMS\teste.xlsm"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExce19, strConsulta, strNomePLanilha

    MsgBox "Tabela Exportada com Sucesso!"
    End Sub


    Acontece que ele dá um erro" Erro em tempo de execução '3011' O Mecanismo do banco de dado não pode encontrar o objeto 'Select * FROM SMS'. Verifique se o objeto existe...."

    Se coloco um nome fixo na consulta ele funciona, minha duvida é como usar o valor do txt (Caixa de controle do formulario)...


    Quem me ajudar agradeço.

    Abraço.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: Exportar um Select variavel do formulario para Excel

    Mensagem  JPaulo em Ter 22 Maio 2018, 10:32

    Olá;

    Repare que a sua instrução está assim;

    Código:
    SELECT * FROM" & " " & txtExtracao.Value

    Isto quer dizer que vai fazer um SELECT a uma tabela cujo nome está no txtExtracao.Value.

    Imagine que o resultado dessa caixa de texto é "tblTeste";

    O seu SELECT no final fica assim;

    Código:
    SELECT * FROM tblTeste"

    Mas isto não é uma consulta exportável.

    Para que tudo funcione, você terá de criar uma consulta temporaria, como por exemplo;

    Código:
    Private Sub Comando239_Click()
    Dim qdf As DAO.QueryDef
    'cria uma consulta temporaria
    Set qdf = CurrentDb.CreateQueryDef("ConsultaTemporaria", "SELECT * FROM " & txtExtracao.Value)
    'exporta a consulta temporaria
    strNomePLanilha = "C:\Users\marciossa\Desktop\backup\Mailings\Envio\SMS\teste.xlsm"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExce19, ConsultaTemporaria, strNomePLanilha
    'dá mensagem ou não
    MsgBox "Tabela Exportada com Sucesso!"
    'em caso de erro ao apagar a consulta temporaria, usamos o On Error Resume Next
    On Error Resume Next
    'apaga a consulta temporaria
    CurrentDb.QueryDefs.Delete "ConsultaTemporaria"
    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.]

      Data/hora atual: Qua 20 Jun 2018, 12:45