MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Exportação para Excel

    Compartilhe

    Josué Carvalho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 06/10/2015

    [Resolvido]Exportação para Excel

    Mensagem  Josué Carvalho em Qua 16 Dez 2015, 20:58

    Prezados,

    Preciso gerar uma planilha em Excel a partir de dados que tenho em Access. Esta planilha, por sua vez, será importada por outro aplicativo.
    Acontece que preciso que algumas colunas recebam como conteúdo um espaço em branco. Consigo gerá-la no Access mas quando exporto para a planilha, o espaço em branco é retirado e a célula fica vazia ocasionando erro de reconhecimento por parte do outro aplicativo.

    A consulta é formulada pelo seguinte código SQL

    Código:

    SELECT Tab_Requisição.Data, Tab_Requisição.Numero, Tab_Requisição.Numero, IIf([TipoMov]="Banco" And [Cheque]<>0,"Cheque Manual", String(1,Chr(32))) AS TipoPagoBanco, IIf([TipoMov]="Banco",[Cheque]," ") AS ExpCheque, Tab_PlanDeCuenta.TipoMov, IIf(Val([Conta])=11100 Or Val([Conta])=11600,[Cuenta],IIf(Val([Conta])=11200,[CuentaAplic],[Conta])) AS ExpConta, Tab_Requisição.Facility, Tab_ReqContab.Histórico, Tab_ReqContab.VlLancto, Tab_Requisição.CodAudit
    FROM Tab_Requisição INNER JOIN (Tab_PlanDeCuenta INNER JOIN Tab_ReqContab ON Tab_PlanDeCuenta.Rubrica = Tab_ReqContab.Conta) ON Tab_Requisição.Numero = Tab_ReqContab.Numero
    WHERE (((Tab_Requisição.Flag1)=False) AND ((Tab_Requisição.Tipo)<>"Activo"));

    Já tentei usar o espaço entre aspas, a função Chr sozinha e a expressão string como está ai. Na exportação, o conteúdo da célula é vazio.
    Alguém pode de dar uma luz?

    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 920
    Registrado : 05/02/2010

    Exportação para Excel

    Mensagem  good guy em Qui 17 Dez 2015, 13:01

    Olá Josué,

    Já tentou inserir um símbolo qualquer no espaço entre aspas para facilitar a exportação e depois retirá-lo ou na string SQL antes da importação usar uma função Replace que substitua o símbolo por um espaço vazio? Na importação só fica o espaço vazio. É uma dica !!!

    Replace(NomedoCampo,"*","")

    Josué Carvalho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 06/10/2015

    Re: [Resolvido]Exportação para Excel

    Mensagem  Josué Carvalho em Seg 21 Dez 2015, 12:19

    Olá good guy! Obrigado pela sua atenção.

    Não sei se entendi plenamente sua resposta. Ela traz duas propostas:

    1) Inserir um simbolo e retirá-lo depois. Essa funciona, mas eu gostaria de outra solução que já gerasse o arquivo limpo, para ser importado pelo outro aplicativo.

    2) Em qualquer tabela ou consulta, o espaço em branco aparece com exatidão. Contudo, é na passagem para o excel que ele é substituido. Então, não importa o que eu faça para gerá-lo no ambiente Access, pq qdo migra ele aplica a regra e some com a informação ...

    Mesmo assim, valeu mto pela dica!

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Exportação para Excel

    Mensagem  JPaulo em Seg 21 Dez 2015, 12:42

    Ola;

    Uma pergunta;

    Que comando está a usar para exportar a consulta para o Excel ?


    .................................................................................
    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.]

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Exportação para Excel

    Mensagem  JPaulo em Seg 21 Dez 2015, 13:27

    Minha sugestão;

    1º Fazer uso da função interna Space, dentro dela define-se a quantidade de espaços que se pretende;

    Código:
    SELECT Tab_Requisição.Data, Tab_Requisição.Numero, Tab_Requisição.Numero, IIf([TipoMov]="Banco" And [Cheque]<>0,"Cheque Manual", Space(1) AS TipoPagoBanco, IIf([TipoMov]="Banco",[Cheque]," ") AS ExpCheque, Tab_PlanDeCuenta.TipoMov, IIf(Val([Conta])=11100 Or Val([Conta])=11600,[Cuenta],IIf(Val([Conta])=11200,[CuentaAplic],[Conta])) AS ExpConta, Tab_Requisição.Facility, Tab_ReqContab.Histórico, Tab_ReqContab.VlLancto, Tab_Requisição.CodAudit
    FROM Tab_Requisição INNER JOIN (Tab_PlanDeCuenta INNER JOIN Tab_ReqContab ON Tab_PlanDeCuenta.Rubrica = Tab_ReqContab.Conta) ON Tab_Requisição.Numero = Tab_ReqContab.Numero
    WHERE (((Tab_Requisição.Flag1)=False) AND ((Tab_Requisição.Tipo)<>"Activo"));

    2º Ao pressionar de um botão no seu formulario, (se não tiver formulario, crie um apenas com um botão para exportar);

    Código:
    Private Sub SeuBotão_Click()
    'JPaulo
    'MaximoAccess
    '21-Dezembro-2015
    Dim rst As DAO.Recordset, strSQL As String, strLivro As String, xls As Object
    Set xls = CreateObject("Excel.Application")
        'caminho completo do seu excel que já deve existir
        'neste caso coloquei o meu excel junto do banco
        strLivro = CurrentProject.Path & "\SeuLivro.xlsx"
        xls.Workbooks.Open (strLivro)
        xls.Visible = True
        xls.Worksheets("Sheet1").Activate
        strSQL = "SELECT * FROM SuaConsulta;"
    Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
        xls.ActiveSheet.Range("A1").Select
        xls.ActiveCell.CopyFromRecordset rst
        xls.ActiveWorkbook.Save
        xls.Application.Quit
    Set xls = Nothing
    End Sub

    Aguardamos o seu retorno;


    .................................................................................
    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.]

    Josué Carvalho
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 06/10/2015

    Re: [Resolvido]Exportação para Excel

    Mensagem  Josué Carvalho em Qua 23 Dez 2015, 06:52

    Ola!

    Eu tive um problema com esta solução que foi o seguinte: Depois que abre a planilha a executa o activate, o controle é passado para ela e o restante do código não é executado, portanto, não cola as informações. (Se errei no motivo, dou certeza de que o resultado foi este).

    Mas essas linhas de código abriram um leque de possibilidades para outras rotinas que precisarei desenvolver. Então, foi ótimo da mesma forma.

    Quanto a solução para o problema apresentado, acabei adotando a de usar outro caractere que não o espaço, uma vez que o comando de exportação é implacável em não aceita espaços em branco.

    Agradeço a ajuda de todos e parabenizo aos organizadores e mantenedores deste forum.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Exportação para Excel

    Mensagem  JPaulo em Qua 23 Dez 2015, 10:21

    Fico feliz.

    Obrigado pelo retorno o forum agradece.

    [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: Dom 04 Dez 2016, 20:18