Uno a varios registro obligatorio en tabla secundaria antes de crear un nuevo en tabla primaria

05/09/2010 - 15:13 por cpjcarlos | Informe spam
Hola amigos estoy realizando una pequeña aplicacion en access 2007
para llevar un control de cajas de doumentos pero necesito que al
crear un registro en la tabla primaria se haga se tengan que agregar
registros en la tabla secundaria, si no no se pueda crear un nuevo
registro en la tabla primaria
como se lograria esto -gracias

Preguntas similare

Leer las respuestas

#1 Patxi Sanz
06/09/2010 - 10:36 | Informe spam
On 5 sep, 15:13, cpjcarlos wrote:
Hola amigos estoy realizando una pequeña aplicacion en access 2007
para llevar un control de cajas de doumentos pero necesito que al
crear un registro en la tabla primaria se haga se tengan que agregar
registros en la tabla secundaria, si no no se pueda crear un nuevo
registro en la tabla primaria
como se lograria esto -gracias



Directamente es bastante complicado, ya que necesitarás tener guardado
el registro de la tabla primaria antes de poder crear registros en la
tabla secundaria. A no ser que no estén relacionadas las tablas, pero
en este caso podrás tener registros "huérfanos" en la tabla
secundaria.

Una posibilidad que puedes probar es tener una consulta con los campos
requeridos de las 2 tablas, y usarla como origen en un formulario para
crear los registros. El usuario agregará los datos, y tú puedes
controlar que no haya dejado ningún campo requerido en blanco.
Respuesta Responder a este mensaje
#2 Patxi Sanz
06/09/2010 - 10:44 | Informe spam
On 6 sep, 10:36, Patxi Sanz wrote:
On 5 sep, 15:13, cpjcarlos wrote:

> Hola amigos estoy realizando una pequeña aplicacion en access 2007
> para llevar un control de cajas de doumentos pero necesito que al
> crear un registro en la tabla primaria se haga se tengan que agregar
> registros en la tabla secundaria, si no no se pueda crear un nuevo
> registro en la tabla primaria
> como se lograria esto -gracias




Un ejemplo:

- Tabla principal (Tabla1): tiene 2 campos, campo1 (clave principal) y
campoPrincipal.
- Tabla secundaria (Tabla3): tiene 2 campos, campo1 y campoSecundario
(ambos componen la clave de la tabla).
- Las 2 tablas están relacionadas por campo1, y la relación es uno a
varios.
- Creo una consulta con los campos de las 2 tablas:

SELECT Tabla1.campo1, Tabla1.campoPrincipal, Tabla3.campo1,
Tabla3.campoSecundario
FROM Tabla1 INNER JOIN Tabla3 ON Tabla1.campo1 = Tabla3.campo1;

- Y creo el formulario basado en la consulta.
- Obligo al usuario a introducir un valor en el campoSecundario para
que se guarden los registros en las 2 tablas:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If Nz(Me.campoSecundario, "") = "" Then
MsgBox "Debe agregar el dato secundario"
Cancel = True
End If
End Sub

Eso sí, es recomendable usar esta consulta/formulario únicamente
cuando se desee crear un registro nuevo en la tabla principal. Si ya
está creado el registro principal, y se vuelven a introducir los
mismos datos, Access no lo permitirá porque estaremos duplicando la
clave.
Respuesta Responder a este mensaje
#3 Ignacio
07/09/2010 - 11:00 | Informe spam
¡Hola, Cpjcarlos!

¿Y usar transacciones?
Utiliza los métodos BeginTrans, CommitTrans y Rollback.
Primero abre una transacción con BeginTrans. Das de alta los registros
en la tabla principal. Si hay registros en la tabla secundria los das
de alta y cierras la transacción con CommitTrans, sino utiliza
Rollback para anular la transacción. Y listo.

Espero que te sirva de algo.
Un saludo,
Ignacio.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida