Base de datos

Hola Angelessebas, me precipite en este tema dándolo por finalizado:
http://www.todoexpertos.com/mitodoexpertos/user/questions/view/2499027/base-de-datos
Tu respuesta fue esta:
Buenas tardes,
Me parece que te has liado un poco con el nombre de las tablas, pero entiendo que la tabla origen es GASTOS_DATOS y la tabla que tú has creado se llama GASTOS. Si quieres actualizar un campo de una tabla con datos de otra lo primero es vincular estas dos tablas ineqivocamente, es decir vincular por campos que definan inequívocamente a un registro, después utilizar una consulta de actualización. Supongamos que las dos tablas tienen un campo que las une, lo llamaremos IdCliente, la sql sería:
Update GASTOS inner join GASTOS_DATOS On GASTOS.IdCliente=GASTOS_DATOS.IdCliente Set GASTOS.Descripcion=GASTOS_DATOS.Descripcion
De todos modos, si quieres crear un informe, formulario... Basado en dos tablas que tengan algún vínculo, podrás hacerlo en propiedades, origen del registro picas en el cuadrado de la derecha, el de los ... Y ahí puedes crearte la consulta en la que basar tu informe.
Saludos, Angeles
Hice la consulta de actualización : Update GASTOS inner join GASTOS_DATOS On GASTOS.ID_DATOS=GASTOS_DATOS.ID_DATOS Set GASTOS.Descripcion=GASTOS_DATOS.Descripcion
Y funciona perfecta como te comente en el anterior post, pero, ¿hay manera de que se ejecutara sola? Osea, que cuando yo cree una factura no tenga que ir a la base a ejecutar la consulta para que se actualicen los datos en la tabla GASTOS, no se si me he explicado bien, al igual que los datos se insertan en descripción de GASTOS_DATOS se insertaran también en descripción GASTOS que es lo que hace la consulta creada.
Saludos

1 respuesta

Respuesta
1
Para que se ejecute mediante código tendrías que utilizar el método ejecutar SQL de la forma:
DoCmd.RunSQL "Update GASTOS inner join GASTOS_DATOS On GASTOS.ID_DATOS=GASTOS_DATOS.ID_DATOS Set GASTOS.Descripcion=GASTOS_DATOS.Descripcion"
Hola Angelessebas, al poner esta instrucción me salta el mensaje siguiente:
Instrucción SQL no valida; se esperaba 'DELETE','INSERT','PROCEDURE','SELEC'o'UPDATE'
¿Qué hago mal?
Saludos
¿Podrías copiar y pegar el código que has escrito?
Buenas tardes, he puesto lo mismo que tu habías puesto:
DoCmd.RunSQL "Update GASTOS inner join GASTOS_DATOS On GASTOS.ID_DATOS=GASTOS_DATOS.ID_DATOS Set GASTOS.Descripcion=GASTOS_DATOS.Descripcion"
¿no es asi? Perdona mi ignorancia.
Saludos
Ah, se me olvidaba, lo he puesto en la consulta crerada anteriormente, osea, borro la que hay y creo esta.
Sinceramente no se lo que puede fallar, si quieres me mandas la BD reducida (con unos pocos registros) y la echo un vistazo. La BD en access 2003.
De todos modos si en la pestaña consultas te funciona, copia la sql de esa consulta, la tienes en la parte superior izquierda, debajo de archivo, si despliegas tienes la vista sql, cópiala y pégala en el código.
Mi correo es [email protected]
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas