FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problema con tablas Maestro-Detalle
Hola! voy directo al grano, tengo dos tablas (en ACCESS): una de PRODUCTOS y otra de COMENTARIOS que la gente puede hacerle a esos productos (con relación maestro-detalle). Tengo un ADOTable asociado a la tabla COMENTARIOS.
En mi formulario tengo un DBGrid asociado a un ADOQuery que me muestra el titulo de los productos, y cuando voy bajando o subiendo en el DBGrid me va mostrando los comentario para dichos productos en otro dbgrid llamado "DBgrid_Comentarios". EL PROBLEMA: la tabla comentarios tiene un campo booleano "estado_comentario" que me dice si esta borrado o no. Lo que quiero poder hacer es que cuando esta BORRADO no me lo muestre en la tabla de detalles (osea en el DBGrid_comentarios) ¿Cómo podría solucionar este inconveniente? Ya que en el ADOTable de la tabla COMENTARIOS en la propiedad "Filter" no me deja usarla porque me sale un cartel que "esta propiedad no está disponible para tablas detalles" Espero que me puedan ayudar!! espero sus respuestas, desde ya muchísimas gracias por adelantado! |
#2
|
||||
|
||||
Hola DANIEL1818.
Reemplaza el componente ADOTable (detalle) por un ADOQuery y luego este código: También deberás cambiar:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Cita:
Gracias por tu respuesta, unas preguntas: 1) el codigo lo pongo en el evento onCreate del formulario que tiene las dos grillas no(la que me muestra el producto y el detalle)? 2)la verdad no entendi muy bien, ya que nunca lo hice de esta forma y estoy un poco perdido,ya puse ese codigo como me dijiste y ya en la primer linea me tira error fuera de memoria, lo que hice fue agregar un ADOQuery en el datamodule, y no lo active ni nada porque no me deja ya que no tiene escrito en su interior sentencia sql. El codigo que puse en el evento onCreate fue:
No entiendo como puedo hacer para que funcione, porque que pasa con el dbgrid_Comentario (DETALLE) en el formulario? lo asocio al query que me dijiste que ponga en reemplazo del ADOtable que tenia antes? porque ya lo hice y tampoco funciona. El dbgrid que me muestra todos los productos esta asociado a varias querys, ya que se puede filtrar por fecha, por nombre del producto etc. Espero tu respuesta! y muchas gracias por tu ayuda! Última edición por DANIEL1818 fecha: 12-07-2015 a las 01:32:37. |
#4
|
||||
|
||||
Hola.
1) Si como parece en tu código tenes los DataSources en el DataModule (DM), podes hacer todas las asignaciones al ADOQuery en tiempo de diseño, inclusive la propiedad SQL y sólo tendrías que abrir y cerrar el query en el form que desees mostrar los datos. 2) En este caso el ADOQuery reemplaza al ADOTable, de modo que tendrá que tener un DataSource asociado y en la propiedad DataSource del DBGrid (detalle) deberá figurar el nuevo DataSource. Yo hice toda la asignación por código para que se viera mas claramente las asignaciones, pero no es estríctamente necesario. Es decir, si lo tenes armado de este modo, en la propiedad DataSource del DBGrid del detalle tendría que figurar DM.dsDetail. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Cita:
Hola nuevamente, no pude lograrlo, lo hice de esta forma porque ya no se como hacerlo a ver si me podes dar una mano: Este código lo hice en el evento form Activate del que tiene la grilla maestro y detalle:
y esta sentencia SQL lo puse en el queyDetalles (el que tuve que reemplazar por el ADOTable_detalle):
Los dos puntos que me dijiste que se los deje, se los tuve que sacar porque sino no me mostraba nada en la grilla detalle,(porque ademas si se anteponen los " : " seria un parametro, y no se que parametro se le pasaría ya que al ir bajando en la Grilla maestro me tiene que mostrar los comentarios de dicho producto, osea si tengo una mesa que me muestre los comentarios de la mesa, bajo un registro en la grilla y tengo una bicicleta entonces solo quiero que me muestre los comentarios de la bicicleta y esto no pasa.) Está bien de la forma que estoy escribiendo el codigo en Delphi y el SQL en el querydetalle? o que mas me hace falta? La conexión que hice fue: a la grillaMaestro le asigne el dataSource-->> DM.ds_QueryTodosLosProductos; //esta consulta me muestra todos los productos, y no lo conecto directamente a la tabla maestro ya que voy a tener que hacer distintos tipos de filtrado por titulo de producto, por fecha de publicacion de producto etc, entonces al DataSet del DataSource ds_QueryTodosLosProductos le voy a ir seteando los distintos querys que me realizan los distintos filtrados. Espero tu respuesta y desde ya muchísimas gracias por tus gratas ayudas! |
#6
|
||||
|
||||
Cita:
Creo que lo mejor es que te adjunte un ejemplo simple y funcionando de lo que te estoy diciendo. Para el mismo uso las tablas customer y orders de dbdemos.mdb (viene con Delphi). El ejemplo filtra quitando los distintos "PaymentMethods" desde un ComboBox y quita el filtrado desde un Button. Crea una carpeta y descomprime el demo allí. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
|||
|
|||
Cita:
Lo probe y no funciona, el codigo que puse en el evento onCreate del formulario es este(probe moviendo para arriba y para abajo las distintas lineas de codigo, como por ejemplo activando el query arriba de todo, en el medio como ahora y no funciona):
Siempre tira el error "Access violation at address 05AC644 in module 'Project1.exe'. Read of address 000003E0" y en un momento cuando puse el DM.QueryDETALLEComentario.DataSource := DM.ds_queryCategorias; arriba de todo me decia que no se podia porque era como que se linkeaba de manera circular |
#8
|
||||
|
||||
¿Por qué cambias el código?, lo puesto por ecfisa es:
|
#9
|
||||
|
||||
Esa afirmación es incorrecta, el ejemplo que te adjunté funciona tál como se puede ver en esta imágen:
Pero como bien te indica Casimiro, si cambias el código... Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
DANIEL1818,
Cita:
Te comento: 1- El ejemplo suministrado en el Msg #6 (Relación Master-Detail) funciona correctamente según lo esperado 2- Te sugiero revisar el mencionado ejemplo detalladamente para comprender su funcionamiento, no realices ningún cambio al código hasta que asimiles la mecánica del mismo. Revisa esta información: Espero sea útil Nelson. |
#11
|
|||
|
|||
Muchas gracias por sus respuestas!! ya lo probe bien!
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda con tablas maestro detalle | Diego827 | SQL | 1 | 01-02-2015 04:19:53 |
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes | akinom38 | Varios | 1 | 09-11-2007 19:27:44 |
Reporte Maestro/Detalle/Detalle de 4 Tablas | jovehe | Impresión | 2 | 23-03-2005 01:25:02 |
Tablas Maestro-Detalle | silviodp | Conexión con bases de datos | 13 | 07-06-2004 22:55:22 |
tablas maestro/detalle | vetustas | Conexión con bases de datos | 7 | 09-11-2003 22:56:21 |
|