startuga Posted June 6, 2014 at 06:42 PM Report #558497 Posted June 6, 2014 at 06:42 PM Boa tarde, Gostaria de saber se é possivel inserir dados em 2 tabelas ao mesmo tempo. Eu tentei mas não consegui :c
nelsonr Posted June 6, 2014 at 08:37 PM Report #558503 Posted June 6, 2014 at 08:37 PM Alguma razão para isso?
FreiNando Posted June 7, 2014 at 07:35 AM Report #558533 Posted June 7, 2014 at 07:35 AM É 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
startuga Posted June 9, 2014 at 07:41 AM Author Report #558712 Posted June 9, 2014 at 07:41 AM 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?
carlosAl Posted June 9, 2014 at 10:18 AM Report #558728 Posted June 9, 2014 at 10:18 AM 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
FreiNando Posted June 9, 2014 at 08:03 PM Report #558785 Posted June 9, 2014 at 08:03 PM 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
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