Hola, Jos�:
Si el objeto DataTable resultante afecta a m�s de una tabla de la base de
datos, que yo sepa, no se pueden actualizar autom�ticamente las tablas
afectadas; tendr�s que actualizarlas manualmente, y a decir verdad, es un
trabajo complicado de hacer, porque tendr�as que recorrer todos los
registros existentes en el DataGridView, e ir actualizando los datos de los
campos en sus respectivas tablas: los datos de X columnas actualizarlos en
la tabla X, los datos de Y columnas en la tabla Y, y los datos de Z columnas
hacer lo propio en la tabla Z. Todo esto se har�a ejecutando las oportunas
consultas SQL de actualizaci�n (UPDATE), o de eliminaci�n (DELETE). Y si has
a�adido nuevos registros, tendr�as que ejecutar consultas de datos a�adidos
(INSERT INTO).
Ten en cuenta que cuando se ejecutan consultas de combinaci�n (INNER JOIN),
mayormente es para presentar datos de s�lo lectura, como puede ser un
listado de ventas, de compras, etc., para imprimirlos o mostr�rselos al
usuario en pantalla.
Un saludo
--
Enrique Mart�nez
[MS MVP - VB]
Nota informativa: La informaci�n contenida en este mensaje, as� como el
c�digo fuente incluido en el mismo, se proporciona �COMO EST��, sin
garant�as de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en pr�ctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Y c�mo se puede hacer? C�mo suelen hacerlo ustedes?
> Como los datos son c�digos de identificaci�n, estoy mostrando su
�Vamos a ver! Si yo quiero modificar, actualizar, cambiar el c�digo de un
Cliente, para esa tarea no me es necesario rellenar un control DataGrid, y
menos, como producto de ejecutar una consulta de selecci�n que agrupe varias
tablas, porque en definitiva se trata de modificar un �nico registro: el del
Cliente X o el del Cliente Y.
Pues bien, lo que yo har�a era ejecutar una simple consulta SQL de
actualizaci�n (UPDATE). Si deseo cambiar el c�digo del Cliente L001 por el
c�digo L928, ejecutar�a la siguiente consulta:
UPDATE Tabla_Clientes
SET Codigo = 'L928'
WHERE Codigo = 'L001'
Es decir, ejecutar�a esa consulta cada vez que necesite modificar el c�digo
de identificaci�n de un Cliente.
Es como si tuviera una cabecera de factura con el Numero y en el datagrid
los productos que se compraron con esa factura. entonces quiero usar el
daagrid para agregar o modificar los registros.
Se me complica un poco porque no tengo La estructura Form-SubForm de Access.
Si dices que los datos que muestras en el control DataGrid pertenecen a una
�nica tabla, cr�ate un conjunto de datos "tipado" y podr�s actualizarlos
llamando al m�todo �Update� del objeto TableAdapter apropiado.
> Se me complica un poco porque no tengo La estructura
> Form-SubForm de Access.
Si la relaci�n entre las tablas la tienes ya creada en la propia base de
datos, cuando crees un origen de datos en tu proyecto, la relaci�n ser�
creada autom�ticamente entre los objetos DataTable correspondientes.
Simplemente basta que arrastres al formulario los campos del objeto
DataTable que actuar� de Maestro y el objeto DataTable que actuar� de
Detalle, en �ste �ltimo supuesto, aquellos campos que se mostrar�n en el
control DataGridView.
> Los datos del DataGrid no son de una �nica tabla, toma los
> datos de varias tablas, por eso, al querer actualizar me de el error
Entonces no es lo que me hab�as comentado anteriormente.
Pues volvemos al principio: si los datos pertenecen a m�s de una tabla, no
puedes utilizar el m�todo Update del objeto TableAdapter, porque �ste
objeto, si la consulta SQL de selecci�n afecta a m�s de una tabla, no
configura las propiedades InsertCommand, UpdateCommand y DeleteCommand del
objeto DataAdapter subyacente.
-----------------------------------------------------------------------------
Less Spam Better enjoyable experience
Visit : news://spacesst.com