MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    Multiplos "INSERT INTO" não funcionam de uma só vez

    brunogor
    brunogor
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 226
    Registrado : 24/02/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  brunogor em 27/6/2020, 21:56

    Olá a todos

    Estou a tentar inserir várias linhas numa tabela, se for assim funciona:
    Código:
    CurrentDb.Execute "INSERT INTO Tbl_Ano_Temp (Ano) VALUES ('" & Text1 & "');"
    CurrentDb.Execute "INSERT INTO Tbl_Ano_Temp (Ano) VALUES ('" & Text2 & "');"
    CurrentDb.Execute "INSERT INTO Tbl_Ano_Temp (Ano) VALUES ('" & Text3 & "');"


    Mas se for assim não funciona:
    Código:
    CurrentDb.Execute "INSERT INTO Tbl_Ano_Temp (Ano) VALUES ('" & Text1 & "'),('" & Text2 & "'),('" & Text3 & "');"

    Onde estou a errar?

    Obrigado

    Bruno Gordino
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 227
    Registrado : 19/08/2010

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  marcelo3092 em 27/6/2020, 22:48

    Bom se pretende criar um registro para cada text teria que fazer um loop agora se quer adicionar os dados dos tres campos num campo so basta concatenar.

    CurrentDb.Execute "INSERT INTO tbl_ano_temp (ano) VALUES ('" & Texto0 & "' & '" & Texto2 & "' & '" & Texto4 & "');"
    brunogor
    brunogor
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 226
    Registrado : 24/02/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  brunogor em 27/6/2020, 22:57

    Olá Marcelo

    O que eu pretendo são 3 registos separados com uma só instrução de código.

    Obrigado pela atenção.

    Bruno Gordino
    brunogor
    brunogor
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 226
    Registrado : 24/02/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  brunogor em 27/6/2020, 23:02

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2088
    Registrado : 22/11/2016

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  DamascenoJr. em 28/6/2020, 01:21

    Vale ressaltar que nem todas as sintaxes de instruções SQL são aceitas para Backend Access.

    Como alternativa, tente salvando o banco em uma variável.

    Código:
    dim objBD as dao.database

    Set objBD = currentDB
    Call ojbBD.execute("insert into...")
    set objBD = nothing


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    brunogor
    brunogor
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 226
    Registrado : 24/02/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Multilos "INSERT INTO" não funcionam de uma só vez

    Mensagem  brunogor em 29/6/2020, 23:21

    Viva Damasceno Jr, tudo bem consigo?

    Realmente estou a trabalhar com um BD com BE.

    Experimentei o código que me passou e continua a dar erro.

    Cmp

    Bruno Gordino
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6749
    Registrado : 15/03/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  ahteixeira em 29/6/2020, 23:52

    Olá a todos,

    Bruno, na minha opinião se são 3 entradas (linhas) é da forma que tem.
    Outra hipotese seria abrir o recordeset e adicionar os 3 registos e fechar.
    Fica a sugestão e agurdamos que algum colega tem outra solução para adicionar os tres registo com um "gatilho" apenas.

    Abraço a todos
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2088
    Registrado : 22/11/2016

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  DamascenoJr. em 30/6/2020, 01:45

    docs.microsoft escreveu:Para adicionar vários registros ao mesmo tempo a uma tabela, use a instrução INSERT INTO juntamente com uma instrução SELECT.

    docs.microsoft escreveu:Consulta acréscimo de vários registros:
    INSERT INTO target [(field1[, field2[, …]])] [IN externaldatabase] SELECT [source.]field1[, field2[, …] FROM tableexpression

    docs.microsoft escreveu:Consulta acréscimo de registro único:
    INSERT INTO target [(field1[, field2[, …]])] VALUES (value1[, value2[, …])

    docs.microsoft escreveu:Utilize uma instrução INSERT INTO extra com uma cláusula VALUES para cada registro adicional que desejar criar.

    fonte:
    docs.microsoft.com/pt-br/office/client-developer/access/desktop-database-reference/insert-into-statement-microsoft-access-sql
    docs.microsoft.com/pt-br/office/vba/access/concepts/structured-query-language/insert-update-and-delete-records-from-a-table-using-access-sql

    A sintaxe pretendida não é suportada para back-end em Access. Mas é possível utilizá-la com front-end em Acces e back-end em MySQL.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6749
    Registrado : 15/03/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  ahteixeira em 30/6/2020, 09:15

    Olá a todos,

    Como sempre digo "com o MaximoAccess é sempre aprender". Wink
    Obrigado Ivan, desconhecia.

    Ficamos aguardar a feedback do colega.

    Abraçoa todos
    brunogor
    brunogor
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 226
    Registrado : 24/02/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Multilos "INSERT INTO" não funcionam de uma só vez

    Mensagem  brunogor em 30/6/2020, 19:15

    Viva a todos

    Deixo aqui um exemplo teste, que mesmo não tendo qualquer BE continua a dar erro.

    Obrigado
    Anexos
    Multiplos "INSERT INTO" não funcionam de uma só vez AttachmentExemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (30 Kb) Baixado 4 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2088
    Registrado : 22/11/2016

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  DamascenoJr. Ontem à(s) 03:23

    Isso é um front-end e back-end no mesmo arquivo!

    Não entenda back-end como arquivo separado exclusivo para tabelas.

    A grosso modo, entenda back-end como local para armazenamento das tabela e seus registros. E sendo assim, seu arquivo contém o objeto tabela onde os registros serão armazenados, ou seja, ainda é back-end Access.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6749
    Registrado : 15/03/2013

    Multiplos "INSERT INTO" não funcionam de uma só vez Empty Re: Multiplos "INSERT INTO" não funcionam de uma só vez

    Mensagem  ahteixeira Hoje à(s) 09:59

    Olá a todos,

    Estive a verificar a documentação que partilhou e parece que permite fazer vários registos usando o SELECT mas se tiver uma base de dados (que alimenta os vários registos).

    Damasceno, pode exemplificar como ficaria com o exemplo que o colega Bruno partilhou?
    No entanto repare que não tem tabela, mas sim várias caixas de texto.
    Eu tentei mas não consegui.

    Abraço a todos

      Data/hora atual: 2/7/2020, 13:01