startuga Posted June 6, 2014 Report Share Posted June 6, 2014 Boa tarde, Gostaria de saber se é possivel inserir dados em 2 tabelas ao mesmo tempo. Eu tentei mas não consegui :c Link to comment Share on other sites More sharing options...
nelsonr Posted June 6, 2014 Report Share Posted June 6, 2014 Alguma razão para isso? Link to comment Share on other sites More sharing options...
FreiNando Posted June 7, 2014 Report Share Posted June 7, 2014 É possível sim. Na realidade isso é feito na maioria das bases de dados, principalmente quando temos duas tabela relacionadas e queremos inserir um registo numa e relacionar esse registo a outro novo registo de uma outra tabela. Existe vários métodos, mas para o Access posso te indicar 2: 1- Criar uma consulta baseada na relação entre as tabelas, e depois usa a instrução INSERT INTO para essa consulta. 2- No mesmo procedimento VBA, inseres registos numa tabela e depois noutra usando o objecto DAO.Recordset. E claro que podes usar o segundo método com a consulta do primeiro. O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
startuga Posted June 9, 2014 Author Report Share Posted June 9, 2014 https://s4.postimg.cc/4kbz3yvv1/tavke.jpg Boas, Nessas 2 tabelas. Molde e data são (Chaves) Eu já tentei fazer um insert into nas duas aos mesmo tempo mas não consegui. 😞 É necessario criar algum relacionamento entre ambas? Link to comment Share on other sites More sharing options...
carlosAl Posted June 9, 2014 Report Share Posted June 9, 2014 ola, E nao seria mais facil, só existir uma tabela, com o campo TD e o campo TE, e os restantes campos ? qual o objectivo de 2 tabelas ? de qualquer forma : 1 - no formulario de entrada de dados, a origem de registos do formulario, devera ser "unbound", ou seja retiras o que la estiver. Cada control no form tambem nao devera estar associado a nenhum campo. 2 - no formulario de entrada de dados, crias um botao que podes chamar inserir dados 3 - Considerei o nome de cada control inserindo o prefixo txt (ex: campo maquina na tabela é uma caixa de texto no formulario com nome txtMaquina. tens de adaptar cada control em conformidade) 4 - No editor de VBA (alt+f11), adicionas a referencia DAO360 5 - No botao que mencionei no ponto 2 colocarias um codigo deste tipo ( NAO testado) Dim db as Database Dim rstTabela1 as recordset Dim rstTabela2 as recordset Set Db = CurrentDb() Set rstTabela1 = Db.OpenRecordset("tblTabela1",dbopendynaset) Set rstTabela2 = Db.OpenRecordset("tblTabela2",dbopendynaset) With rstTabela1 .AddNew !Maquina= Me.txtMaquina !Molde = Me.txtMolde !Peso_arranque=txtPeso_arranque ' Aqui continuas com os outros campos da tua tabela1 .Update End With With rstTabela2 .AddNew !Maquina= Me.txtMaquina !Molde = Me.txtMolde !Peso_arranque=txtPeso_arranque ' Aqui continuas com os outros campos da tua tabela .Update End With rstTabela1.close set rstTabela1=nothing rstTabela2.close set rstTabela2=nothing Link to comment Share on other sites More sharing options...
FreiNando Posted June 9, 2014 Report Share Posted June 9, 2014 https://s4.postimg.cc/4kbz3yvv1/tavke.jpg Boas, Nessas 2 tabelas. Molde e data são (Chaves) Eu já tentei fazer um insert into nas duas aos mesmo tempo mas não consegui. 😞 É necessario criar algum relacionamento entre ambas? As tabelas são idênticas, só muda mesmo é o nome. Isso é contrário a uma boa estruturação da base de dados. Por isso sou da opinião do Carlos em que deves considerar a criação de uma única tabela. Se for realmente necessário a existência dessas duas tabelas, para fazeres como indiquei tens de ter chaves primárias nas duas tabelas e de preferência formadas por apenas um campo. Chaves primárias formadas por mais de um campo são complicadas de manter, e na minha opinião nem deviam existir, apenas deveria existir a possibilidade de múltiplos campos em chaves únicas(exclusivas). Uma consulta que reúna campos de várias tabelas, para que possa ser usada para editar e inserir registos tem de usar JOIN entre as diversas tabelas por meio de chaves primárias, onde os campos usados para relacionamento serão considerados como um único. Uma consulta deste tipo pode facilmente ser usada como Origem de Registos num formulário ou relatório. O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now