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

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 11:44

    Ao executar
    db.Execute "INSERT INTO registo SELECT * FROM registo1"
    dá o seguinte erro
    Run-time error '3825': Não é possivel utilizar SELECT* numa consulta INSERT INTO quando uma tabela de origem ou de destino contiverem valores multiplos.
    O campo em questão é do tipo "Anexo"
    Como consigo fazer copia de campos de multiplos valores sem ser um a um?
    Obrigado
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  criquio 6/4/2012, 11:57

    Você quer copiar todo o conteúdo de uma tabela para outra?


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Alexandre Neves 6/4/2012, 12:52

    Boa tarde, Fernleal, e bem-vindo ao fórum

    Substitua o asterisco pelo(s) nome(s) do(s) campo(s)
    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 14:29

    Boa tarde Alexandre Neves
    Embora tenha vindo ao maximoacess várias vezes esta é a primeira vez que ponho uma questão. E por isso algumas dúvidas se esta mensagem irá parar ao sitio certo.
    Ora bem. Substitui a linha de comandos para me copiar os dados somente do campo "Foto" que é o que me está a dar problemas.
    De

    db.Execute "INSERT INTO registo SELECT * FROM registo1"

    Para

    db.Execute "insert into registo (foto) select foto from registo1"
    E erro é exactamente o mesmo.
    Cumprimentos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  criquio 6/4/2012, 14:36

    Tente:

    Dim rs As Recordset
    Set rs = db.OpenRecordset("TabelaDeOrigem")

    Do While not rs.EOF
    db.Execute "insert into registo(foto) values('" & rs!foto & "')"
    rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    ...


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 14:48

    Boas criquio

    Dá erro "Run-time error '13' Type mistatch" na linha

    db.Execute "insert into registo (foto) values('" & rs!Foto & "')"
    Cumprimentos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  criquio 6/4/2012, 15:28

    Tente assim:

    db.Execute "insert into registo(foto.ControlSource) values('" & rs!foto.ControlSource & "')"

    Caso não dê certo, tente tirar o .ControlSource no primeiro caso.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 17:59

    Esta hipótese tambem não deu resultado, mas entretanto andei a experimentar e acontece outra situação:
    A tabela "registo1" é importada de outra base de dados com:

    DoCmd.TransferDatabase acImport........

    Acontece que esta tabela depois de ser importada, já não traz os valores no campo "foto" que é do tipo anexo.
    Experimentei a importação do proprio access, e na mesma. Não trasporta os valores do campo tipo anexo.

    Este tipo de campo tem-me dado que fazer.

    Obrigado pela atenção
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  criquio 6/4/2012, 18:42

    Já tentou criar um campo anexo em uma tabela desse segundo bd para ver se o problema não está nele? Verifique se tem a opção Anexo na lista de tipos de campos.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 21:34

    Olá criquio
    As tabelas registo da base de dados principal é precisamente igual à tabela registo1 importada da segunda base de dados.
    Ou seja: estou a criar um programa de inventário para ser usado em varios departamentos.
    De cada vez que há uma alteração ao programa de inventário o que faço:
    1-Copio para a mesma pasta em c: o programa actualizado inventario.accdb e o programa já utilizado inventario.accdr de um departamento qualquer.
    2- portanto o inventario.accdr já tem dados que pretendo copiar para o inventario.accdb.
    3- Em BVA mando copiar as tabelas do accdr para dentro do accdb,mas com outro nome. Por exemplo a tabela registo é copiada e gravada com o nome de registo1.
    4- Continuando com o BVA elimino os dados em registo e copio os dados da tabela registo1 para a tabela registo.
    5- Apago em seguida a tabela registo1.

    Este processo funciona bem com todas as tabelas excepto a tabela registo que tem o tal campo" anexo". Este campo anexo é só para guardar uma fotografia do objecto do inventario. Se calhar com o campo OLE resolvia o problema, mas como me disseram que ocupa mais memória, preferi usar "Anexo".

    Tambem poderia dividir a base de dados e o problema já não se punha, pois não era preciso fazer estas cópias, só que depois dava problemas de localização se fosse usado na PEN que é o que quase toda a gente utiliza.
    Vou continuar a pesquisar e se descobrir depois digo, ok?
    Cumprimentos
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  criquio 6/4/2012, 21:39

    Mas verifique o que falei no post anterior. Pode acontecer de uma tabela não exibir o campo anexo para a gente escolher quando vai criar um campo na tabela. Às vezes, mostra essa opção em um banco e não mostra no outro.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 21:45

    Já verifiquei e até consigo inserir nas duas tabelas fotos nos campos formatados como anexo.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Alexandre Neves 6/4/2012, 21:56

    Fernleal,

    Tente assim:
    - carregue a tabela Registo1 com todos os campos, excepto o campo Anexo
    - Copie o campo anexo:
    db.Execute "UPDATE registo LEFT JOIN registo1 ON Registo.CampoA=Registo1.CampoA SET Registo1.CampoAnexo=Registo.CampoAnexo;"
    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 6/4/2012, 22:09

    Alexandre Neves
    Descobri outro problema
    A tabela registo1 é importada de outra base de dados e na importação, não tras os dados inseridos no campo tipo "anexo" da tabela registo1, que por acaso são fotografias.
    Por isso só posso experimentar o que me aconselhou depois de resolver este.
    Cumprimentos
    avatar
    Fernleal
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9
    Registrado : 30/12/2010

    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Fernleal 9/4/2012, 14:26

    Bem...
    Parece que não tem solução. Após experiencias e consultas eis a resposta:


    http://office.microsoft.com/en-us/access-help/using-multivalued-fields-in-queries-HA010149297.aspx#BM7

    Onde se poderá ler a certa altura:

    Note An Append query is a query that you use to add records from one table to another existing table. In Office Access 2007, you cannot use an append query that references a table that contains a multivalued field. For example, the following query is not valid:

    INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

    Assim terei de fazer uma rotina para copiar um a um os registos de uma tabela para outra.

    Obrigado a todos

    Conteúdo patrocinado


    [Resolvido]Copiar dados de campos multiplos entre duas tabelas Empty Re: [Resolvido]Copiar dados de campos multiplos entre duas tabelas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 06:09