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


3 participantes

    Consulta Criar Tabela

    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Consulta Criar Tabela

    Mensagem  TiagoB 3/7/2013, 15:00

    Olá,

    Sou novo aqui no forum e novo no access também. Comecei a programar há cerca de 1 semana e meia por isso tenham paciência comigo por favor Wink 
    Neste momento tenho dois problemas principais mas penso que mais vão surgir à medida que vou avançando na base de dados. De qualquer forma, se vocês me pudessem ajudar ficava muito grato.



    Estou a construir um formulário para consulta. Este formulário possui um subformulário baseado na consulta que se actualiza sempre que altero o valor de uma caixa de combinação:

    Consulta Criar Tabela Zs8o

    Consulta Criar Tabela 6cb

    Até aqui tudo bem. Mas era também importante que fosse possivel exportar para excel os resultados de cada uma destas consultas sempre que o usuario carregasse no botão excel. Tentei vários métodos, inclusivé alguns que encontrei aqui no forum mas exportava sempre um excel vazio.
    Uma forma que encontrei de contornar isto foi criar uma consulta para criar tabela e então agora sempre que carrego na caixa de combinação e escolho uma instalação ele inicia essa consulta de criar tabela e insere os dados da consulta numa tabela temporária que pode agora ser exportada para excel ao carregar no botão. Isto está a funcionar mas aparecem-me um conjunto de mensagens que gostaria que não aparecessem ao executar o programa.

    Consulta Criar Tabela 4o1i
    Consulta Criar Tabela R9w
    Consulta Criar Tabela J52o

    É possivel eliminar estas mensagens ou há uma forma melhor de exportar para excel os resultados de um subform de consulta dinamica?



    É pretendido que esta base de dados possa ser actualizada e que seja possivel comparar campos que entretanto mudaram de estado (a minha base de dados é importada do excel para o acess, de onde resulta a tabela onde faço as consultas). Por exemplo, ter uma nota com o numero 123456789 com o estado de "Avaria" na primeira importação de dados para a base de dados. Na segunda importação de dados essa mesma nota com o numero 123456789 ja tem o seu estado em "OK".
    Como posso fazer tal processo?
    Devo criar uma tabela atraves da consulta do tipo criar tabela para guardar o historico?
    Como guardo o historico sem apagar a tabela que essa consulta vai criar?
    Posso estabelecer algum criterio para apagar o historico que vai sendo guardado de maneira a não tornar muito pesada a minha base de dados? Por exemplo, depois de 4 importações ele apaga a importação mais antiga, ou seja, a primeira!

    Eu sei que são muitas perguntas mas agradecia muito a vossa ajuda.

    Obrigado,
    Tiago
    RneoX
    RneoX
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 246
    Registrado : 26/07/2011

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  RneoX 3/7/2013, 16:26

    Boa tarde! Seja bem vindo!!!
    Amigo em seus códigos tenta colocar

    DoCmd.SetWarning off

    depois de acabar o código de exportação volte para

    DoCmd.SetWarning on

    Se não der certo tentarei ver algo mais viável para ti

    Já sobre importação do excel, (Workbooksheet) não manjo nadinha...


    .................................................................................
    Conhece meus projetos que ajudam os usuários a entender o funcionamento de várias funções encontradas aqui no fórum? também pode usa-lo para seus negócios ou para uso pessoal, não conhece? então visite aqui e veja como está bacana: Projeto Casco do Máximo Access v3.0 (Pré-Release 4.0) 
    Ser livre é ter liberdade para expressar suas idéias,
    Ser diferente é ser especial e o reverso da igualdade,
    Ser criativo é ser poderoso,
    Ter conhecimentos e não dividir-los é ser egoísta e orgulhoso,
    Ensinar é um prazer que todos devem ter por seus alunos, pois é dele que vem nossos troféus.
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 3/7/2013, 17:08

    Obrigado pela rápida resposta!

    Penso que esse comando não funciona com este tipo de rotina:

    Consulta Criar Tabela Yzwc



    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 3/7/2013, 19:33

    Boa tarde, Tiago, e bem-vindo ao fórum
    vamos por partes
    Para executar a consulta sem mostrar a mensagem, coloque código de execução
    currentdb.execute "instrução SQL da consulta"
    Vamos resolvendo passo-a-passo para não enrolarmos as dúvidas e opções


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 4/7/2013, 09:46

    Bom dia Alexandre e obrigado pela resposta.

    A minha consulta nesse subform é baseada no valor que eu coloco na caixa de combinação. O código que tenho na caixa de combinação é o que apresentei no post anterior. Se retirar DoCmd.SetWarning off e on e colocar o código que referiste o botão deixa de funcionar.

    Esta instrução DoCmd.OpenQuery "C_Pesq Instalação_Criar_TabelaTemp", acViewNormal, acEdit faz o que eu pretendo. Aliás eu preferia executa-la só quando carregasse no botão Excel que se encontra no lado direito do formulário e não cada vez que altero o valor na caixa de combinação mas a verdade é que se colocar a instrução no botão excel ele devolve-me um excel vazio sem os resultados da subform. Ou seja, neste momento o meu botão Excel apenas exporta o conteudo da tabelaTmp que é preenchida cada vez que altero o valor da caixa de combinação.

    A criação da tabela temporária foi apenas uma forma que encontrei para contornar o facto do access não conseguir exportar o resultado da consulta no subform devolvendo sempre um excel vazio. Há uma forma melhor de fazer isto?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 4/7/2013, 19:19

    Boa tarde, Tiago
    Eu disse para utilizar o código com a InstruçãoSQLDaConsulta. Se o fizer garanto que funciona
    No entanto, se este caminho é uma alternativa encontrada, indique o que pretende para tentar ajudar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 4/7/2013, 19:30

    Boa tarde Alexandre, mais uma vez obrigado pela atençao neste assunto.

    O que eu pretendo é exportar para excel o os resultados filtrados de um subform. Nesse caso, o subform tem como origem uma consulta que depende do valor da caixa de combinação. Sempre que altero o valor da caixa de combinação a consulta actualiza e consequentemente actualiza também os resultados do subform. Numa primeira tentativa procurei exportar a consulta. O resultado foi um excel em branco. Depois tentei exportar o subformulario. Obtive o mesmo resultado. A forma que encontrei de contornar isso foi criar uma "consulta criar tabela" para que, a cada alteração da caixa de combinação ele guardasse temporariamente os resultados nessa tabela.

    Já li um numero vasto de topicos relacionados com a exportação de dados seleccionados em subformularios, já experimentei varios codigos mas ainda não tive sucesso.

    Obrigado.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 4/7/2013, 19:37

    Informe o SQL da consulta


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 4/7/2013, 19:50

    SELECT Geral.Nota, Geral.[Data da nota], Geral.[Criado por], Geral.[Central Trabalho Responsavel], Geral.[Status sistema], Geral.[Não Resolvido], Geral.Observações
    FROM Geral
    WHERE (((Geral.[Status sistema]) Like "*" & [Formulários]![Consulta Avarias]![CaixaCombinação6].[Texto] & "*"));
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 4/7/2013, 21:59

    Dim Excel As Object, Rst As DAO.Recordset
    Dim Campo As DAO.Field, I As Integer

    Set Excel = CreateObject("Excel.Sheet")
    Excel.Application.Visible = False
    Set Rst = CurrentDb.OpenRecordset("SELECT Nota, [Data da nota], [Criado por], [Central Trabalho Responsavel], [Status sistema], [Não Resolvido], Observações FROM Geral WHERE [Status sistema] Like ' * ' & [Formulários]![Consulta Avarias]![CaixaCombinação6].[Texto] & ' * ';")
    Do While Not Rst.EOF
    I = 0
    For Each Campo In Rst.Fields
    I = I + 1
    Excel.Application.Cells(Rst.AbsolutePosition + 1, I).Value = Campo
    Next
    Rst.MoveNext
    Loop
    Set Rst = Nothing

    Excel.SaveAs "C:\Ficheiro.xlsx"
    Excel.Application.Quit
    Set Excel = Nothing


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 5/7/2013, 10:48

    Bom dia,

    Ao carregar no botão exportar apareceu o seguinte erro.

    Consulta Criar Tabela 9m70

    O código do botão é o seguinte:

    Private Sub Exp_Excel_Click()
    Dim Excel As Object, Rst As DAO.Recordset
    Dim Campo As DAO.Field, I As Integer

    Set Excel = CreateObject("Excel.Sheet")
    Excel.Application.Visible = False
    Set Rst = CurrentDb.OpenRecordset("SELECT Nota, [Data da nota], [Criado por], [Central Trabalho Responsavel], [Status sistema], [Não Resolvido], Observações FROM Geral WHERE ([Status sistema] Like '*'& [Forms]![Consulta Avarias]![CaixaCombinação6].[Text] & '*');")
    Do While Not Rst.EOF
    I = 0
    For Each Campo In Rst.Fields
    I = I + 1
    Excel.Application.Cells(Rst.AbsolutePosition + 1, I).Value = Campo
    Next
    Rst.MoveNext
    Loop
    Set Rst = Nothing

    Excel.SaveAs "C:\Ficheiro.xlsx"
    Excel.Application.Quit
    Set Excel = Nothing
    End Sub

    O access marcou-me o campo que assinalei a vermelho.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 5/7/2013, 19:22

    Boa tarde,
    Veja se tem a referência DAO marcada


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    TiagoB
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7
    Registrado : 27/05/2013

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  TiagoB 5/7/2013, 20:11

    Desculpe a ignorância mas há alguma forma especifica de fazer isso?
    Quando abre o debug o único campo que me assinala é o que referenciei.

    Cumprimentos
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Alexandre Neves 5/7/2013, 20:16

    Abra um módulo (código) e vá a Tools -> References -> Microsoft DAO 3.6


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Consulta Criar Tabela Empty Re: Consulta Criar Tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:29