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

    [Resolvido]Importar dados de uma tabela para outra

    Compartilhe

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Seg 15 Jan 2018, 13:26

    Olá a todos,

    Preciso de ajuda com código para o seguinte

    Tenho uma tabela importastock com 2 campos (número)
    Codmp
    Stock
    E pretendo criar um registro na tabela detalhefichprep  
    Com os campos codfichorep, codmp e quantidade (número)

    Em que codfichprep = 354 para todos os registos da tabela codmp e respetiva quantidade= stock

    Obrigado
    Smile
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3703
    Registrado : 14/08/2013

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  FabioPaes em Seg 15 Jan 2018, 15:46

    Olá! Dê uma pesquisada aqui no Site, exitem inúmeros exemplos distintos sobre sua dúvida! Eu mesmo já devo ter postado uns 3 na sala de repositórios.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Seg 15 Jan 2018, 22:47

    Boas,

    Estava a pensar em algo do género:

     

    Declare @Campos varchar(8000)

    Set @Campos = Campo1,Campo2,Campo3, etc

    Exec('insert into tabela (' + @campos+ ') select ' + @campos + 'from tabela2'

     Mas como faço para o campo 1 ser sempre 9999, sendo que a tabela de origem só tem os campos 2 e 3?

    Obrigado

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Ter 16 Jan 2018, 19:54

    Boas!

    já está quase resolvido Smile



    Private Sub ResetStock_Click()

    If MsgBox("Confirma o reset dos stocks ?" & vbCr & NomeManip, vbYesNo + vbDefaultButton2) = vbYes Then

    DoCmd.RunSQL "INSERT INTO DetalheFichPrep (CodMP,Quantidade) SELECT CodMP,Quantidade FROM ImportaStock"

    End If

    End Sub

    Só falta inserir na tabela de destino (DetalheFichPrep), no campo CodFichPrep (que não está na tabela de origem) um valor fixo 9999

    Agradeço a Vossa ajuda.

    Smile
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3703
    Registrado : 14/08/2013

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  FabioPaes em Qua 17 Jan 2018, 13:42

    Olá! Se Utilizar o método RecordSet poderá fixar esse Valor no Campo...

    Mas se caso esse valor nunca mude, seja sempre isso... Pode fixar direto na tabela, na propriedade do Campo, Valor Padrão, coloque esse valor... Assim, qnd nao for informado (no caso da importação) ele receberá esse valor padrão.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Qua 17 Jan 2018, 15:25

    Boas!

    O valor desse campo muda sempre; apenas nesta situação é que será um valor fixo.

    Quanto ao recordset, não sei bem como usar....

    Entretanto, aparece uma mensagem de erro que monstro em anexo, mas se clicar em sim, faz o que pretendo, no entanto, preferia que essa mensagem não surgisse.


    Mais, sempre cria uma nova tabela: ExportaStock$_Importa erros ,  com
    Tenho isto:

    Private Sub ResetStocks_Click()

    If MsgBox("Deseja excluir TODOS os registros da tabela Importa Stocks ?" & vbCr & NomeManip, vbYesNo + vbDefaultButton2) = vbYes Then

    CurrentDb.Execute "DELETE FROM ImportaStock;"

    MsgBox "Todos os registros foram excluidos...", vbInformation, "Aviso"

    End If

       stDocName = "ResetStocksMacro"
       DoCmd.RunMacro stDocName

    If MsgBox("Confirma o reset dos stocks ?" & vbCr & NomeManip, vbYesNo + vbDefaultButton2) = vbYes Then
                     
    DoCmd.RunSQL "INSERT INTO DetalheFichPrep (CodMP,Quantidade) SELECT CodMP,Quantidade FROM ImportaStock"

    End If

    Set Rst = Nothing

    MsgBox "Reset dos Stocks concluido", vbInformation, "Aviso"

    DoCmd.Close
       stDocName = "Manut"
       
       DoCmd.OpenForm stDocName, , , stLinkCriteria

    End Sub





    Mais uma vez,

    Obrigado
    Anexos
    Sem Título-1.pdf
    Você não tem permissão para fazer download dos arquivos anexados.
    (168 Kb) Baixado 3 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3703
    Registrado : 14/08/2013

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  FabioPaes em Qua 17 Jan 2018, 17:06

    A mensagem refere-se a dois registros que violaram as regras de validação de alguma campo... Na tabela ExportaStock$_Importa erros terá o Nome do Campo e o Valor que não foi importado. Verifique o que tem de errado...

    Veja nesse Vídeo como é feito a utilização de RecordSet:
    [Você precisa estar registrado e conectado para ver este link.]

    Recomendo dar uma lida nesses Tópicos, todos sobre Importação de Dados do Excel.
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    Esse é mais Completo:
    [Você precisa estar registrado e conectado para ver este link.]


    Veja aqui como devem ser postado os Anexos no Fórum...
    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Qua 17 Jan 2018, 22:52

    Obrigado Fábio!

    Vou ver
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  Alexandre Neves em Qui 18 Jan 2018, 16:54

    Boa tarde, Pedro
    Em vez de
    DoCmd.RunSQL "INSERT INTO DetalheFichPrep (CodMP,Quantidade) SELECT CodMP,Quantidade FROM ImportaStock"

    Utiliza
    DoCmd.RunSQL "INSERT INTO DetalheFichPrep (CodMP,Quantidade,CodFichPrep ) SELECT CodMP,Quantidade,'9999' FROM ImportaStock"

    Cumprimentos,


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

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Sab 20 Jan 2018, 12:36

    Grande Alexandre!
    Faz exatamente que pretendo, apesar de ainda dar o erro ao importar a tabela.
    Já está quase Smile
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  Alexandre Neves em Sab 20 Jan 2018, 14:22

    Boa tarde, Pedro
    Tenta
    DoCmd.RunSQL "INSERT INTO DetalheFichPrep (CodMP,Quantidade,CodFichPrep ) SELECT CodMP,Quantidade,9999 FROM ImportaStock"


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

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Ter 23 Jan 2018, 13:52

    Boas!

    Também funciona bem Alexandre.

    O problema afinal não está no código, mas sim na macro que mando executar no início do comando


       stDocName = "ResetStocksMacro"
       DoCmd.RunMacro stDocName

    Que importa os dados de uma folha do excell para a tabela importastock.
    Anexos
    Sem Título-3.pdf
    Você não tem permissão para fazer download dos arquivos anexados.
    (243 Kb) Baixado 6 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  Alexandre Neves em Sex 26 Jan 2018, 21:02

    Boa noite Pedro,
    Já não tenho a bd para verificar
    Disponibiliza a bd e informa o que não faz e devia fazer
    Abraço


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

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Seg 29 Jan 2018, 19:17

    Boas Alexandre Smile

    Anexo parte da BD


    Entretanto, aparece uma mensagem de erro que anexei atrás mas, se clicar em sim, faz o que pretendo, no entanto, preferia que essa mensagem não surgisse.

    Mais, sempre cria uma nova tabela: ExportaStock$_Importa erros
    Anexos
    DB_TEST.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.9 Mb) Baixado 5 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  Alexandre Neves em Dom 04 Fev 2018, 15:51

    Boa tarde, Pedro
    Não enviaste o ficheiro de importação
    Descreve qual o problema na importação que é preciso alterar
    Em vez de teres macro para a importação, pensa em criar rotina de importação através do VBA. Podes ajustar em cada registo as consições que pretendes
    Abraço,


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

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Seg 05 Fev 2018, 10:50

    Viva Alexandre Smile

    Anexo a folha de cálculo .


    A macro importa todos os dados para a tabela importastock com os mesmos nomes.

    Obrigado
    Smile
    Anexos
    Exportastock.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 9 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  Alexandre Neves em Seg 05 Fev 2018, 21:17

    Boa noite, Pedro
    Revê os dados no Excel
    Ordenei a 2ª coluna com expansão de dados e a 1ª linha ficou dados em branco (serão dados nulos no ficheiro que não respeitam as regras dos campos na importação). Eliminei essa linha em branco e importei sem erros


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

    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Qui 15 Fev 2018, 19:06

    Boas!

    Ainda não sei como fica essa linha em branco pois essa folha do excel é resultado de uma exportação de uma BD.

    De qualquer modo, apesar de não estar perfeito, já faz o que pretendo,

    Obrigado pela ajuda!

    Abraços Smile


    pjjpm
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 43
    Registrado : 17/09/2014

    Re: [Resolvido]Importar dados de uma tabela para outra

    Mensagem  pjjpm em Qui 15 Fev 2018, 19:09

    Obrigado Smile

      Data/hora atual: Qui 22 Fev 2018, 12:52