¿Cómo guardar un registro en 2 tablas en access?

¿Cómo puedo guardar un registro en 2 tablas y editar al mismo tiempo si es necesario?

Con 2 botones

X ejemplo:

Tabla1: cliente, total

Tabla2: cliente, producto

Lo que quiero es que al oprimir el botón de guardar o editar me actualice ambas tablas

2 Respuestas

Respuesta
1

I. Hola Compañer@, aunque tengo grandes dudas, dos expertos propusieron estos métodos, que tal vez sean funcionales para su caso.

Dim BBDD As Database
Dim Tabla2 As Recordset2
Set BBDD=CurrentDb
Set Tabla2=OpenRecordset("Tabla2")
Tabla2.AddNew
Tabla2!campo1=Forms!nombreformulario!control1
Tabla2!campo2=Forms!nombreformulario!control2
Y así hasta que cubras todos los campos que quieres guardar, luego sigues con
Tabla2.Update
Tabla2. Close  


Para hacer lo que quieres debes recorrer la tabla, el código seria algo parecido a esto.
set rst = currentdb.openrecorset("select Equipo,planta,area from MiTabla")
While not rst.eof ' mientras no lleguemos al final de la tabla
Aux_Equipo = rst.fields(0)
Aux_Planta = rst.fields(1)
Aux_Area = rst.fields(2)
DoCmd.RunSQL "INSERT INTO Reportes(Equipo,Planta,Area) VALUES('" & Aux_Equipo & "','" & Aux_Planta & "','" & Aux_Area & "'))
rst.movenext
Wend



Podría ver tambien, mientras recibe respuestas, estas otras formas aportadas por distintos compañeros. Mucha suerte.

Quiero saber como guardar datos de un formulario en dos tablas access

Movimientos entre registros y guardar en otra tabla

Insertar datos en varias tablas

Guardar información en dos tablas diferentes

https://www.youtube.com/watch?v=tdoYOuQZtxw 

Respuesta
2

¿Estás habituado a trabajar con VBA?

Creo que hay una forma más fácil que es utilizando SQLs

Por ejemplo

Dim Texto as String

Texto= "INSERT INTO [" & Nombre de la Tabla & "] (" & Campo1 & "," & Campo2 & ","Campo3" & ") "

Texto = Texto & "SELECT " & Control1 & "," & Control2 & "," & Control 3 & ";"

CurrentDB. Execute Texto

Es decir, con VBA contruyes una instrucción SQL de inserción y la ejecutas para tantas tablas como desees.

Debes tener en cuenta:

Si los nombres de la tabla o de los campos tienes espacios, encerrarlos entre corchetes como te he puesto arriba para la tabla. Si no tienen espacios no hace falta

Si un campo es de texto, el valor del Control del formulario debe ir entre apóstrofes (no pueder ser comillas porque ya las usas para construir el SQL

Si un campo es de fecha, la fecha debe ir en formato SQL: con almohadillas delimitadoras y en formato inglés.

Seguidamente te indico una función que te transforma una fecha cualquiera a una en formato SQL

En este caso, lo que pondrías en la instrucción SELECT de la SQL sería: DataSQL(CampoX)

Function DataSQL(Data As Date) As String

DataSQL = "#" & month(Data) & "/" & day(Data) & "/" & year(Data) & " " & Hour(Data) & ":" & Minute(Data) & ":" & Second(Data) & "#"

End Function

Por cierto, si los controles son del formulario en el que insertas el código (por ejemplo "Al hacer click" en un botón de comando), la sintaxis para los controles sería me. NombreDelControl

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas