Miquel Costa escribió:
Al clicar en un cliente del primer cuadro que salgan todas las Intervenciones (solo el Numero de Intervención por ejemplo) en el segundo cuadro.
Al clicar en éste que salga la información de la Intervención abajo.

Para responderte sigo necesitando respuesta a las preguntas que te envié:
la primera lista debe tener como items el nombre de los clientes, ¿no? Como usas DISTINCT, creo que un cliente puede aparacer más de una vez en la columna, es decir ¿figura en más de un registro? Si es así, ¿no tiene la tabla Clientes un campo que identifique a cada registro unívocamente?
Has esccrito "Luego me interesa que según el Cliente seleccionado salgan las Intervenciones en el segundo cuadro combinado.", pero para ello es necesario que la tabla Intervenciones referencie a la tabla Clientes mediante una clave foránea, ¿cuál es? ¿el número de serie? ¿Que deseas que se muestre en esta lista, el código de la/todas las Intervención/es, la cantidad de las mismas para un número de series?

En resumidas cuentas, creo que la base (por lo menos como me has enviado en el ejemplo) está mal diseñada (es una base incrustada? -- lo dudo porque OOo no te dejeraría trabajar si no tienes claves primarias y relaciones; seguaramente es M$Accesses, por eso el mal diseño -- otro ejemplo es la tabla Intervenciones: si tienes un campo con el número de técnico, que seguramente sirve para identificar a cada técnico individualmente, NO necesitas tener el NOMBRE del técnico en esa tabla, es más útil tenerlo en otra llamada p.e. TECNICOS, que tenga toda la info personal de cada técnico, cada uno con un número clave que lo identifica, el cual es referenciado en la tabla Intervenciones)
Debes tratar de encontrar los campos que la vinculan, para poder efectuar un comando SQL del tipo:
          SELECT <...p.e Intervenciones.NumeroIntervenciones> FROM tabla_1, tabla_2 WHERE tabla_1.campoX = tabla_2.campoY

No se si he sido claro con lo que se necesita para solucionar la cuestión, la base http://mitglied.lycos.de/arielconstenlahaile/MANIPULAR_BASE.odb
es un ejemplo de cómo diseñar una base RELACIONAL; y recuerda que para que al seleccionar un dato de una tabla, se muestren datos de OTRA tabla, debe haber algún tipo de relación entre ellas.

Como verás, necesito una descripción más precesida de la estructura de la base, porque así como me la has enviado no logro realmente comprender qué deseas.

Las tablas me resultan bastante confusas

Clientes: (Producto – NumeroSerie – Cliente)
Robot M6IB – 0001 - Tarradelles
Robot ABB – 0002 - Enri
Robot FANUC – 0003 – Baucells

¿Por cada cliente hay un producto? ¿Un cliente puede tener varios productos? La relación producto-numero de serie es ÚNICA (no hay dos registros que tengan el mismo nombre de producto y no. de serie?

Intervenciones: (NumeroSerie – NumeroIntervencion – Tecnico – NumeroTecnico – Tasca Incidencias)
0001 – 3 – Francesc – 169 – Cambiar pinza - Ninguna
0001 – 6 – Francesc – 169 – Modificar programa - Ninguna
0001 – 1 – Francesc – 169 – Ajustar pinza – Pinza rota
0002 – 2 – Francesc – 169 – Ajustar pinza – Pinza rota

¿En esta tabla, número de serie se refiere al no. de serie del producto detallado en la tabla clientes? ¿NumeroIntervencion es una clave que es única para cada intervención?

Intuitivamente creo que deseas algo así: Si en la tabla clientes, cada cliente tiene nuchos productos, cada uno con un número de serie,y el número de intervención es único, el comando podría ser

SELECT i.NumeroIntervencion , i.NumeroTecnico, i.Tasca, i.Incidencias
FROM Intervenciones i, Clientes c
WHERE i.NumeroSerie=c.NumeroSerie AND c.Cliente=<y acá entra alguna macro, o named parameter, porque buscamos SOLAMENTE los numeros de serie de la tabla Intervenciones que coinciden con los numeros de serie de la tabla clientes EN LOS CUALES el nombre del cliente coincide a su vezcon el seleccionado en la primera lista desplegable >

Digo "Intuitivamente", porque no logro comprender del todo la estructura de la tabla.
Espero que me hayas entendido, asi puedo ayudarte!
Espero tu respuesta. Saludos y suerte.
Supongo que se puede hacer, aunque sea con Macros.

Al ver que nadie me contestó el error ayer puse este nuevo mensaje:
http://es.openoffice.org/servlets/ReadMsg?list=users&msgNo=4917

Quizás es algo ya más laborioso y la gente no se dedica a probarlo.
Gracias de nuevo por tu dedicación.
Creo que si no lo sabes tu no lo podré sacar... :)

