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


2 participantes

    [Resolvido]Macro para correr append query

    avatar
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 02:50

    Boa noite,

    Tenho diversas, aí umas 20 queries que tenho de correr diariamente.

    Sei que se pode fazer isso com uma macro e sei cria-las em Excel, mas nunca fiz em access.

    Coloquei os warnings off
    defini as queries que quero que corra, mas não sei que opção utilizar para correr as queries fazendo o append dos dados.

    Parece sempre que nada está a correr.

    Podem dar uma ajuda pf

    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 08:34

    Bom dia, Rikardo, e bem-vindo ao fórum
    Crie um procedimento que execute as macros
    Sub ExecutaMacros()
    docmd.RunMacro ...
    docmd.RunMacro ...
    ...
    End Sub


    .................................................................................
    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
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 15:43

    Boa tarde Alexandre,

    Antes de mais muito obrigado pela tua resposta...

    Ontem, antes de publicar o tópico, criei a macro exactamente com essa sintaxe, o problema é que, parece que apenas correu a primeira das 20 queries.

    O que será que estou a fazer mal?

    Consegues ajudar pf

    Obg

    RL
    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 15:50

    Boa tarde, Rikardo
    Sem outros detalhes, não é possível dizer o que acontece.
    As macros executam bem manualmente?
    Cria uma depuração do erro
    Sub ExecutaMacros()
    On Error goto MostraErro
    docmd.RunMacro ...
    docmd.RunMacro ...
    ...
    Exit sub
    MostraErro:
    msgbox err.number & vbcr & err.description
    End Sub


    .................................................................................
    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
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 16:00

    Bem, vou tentar explicar melhor o cenário e também o que me aconteceu ontem!

    Tratam-se de queries para sacar determinados dados de uma base de dados externa com ligação por ODBC.

    Individualmente correm muito bem, já tenho este procedimento aproximadamente á 6 meses...

    No entanto, com o crescimento e angariação de novos clientes, já não me é humanamente possivel correr as queries para os clientes todos, logo quero criar macros para abrindo o Access (o que faço por .bat) correr também as diversas queries.

    Ontem, como disse criei uma macro em tudo parecida á que exposeste excepto no setwarnings, que estava como false na primeira linha e true na ultima...

    Acontece que apenas correu a primeira macro e não acrescentou valores mas sim acrescentou os novos e duplicou os antigos... ou seja, imagina que tinha 5 registos antigos e 2 novos (apenas deveria acrescentar os dois novos, mas acrescentou mais 7 linhas á tabela onde deveria fazer o append)...

    espero ter sido claro!

    qualquer ajuda é muito bem vinda

    Cumprimentos,

    RL
    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 16:03

    Foram criados registo duplicados e não deveriam ter sido, porquê?
    Para melhorar a importação, aconselho a importar para uma tabela temporária. Actualizar a tabela definitiva, conforme critérios, e apagar a temporária


    .................................................................................
    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
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 16:07

    Nota que se na tabela, o registo 1, 2, 3, 4, 5 já existem e tem dois novos na base de dados que estou a fazer o query, apenas deveria acrescentar 2 registos, os novos...

    Daí a pergunta quando se corre a query manualmente "X registos serão adicionados á tabela" (o texto não deve ser exactamente este!)...

    Posso estar muito enganado, pois o Access não é minha Praia, mas o append query é mesmo isso, apenas coloca novos registos á tabela já existente...

    certo???
    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 16:12

    O código de acréscimo tem de indicar se existe alguma limitação, senão acrescenta todos, mesmo que fiquem repetidos. Para que tal não aconteça tem de haver, pelo menos, uma de três condições: As tabelas não têm registos que dupliquem; A Tabela de destino tem campos condicionados para que não haja repetição de registos; O código de acréscimo filtra os registos que iriam duplicar.
    Agora, se dizes que manualmente faz bem; a importação automática tem de funcionar bem.


    .................................................................................
    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
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 16:16

    O problema está que não corre Smile

    vou criar uma base de dados á parte da produtiva e tentar o mesmo procedimento que me sugeriu...

    Já posto os resultados!

    Muito obrigado mesmo, pelo interesse demonstrado!!!
    avatar
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 16:30

    Acho que me expliquei mal, quero criar macros para correr queries...

    o código não deve ser "docmd.RunMacro ..." coo afirmaste, pois não????
    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 17:00

    Para executar consultas, podes criar macros ou criar código fica mais legível:
    Sub ExecutaConsultas()
    Currentdb.execute "SQL da consulta"
    Currentdb.execute "SQL da consulta"
    ...
    End sub


    .................................................................................
    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
    RikardoL
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8
    Registrado : 01/03/2012

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  RikardoL 3/9/2012, 17:24

    desculpa a ignorancia, mas refere-se ao codigo completo da consulta? tipo entrar em sql view e copiar todo o texto para a macro?
    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

    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Alexandre Neves 3/9/2012, 17:26

    Sim, abrir a consulta em modo SQL, copiar o código e colocar no módulo
    Sub ExecutaConsultas()
    Currentdb.execute "colar aqui da consulta1"
    Currentdb.execute "colar aqui da consulta2"
    ...
    End sub


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


    [Resolvido]Macro para correr append query Empty Re: [Resolvido]Macro para correr append query

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 09:42