!!!Ayuda, ¿Porqué no me deja actuliazar la tabla?

01/09/2005 - 19:10 por Paloma M S | Informe spam
Hola a todos/@s,

Tengo un problema que no se porque ocurre y ya no se donde buscar, he leido
todo lo que he podido pillar y me he basado y seguido todos los pasos que El
Guille indica en su curso colgado en la msdn de microsof.

Bueno no exactamente porque nuestro Guille utiliza una base de datos SQL y
yo como venía utilizando Access 2000 de momento lo he intentado con esta
base de datos.

Para no enrollarme mucho os cuento lo que adjunto es un programita en .Net
2005 beta 2 que es un formulario MAESTRO-DETALLE donde pongo los datos de
dos tablas relacionadas entre si de uno a muchos por un campo.

Pues bien para no liarme mucho con el código he dejado que sea el propio
.Net el que lo hago todo, pasos seguidos:

- Creo un origen de datos nuevo del tipo base de datos
- Le digo que creo una nueva conexión
- Elijo el data source como: Microsoft Access Database File (el data
provider cambia a ".NET Framework Data Provider for OLE DB)
- Selecciono el Database file name: c:\PruebaDB\db2.mdb
(la cadena de conexion que se crea es "Microsoft.Jet.OLEDB.4.0;Data
Source=c:\PruebaDB\db2.mdb")
- Selecciono incluir todas la tablas en el dataset


- Cambio el tipo de la tabla maestro(Clientes) en la venta del Data Sources
(Origenes de datos) para que sea del tipo detalle y el campo que enlaza las
tablas lo hago del tipo label.

- En la tabla detalle (Lecturas) cambio un par de campos a label y la dejo
como de tipo grid.

- Arrastro para que se añada la formulario la tabla maestro (Clientes) y
después la tabla detalle (Lecturas).

Pues bien aparece el BindingNavigator y todos los controles perfectamente y
aparentemente funciona todo perfecto.

Pues no, cuando incluyo en el formulario la tabla maestro (Clientes) puedo
hacer lo que quiera con los datos pero al incluir el grid de la tabla
detalle (lecturas) al intentar modificar datos de la tabla maestro me dice:

OleDbException was Unhandled
"El registro no se puede eliminar o cambiar porque la tabla 'Lecturas'
incluye registros relacionados."

Como dice la excpetion solo pasa cuando intento modificar datos de un
cliente para el que existen datos relacionados en la tabla Lecturas ya que
el primero de los clientes no tiene datos en la tabla detalle (lectuas) y
si que deja modificar sus campos pero del resto de clientes nada de nada.

Ya no se por donde salir con este tema porque he seguido los pasos tal y
como aparecen en los manuales pero nada de nada siempre la misma historia y
con VB6 esto no pasaba.

¿Qué puede ser lo que estoy pasando por alto?

Agradeceré toda la ayuda que me podais pensar porque ya no se si cortarme la
venas o dejarmelas largas.

PD. He intentado adjuntar el fichero zip con el proyecto pero me dice el
servidos que pesa mucho incluso zipeado.

Saludos
Luc
 

Leer las respuestas

#1 tecsys
01/09/2005 - 20:37 | Informe spam
¿Cuales son los campos que utilizas para relacionar las tablas?, el error que
te arroja al parecer significa que estas tratando de modificar algún campo
que utilizas como llave foranea de lecturas
"Paloma M S" escribió:

Hola a todos/@s,

Tengo un problema que no se porque ocurre y ya no se donde buscar, he leido
todo lo que he podido pillar y me he basado y seguido todos los pasos que El
Guille indica en su curso colgado en la msdn de microsof.

Bueno no exactamente porque nuestro Guille utiliza una base de datos SQL y
yo como venía utilizando Access 2000 de momento lo he intentado con esta
base de datos.

Para no enrollarme mucho os cuento lo que adjunto es un programita en .Net
2005 beta 2 que es un formulario MAESTRO-DETALLE donde pongo los datos de
dos tablas relacionadas entre si de uno a muchos por un campo.

Pues bien para no liarme mucho con el código he dejado que sea el propio
..Net el que lo hago todo, pasos seguidos:

- Creo un origen de datos nuevo del tipo base de datos
- Le digo que creo una nueva conexión
- Elijo el data source como: Microsoft Access Database File (el data
provider cambia a ".NET Framework Data Provider for OLE DB)
- Selecciono el Database file name: c:\PruebaDB\db2.mdb
(la cadena de conexion que se crea es "Microsoft.Jet.OLEDB.4.0;Data
Source=c:\PruebaDB\db2.mdb")
- Selecciono incluir todas la tablas en el dataset


- Cambio el tipo de la tabla maestro(Clientes) en la venta del Data Sources
(Origenes de datos) para que sea del tipo detalle y el campo que enlaza las
tablas lo hago del tipo label.

- En la tabla detalle (Lecturas) cambio un par de campos a label y la dejo
como de tipo grid.

- Arrastro para que se añada la formulario la tabla maestro (Clientes) y
después la tabla detalle (Lecturas).

Pues bien aparece el BindingNavigator y todos los controles perfectamente y
aparentemente funciona todo perfecto.

Pues no, cuando incluyo en el formulario la tabla maestro (Clientes) puedo
hacer lo que quiera con los datos pero al incluir el grid de la tabla
detalle (lecturas) al intentar modificar datos de la tabla maestro me dice:

OleDbException was Unhandled
"El registro no se puede eliminar o cambiar porque la tabla 'Lecturas'
incluye registros relacionados."

Como dice la excpetion solo pasa cuando intento modificar datos de un
cliente para el que existen datos relacionados en la tabla Lecturas ya que
el primero de los clientes no tiene datos en la tabla detalle (lectuas) y
si que deja modificar sus campos pero del resto de clientes nada de nada.

Ya no se por donde salir con este tema porque he seguido los pasos tal y
como aparecen en los manuales pero nada de nada siempre la misma historia y
con VB6 esto no pasaba.

¿Qué puede ser lo que estoy pasando por alto?

Agradeceré toda la ayuda que me podais pensar porque ya no se si cortarme la
venas o dejarmelas largas.

PD. He intentado adjuntar el fichero zip con el proyecto pero me dice el
servidos que pesa mucho incluso zipeado.

Saludos
Luc



Preguntas similares