Actualizar registros con integridad referencial
Publicado por Javier (2 intervenciones) el 22/05/2006 19:58:48
Hola amigos. Mi problema es el siguiente: tengo una base de datos en Access, con 3 tablas.
tblCliente, tblDomicilio, tblLocalidad
tblCliente: idcliente, nombrecli, apellidoclie, cuitcli, iddomicilio
tblDomicilio: iddomicilio, calle, nrocalle, idlocalidad
tblLocalidad: idlocalidad, localidad
como verán, cada tabla tiene una clave foránea relacionada con otra tabla.
Estoy tratando de crear un ABM para clientes, pero no me deja agregar registros. Las tablas en access están relacionadas, y tienen en "si" las opciones de "mantener integridad referencial", "eliminar en cascada", "actualizar en cascada"...
Desde VB6, accedo a la base de datos mediante ADO.
-----------------------------------------------------------
Option explicit
Dim rs as ADODB.Recordset
Dim cn as ADODB.Connection
etc...
-----------------------------------------------------------
cn.open
rs.open
etc...
------------------------------------------------------------
Private sub cmdGuardar_click()
With rs
.addnew
.!nombrecli = txtnombre.text ' de tblClientes
.!apellidocli = txtapellido.,text ' de tblClientes
.!cuitcli = txtcuit.text ' de tblClientes
.!calle = txtcalle.text ' de tblDomicilio
.!nrocalle = txtnrocalle.text ' de tblDomicilio
.!localidad = txtlocalidad.text ' de tblLocalidad
.update
End with
End sub
Bien, eso es bàsicamente lo q hace el programa. Pero cuando llega a "update", me da error. Me dice por ej: "No es posible actualizar el registro, ya que la tabla "tblLocalidad" requiere un registro relacionado"
Mi pregunta es, en sínstesis, cómo se debe trabajar con el recordset cuando la opción de "mantener integridad referencial" está en true.
Por otra parte, tambièn necesito saber si la tabla "tblDomicilio" tiene que tener su clave primaria "autonumérica", o cuando creo un cliente, soy yo el que debe determinar esa clave desde el código.
tblCliente, tblDomicilio, tblLocalidad
tblCliente: idcliente, nombrecli, apellidoclie, cuitcli, iddomicilio
tblDomicilio: iddomicilio, calle, nrocalle, idlocalidad
tblLocalidad: idlocalidad, localidad
como verán, cada tabla tiene una clave foránea relacionada con otra tabla.
Estoy tratando de crear un ABM para clientes, pero no me deja agregar registros. Las tablas en access están relacionadas, y tienen en "si" las opciones de "mantener integridad referencial", "eliminar en cascada", "actualizar en cascada"...
Desde VB6, accedo a la base de datos mediante ADO.
-----------------------------------------------------------
Option explicit
Dim rs as ADODB.Recordset
Dim cn as ADODB.Connection
etc...
-----------------------------------------------------------
cn.open
rs.open
etc...
------------------------------------------------------------
Private sub cmdGuardar_click()
With rs
.addnew
.!nombrecli = txtnombre.text ' de tblClientes
.!apellidocli = txtapellido.,text ' de tblClientes
.!cuitcli = txtcuit.text ' de tblClientes
.!calle = txtcalle.text ' de tblDomicilio
.!nrocalle = txtnrocalle.text ' de tblDomicilio
.!localidad = txtlocalidad.text ' de tblLocalidad
.update
End with
End sub
Bien, eso es bàsicamente lo q hace el programa. Pero cuando llega a "update", me da error. Me dice por ej: "No es posible actualizar el registro, ya que la tabla "tblLocalidad" requiere un registro relacionado"
Mi pregunta es, en sínstesis, cómo se debe trabajar con el recordset cuando la opción de "mantener integridad referencial" está en true.
Por otra parte, tambièn necesito saber si la tabla "tblDomicilio" tiene que tener su clave primaria "autonumérica", o cuando creo un cliente, soy yo el que debe determinar esa clave desde el código.
Valora esta pregunta


0