Ahora lo estoy probando con un archivo .mdb (Access) accediendo y manipulando con Java.
Aunque si lo pudiera hacer con OOo sería genial.

Saludos


En/na Ariel Constenla-Haile ha escrit:
Hola, Miquel
Por casualidad encontré unos mails en el spam de Gmail (por casualidad porque los bajo siempre con Thunderbird, casi nunca chequeo GMail on-line, y por lo visto Thunderbird no descarga el spam).
En el primero cuentas que todavía no has podido obtener el resulatado en el reporte con decimales, ¿ya lo has resuelto?
El segundo lo mando adjunto.

Lo que buscas puede ser resuelto en parte con listas desplegables y subformularios (y macros, desde luego).
De la siguiente dirección
http://mitglied.lycos.de/arielconstenlahaile/MANIPULAR_BASE.odb
puedes descargar una base con un formulario que obtiene los datos principalmente de UNA tabla,
como tiene tres campos que son CLAVES FORÁNEAS (hacen referencia a campos de otras tablas),
y esos campos son identificadores abstractos (del tipo id_vendedor 00112), para cada campo hay una lista
que muestra un campo de otra tabla pero más concreto (como nombre o apellido del vendedor).

Un subformulario sirve para mostrar información de una tabla RELACIONADA con la del formulario principal.

Por eso es preciso saber:
1. están relacionadas las tablas (menú Herramientas - Relaciones)?
2. tiene claves primarias y/o foráneas?
3. los campos que figuran en las dos tablas a la vez están relacionados?
4. principalmente: es una base de datos incrustada o vinculada?
5. el formulario es sólo para consultar datos, o también para ingresarlos y/o modificarlos.

Sin esos datos es imposible una respuesta completa. Los subformularios NO funcionan p.e.
si NO estableces relaciones entre los campos involucrados. Además OOoBase requiere
una clave primaria para realizar la mayoría de las cosas.

Por lo pronto fijate si te sirve de algo esa base.
P.D. Para las listas desplegables es recomendable emplear el Asistente (en la
barra de herram. de Campos de control de formulario), xq para hacerlas funcionar
"manualmente" se requiere saber SQL.


Hola Ariel,

muchas gracias por tus respuestas anteriores.

Ahora tengo otra duda y no sé si se puede hacer en OOo.
Tengo 2 Tablas:

Clientes: (Producto – NumeroSerie – Cliente)
Robot M6IB – 0001 - Tarradelles
Robot ABB – 0002 - Enri
Robot FANUC – 0003 – Baucells

Intervenciones: (NumeroSerie – NumeroIntervencion – Tecnico – NumeroTecnico – Tasca Incidencias)
0001 – 3 – Francesc – 169 – Cambiar pinza - Ninguna
0001 – 6 – Francesc – 169 – Modificar programa - Ninguna
0001 – 1 – Francesc – 169 – Ajustar pinza – Pinza rota
0002 – 2 – Francesc – 169 – Ajustar pinza – Pinza rota

Me gustaría poder hacer en un formulario:
· Que salga una lista de los Clientes:
Baucells
Enri
Tarradelles

· Al hacer clic en uno de ellos que se abra una ventana con los Productos y Números de Serie
(ejemplo con Tarradelles): Robot M6IB – 0001
...

· Al hacer clic en un Producto que salga la lista de Intervenciones de ese producto.
(ejemplo con Robot M6IB): 0001 – 3 – Francesc – 169 – Cambiar pinza - Ninguna
0001 – 6 – Francesc – 169 – Modificar programa - Ninguna
0001 – 1 – Francesc – 169 – Ajustar pinza – Pinza rota

Saludos y muchas gracias de antemano





Responder a