PDA

Ver la Versión Completa : Problema para conectar varias tablas access


borralla
31-05-2008, 05:46:00
Hola muy buenas, tengo un pequeño problema un programa para gestionar bases de datos access en este caso.
Intentaré explicarme lo mejor posible, Adjunto al final unas capturas de la bd por su ayuda a entenderlo mejor

El asunto es quiero mostrar en una parte del formulario los datos de la tabla bombones, he usado por supuesto un ado conection para enlazar con la bd, un adotable para conectar con la tabla bombones y un dataset para moverme por ella. Esa parte la tengo resuelta, pero además querría que en otra parte del formulario se me enlazaran los datos con la segunda tabla. Es decir, si tengo un 'idbombon' mostrado en la primera parte que me muestre los datos de la otra acordes con el campo 'idbombon' actual.
Intenté hacerlo con un adoquery con la siguiente sentencia sql: select cantidad from detallescajas
where detallescajas.idbombon = dbEdit1.edittext
Siendo dbEdit1.edittext el dbEdit donde se muestra el dato 'idbombon'
El resultado es un mensaje de error:

http://img50.imageshack.us/img50/7259/errorcr8.jpg

Realmente no se si esta es la forma de hacerlo, las otras ideas que se me han ocurrido las he descartado como imposibles, pero por mas que cambio parametros no me da salido.

Capturas BD:

Relaciones (http://img45.imageshack.us/my.php?image=relacionesqr8.png)
Tabla bombones (http://img45.imageshack.us/my.php?image=tablabombonesgr9.jpg)
Tabla DetallesCajas (http://img45.imageshack.us/my.php?image=tabladetallescajasxx6.jpg)


Espero que me haya explicado bien y agradecería cualquier ayuda.
Sau2

marcoszorrilla
31-05-2008, 15:44:21
Lo más sencillo es que el segundo AdoTable lo relaciones con el primero a través de su propiedad MasterSource entonces te pedirá que selecciones los campos comunes de ambas tablas para establecer la relación maestro detalle.
De esta manera cada vez que selecciones un registro de la Tabla1 solamente verás los registros de la Tabla2 que casen con el seleccionado.

Un Saludo.

borralla
02-06-2008, 04:33:53
Hola marcoszorrilla, he intentado el metodo que me has dicho pero no me pide los campos relacionados cuando introduzco en el campo mastersource el datasource1, no se si abrá algun subcampo dntro de mastersource que se me haya pasado por alto, pero los he revisado todos.

He probado otra cosa que es crear un adoquery y cuando cuando se modifica el campo de idbombon en este caso ejecuto esta sentencia:

adoquery1.sql.add('select cantidad from detallescajas where detallescajas.idbombon =' + dbEdit1.edittext)

Pero tampoco me funciona. Gracias por tu ayuda

marcoszorrilla
02-06-2008, 06:05:31
No te los pide automáticamente, tienes que pulsar luego en el botón de elipse "MasterFields" [...]

Un Saludo.