RESPONDER UNA PREGUNTA

Si para responder la pregunta, crees necesario enviar un archivo adjunto, puedes hacerlo a traves del correo [email protected]

    Pregunta:  68070 - DAYABINDINGSOURCE ENTRE TABLAS RELACIONADAS
Autor:  Eduardo Bernal Alvarez
Hola,
Estoy teniendo mi primer contacto con VB.net, y estoy tratando de hacer funcionar un proyecto sencillo que consiste básicamente en la conectar y gestionar los registros de una base de datos de MS Access a través de formularios “Windows Forms” creados con “Visual Studio 2010”.
A base de videos y foros he conseguido lo mas básico y funciona, pero llevo ya bastante tiempo atrancado en una asunto que no logro entender.

En mi base de datos de Access hay tres tablas relacionadas: tDOCUMENTACION, tRESPONSABLE, tHISTORIAL

La tabla tDOCUMENTACION está relacionada con la tabla tHISTORIAL mediante una relación "uno a varios" donde tDOCUMENTACION.IdDocumento es la clave primaria y tHISTORIAL.IdDocumento es la clave externa

La tabla tRESPONSABLE está relacionada con la tabla tDOCUMENTO mediante una relación "uno a varios" donde tRESPONSABLE.IdResponsable es la clave primaria y tDOCUMENTO.IdResponsable es la clave externa.

Mediante los "wizards" de VB Studio he conseguido vincular el DataSource de un control DataGridView (dgvDocumento) a la tabla tDOCUMENTO, creándose automáticamente un databindingsource (tDOCUMENTObindingSource) que lo controla, y, de la misma forma he conseguido vincular el DataSource de otro control DataGridView (dgvHistorial) a la tabla tHISTORIAL que está sincronizado a la selección de la fila que haga en el "dgvDocumento", de forma que la información del "dgvHistorial" va variando a medida que se van seleccionando los diferentes registros del "dgvDocumento". He estado investigando un poco y he observado que para llevar a cabo esta sincronización entre ambos controles "DataGridView" el origen de datos del control "dgvHistorial"es un "DataBindingSource" que tiene como "DataSource" la relación entre las tablas DOCUMENTO e HISTORIAL del DATASET.

Hasta aquí todo bien.., el problema comienza cuando quiero que se presente sobre el mismo formulario un control TEXTBOX (txtNombreResponsable)que muestre la información de una columna (NombreResponsable)de la tabla tRESPONSABLE, a medida que cambio de registro en el dgvDocumento. De esta forma, a medida que me muevo sobre las filas del dgvDocumento podría ir visualizando la información relacionada de la tabla tHISTORIAL en el dgvHistorial y el nombre de la persona responsable del documento en cuestión contenida en la tabla tRESPONSABLE (relacionada con la tabla tDOCUMENTO) en el control "txtNombreResponsable"

Lo que he intentado ha sido añadir un "DataBindingSource" (tDocumentotResponsableBindingSource) en el formulario cuya "DataSource" sea el "tDOCUMENTObindingsource", y el "DataMember" la relación existente en el DataSet entre las tablas tDOCUMENTO y tRESPONSABLE, con la intención de, hecho esto, utilizar la línea de código:

Me.txtNombreResponsable.DataBindings.Add("text", DocumentoResponsableBindingSource, "NombreResponsable")

El caso es que cuando creo el "tDocumentotResponsableBindingSource" y le asocio como "DataDource" el "DOCUMENTObindingSource" no me permite asociar como "DataMember" la relación entre las tablas tDOCUMENTO y tRESPONSABLE, dejándome como única opción para el DataMember la relación entre la tablas tDOCUMENTO e tHISTORIAL, que es la que utilicé para asociar el "dgvHistorial" al "dgvDocumento". El mensaje de error que me sale es “El valor de la propiedad no es válido: La propiedad DataMember 'tblRESPONSABLEtblDOCUMENTO' no se encontró en DataSource”

¿cómo debo hacerlo?, muchas gracias y perdón por el rollete, pero es muy complicado para mí explicar esto con palabras.

saludos.


Nombre
Apellidos
Correo
Comentarios