Visual Basic - Actualizar registros con integridad referencial

Life is soft - evento anual de software empresarial
 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder