Ayuda con la realización de un sistema de inventario de ordenadores en Visual FoxPro

Hola:
Estoy realizando un sistema de inventario de computo, ya termine la parte de la captura ya que es fácil hacerlo, pero ahora que estoy viendo lo de las consultas me quede atorado y por más que le busco no le encuentro ya que quiero realizar consultas en base a varios campos.
Quiero consultar el tipo de equipo(Monitor, Cpu, Teclado, etc.), marca (Samsung, HP, BTC), modelo (17", 20", etc), usuario y área a la que pertenece; Si yo quiero realizar una consulta solo por un campo, si la se hacer, pero si la consulta es por varios campos no se me ocurre una manera sencilla de hacerlo ya que pensé en hacerlo mediante consultas independientes pero son tantas las combinaciones(más de 100) que es difícil lograrlo.
La otra duda que me queda y es sobre el mismo tema, es que al desplegar los combo box los cuales están ligados a una base de datos me muestro datos repetidos, como puedo filtrarlo y solo me aparezca un dato.
Mucho agradeceré la atención prestada y la ayuda que se me pueda dar.

1 respuesta

Respuesta
1
Perdoname la demora en contestar.
Necesito algunos datos más para poder contestarte.
¿Cómo es la estructura de datos? ¿Están todos en una misma tabla o tenés distintas tablas con datos que las relacionen?
Te adelanto algo.
Si tenés todo en una sola tabla, lo hacés con SELECT simple:
SELECT campo1, campo2, campo3 [, campoN...] FROM tabla WHERE condición ORDER BY orden INTO CURSOR cursor

Si tenés los datos en distintas tablas, tenés que hacer un SELECT combinado:
SELECT tabla1.campo1, tabla1.campo2, tabla2.campo1, tabla2.campo2, tabla3.campo1, tabla3.campo2 [, tablaN.campoN...] FROM  tabla1
LEFT JOIN tabla2 ON tabla1.camporelacion = tabla2.camporelacion
LEFT JOIN tabla3 ON tabla1.camporelacion = tabla3.camporelacion
WHERE condición ORDER BY orden INTO CURSOR cursor
Quizá esto te ayude un poco.
Con respecto al combo que te da datos repetidos hay que ver como está definido el acceso a datos del combo (controlsource, rowsource, rowsourcetype, etc)
Gracias por la atención brindada.
Te comento que es solo una tabla de donde obtengo los datos, mi pregunta con respecto a la sintaxis que me enviaste, es que pasa si de los datos que se pueden consultar solo necesito datos del campo 1 y2 o del campo 1 y 5 o del campo 2, 4 y 5;
El select ¿Ignora los campos que no se quieren? Por que mi problema en esta parte es hacer todas las combinaciones posibles para las consultas.
Y por ultimo con respecto al combo box, utilizo los datos desde el Controlsource, me comentan que se puede utilizar una instrucción SELECT, pero en donde hago la declaración ¿En el mismo Combobox? o en un archivo a parte o en el Load del Form.
Nuevamente agradezco tu atención.
Con el SELECT le pedís los campos que vos quieras. Por ejemplo:
SELECT campo2, campo1, campo5, campo9 FROM tabla ...
Esto lo que hace es hacer la consulta de la tabla y te devuelve una nueva tabla o cursor (según donde le hayas dicho en la instrucción) con los campos que vos le pediste.
Por ejemplo, tengo una tabla que se llama "articulos" y tiene los campos código, nombre, precio, rubro, tipo. Si quiero consultar nombre, código y precio haría:
SELECT nombre, codigo, precio FROM articulos WHERE precio > 10 ORDER BY precio INTO CURSOR Qarticulos
Me trae esos campos para los artículos que tengan el precio mayor a 10 en un cursor.
Fíjate en la ayuda de SELECT - SQL de VFP que tenés todo bastante bien explicado.
Si querés llenar el combo con una consulta lo podes hacer de 2 formas:
1. Con la propiedad RowSourceType = 2 (Alias)
creás la consulta en el Load del formulario o en el Init del combo
    Indícale en la propiedad RowSource el nombre de la tabla o cursor creado por la consulta
2. Con la propiedad RowSourceType = 3 (Consulta SQL)
    Indicale en el RowSource la sentencia SELECT completa
Fíjate si te sirve.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas