Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Problema con guardar con un query de tablas combinadas (http://www.forosdelweb.com/f69/problema-con-guardar-con-query-tablas-combinadas-284730/)

Iodem Asakura 31/03/2005 20:01

Problema con guardar con un query de tablas combinadas
 
Tengo problemas con el metodo Update de un adodc cuando he hecho un query seleccionando datos de tablas combinadas.

El error que me da es el siguiente: "Informacion de columna clave insuficiente para realizar la operacion Update o Refresh"

He intentado muchas cosas... tenia algunas columnas con el mismo nombre en ambas tablas y ya les puse nombres unicos, asi que no hay columnas con el mismo nombre, tambien les puse campos claves, probe y luego se los quite y probe y sigo en lo mismo.

Alguien me podria dar una mano?

tassaramar 01/04/2005 15:50

actualizar datos desd una consulta
 
hola! yo tengo exactamente el mismo problema!! estoy tratando de modificar un campo que tengo en un consulta con datos de varias tablas y me da el mismo error.
Me parece que voy a mandar el comando SQL directamente al recordset para abrirlo desde VB.
Intente cambiar la ubicacion del cursor y ponerle y sacarle la calve principal pero no quiere saber nada...

Saludos
Martin

tassaramar 01/04/2005 16:51

Lo pude solucionar. El problema esta en como esta escrito el comando SQL en la consulta. Fijate que los campos esten todos llamados desde la tabla correspondiente.

Es decir:
Si tenes las tabla Alumnos y Cursos con claves principales en IDAlumnos e IDCursos.
En la tabla Alumnos guardas tenes un campo que se llama IDCursos(aqui es donde se establece la relacion) y en la tabla cursos tenes un campo que se llama Nombre.
En la consulta, llamemosla ConSulTa1, queres que te muestre para cada alumno el nombre del su curso.

Es decir que tendrias algo como

SELECT Alumnos.IDAlumno, Cursos.IDCurso, Cursos.Nombre
FROM (Alumnos INNER JOIN Cursos ON Alumnos.IDAlumno = Cursos.IDCurso)


Esto no sirve si queres modificar el curso de cada alumno.
Para poder hacer el cambio, la consulta tendria que ser

SELECT Alumnos.IDAlumno, Alumnos.IDCurso, Cursos.Nombre
FROM (Alumnos INNER JOIN Cursos ON Alumnos.IDAlumno = Cursos.IDCurso)


De este modo para modificar el curso desde ConSulTa1 tendrias que modificar el campo llamado IDCurso.

En mi caso yo hago todo esto desde un recordset. Una vez que modifico el campo IDCurso tengo que hacer un Recordset.Requery para que el campo nombre se actualize.

Espero que te sirva!

Saludos!

Martin Tassara

Iodem Asakura 01/04/2005 18:50

Gracias por tu comentario, por lo menos ahora tengo esperanza. Lo voy a intentar mas tarde, porque ahora no puedo y te dejo saber como me fue :-D

Iodem Asakura 04/04/2005 20:37

Lo he intentado de mil maneras diferentes, crees que podrias enviarme un los archivos de algun ejemplo, quiza puedas empaquetarlos todos en un .zip o .rar y enviarlo, te estare agradecido, porque sinceramente a mi no me sale nada.


La zona horaria es GMT -6. Ahora son las 09:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.