![]() |
Asociar tablas en un dbgrid
Hola, tengo un problemilla con el dbgrid, la base de datos es access y tengo dos tablas, en una guardo todos los tipos de formato de grabación y tiene dos campos Reg-->Numero y formato-->texto y en la principal tengo un campo llamado Reg-->Tipo número en este campo lo asocio con Reg de la primera tabla y asi se me guarda el numero del formato.Trabajo con Delphi7 y componentes AdoQuery.
TABLA Formato REG----- FORMATO 1 ------- Betacam 2 ------- Umatic | -------| | -------| etc----- etc TABLA PRINCIPAL REG 1---->Quiero que el Dbgrid muestre Betacam El Dbgrid en vez de mostrame Betacam me muestra 1, en vez de Umatic un 2, y asi sucesivamente. Yo lo que quiero es que muestre Betacam en vez de un 1. A la hora de agregar registros no he tenido problemas con el DblookUpcombobox Me pone Betacam o lo que sea el formato y me lo guarda en la tabla principal como el numero que corresponde con ese formato. Lo que quiero es que a la hora de mostrarlo en el Dbgrid sabiendo el número de formato vaya a la tabla formato y me ponga por ejemplo Betacam si es ese. No se si me he explicado bien, espero que si. Muchas gracias por todo.Un saludo. |
Supongo que el DBGrid lo debes tener conectado a un ADOTable o a un ADOQuery cin una SQL similar a ésta:
Modificalo para que el DBGrid esté conectado a un ADOQuery con una consulta similar a ésta:
|
Hola Neftalí gracias por tu respuesta.Encantado de volverte a saludar, despues de la temporada que he estado desconectado del Delphi.
No me funciona, me sigue apareciendo el campo formato con numeros, y además ahora los demás campos me salen vacios. No se que puede estar mal en la consulta que me has dicho pero no me funciona,muchas gracias de todas formas. Un saludo |
Lanza ésta consulta en Access a ver qué sale (si sale bien o no).
Y desde el Grid, elimina las columnas que habías creado y vuelve a crearlas de nuevo, para que aparezcan los valores. |
Hola Neftalí,no me funciona, si borro las columnas y las vuelvo a añadir solo me deja seleccionar dos campos el campo formato y Reg. Tengo este codigo
Para que me salgan todos los campos he puesto el siguiente pero no me soluciona el problema inicial: A ver si ves tu lo que puedo estar haciendo mal por que no lo entiendo. |
Cita:
Eso debería generar una consulta que obtiene todos los campos de las dos tablas. Una vez que la tengas conectada al DBGrid, activala y pulsa Click derecho sobre el Grid; Añade todos los campos a la lista; Una vez que los tengas todos, para cada uno de los campos cambia la propiedad Visible para dejar visibles en el Grid los que te interesen. |
Ahora si que me ha funcionado muchisimas gracias Neftalí.
Perdona que te haga otra pregunta, tengo otro campo en el mismo Grid que me pasa lo mismo, estoy intentando anidar 'INNER JOIN' de la siguiente manera y no me deja: Me da un error de sintaxis en la clausula From, he probado poniendole parentesis y corchetes y nada. He leido que si que se pueden anidar las clausulas INNER JOIN, pero no consigo saber como. Se que soy un pesado,pero es que no tengo ni pajolera idea de Sql. Gracias por tu ayuda.Un Saludo. |
Cada INNER debe ir junto a su ON; Prueba a ponerlo debajo:
|
Hola Neftalí, mira tengo la siguiente consulta SQL funcionando como tu me dijiste:
Hasta aqui todo perfecto, ahora el problema es que quiero hacer lo mismo con una tabla formato y la misma tabla Archivo, y pongo la siguiente consulta
Y esto que a mi parecer deberia funcionar me da un error de sintaxis en la clausula From. Le he dado mil vueltas al código y no consigo nada.:confused: Gracias.Un saludo. |
Por lo pronto, sobra una coma (,) después de:
Por lo demás la veo bien; Asegurate de que los campos que usas para los INNER de unas tablas con otras sean los correctos. |
He probado lo que me dices de la coma y llevas razón, pero no me deja unir las dos tablas me dice que falta operador en la consulta:
No se que operador me puede faltar, a ver si alguien sabe lo que me puede estar pasando y me hecha una mano. He probado hacer la unión por separado y si que me deja, osea que descarto que sea fallo de los campos. Un Saludo Neftalí y gracias por todo.Eres una maquina. |
Perdonar que reabra el hilo, pero es que me ha surgido un problema. Tenia un boton que me borraba el registro seleccionado en mi dbgrid con el siguiente codigo:
Mi problema es que antes solo me borraba el registro seleccionado en la tabla archivo,pero, ahora me borra un registro en las tres tablas y solo quiero que me lo borre en la tabla archivo. Como lo puedo solucionar. Gracias Un saludo. |
¿Has añadido restricciones de borrados en cascada a tu Base de Datos?
|
Neftalí, perdona mi ignorancia, pero, es que no tengo ni idea de como se hace eso en Access.:confused:
Si me puedes hechar un cable te estaria muy agradecido. |
Si no las has uesto nada; Los borrados en cascada permiten borrar en cascada (como su nombre dice) registros de una tabla en el momento en que se borran los de otra; Por ejemplo, si tienes la tabla "Clientes" y relacionada con clientes la tabla "Personas de contacto"; Si al borrar un cliente te interesa borrar todas sus personas de contacto, se puede hacer directamente usando borrados en cascada.
Es la única forma que se me ocurre de borrar registros de varias tablas de una sóla vez. Pero si no las has puesto, no te preocupes, entonces tu problema va por otro lado. En access creo recordar que los borrados en cascada se definen cuando añades relaciones entre tablas. |
Gracias Neftalí por responderme de nuevo, he mirado en access las relacciones de mis tablas y no tengo seleccionadas los borrados en cascada.
¿Cual puede ser el problema? |
La franja horaria es GMT +2. Ahora son las 11:55:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi