Ten go un formulario en la cual al introducir información me da como resultado un reporte que me da el costo del producto a crear uno delos valores es el largo de la lamina con que hacen ese producto, primero me habían dicho que era una medida estándar 32 y yo puse ese valor en un texto =32 y no había ningún problema pero ahora son más medidas y depende de la medida que pidan el productoi e es el tama;o de la lamina que utilizaran, por ejemplo si el product es de medida 32 k busque en la tabla de inventario osea lamina en existencia un valor k sea mayor a 32 pero solo de los valores k se encuientranen esa tabla de inventario y que con ese valor se realize la operación, si no me explique dme por favor, como puedo crear eso yo había pensado con un siinm pero este no me buscaría el valor en la tabla solo me daría un valor si mayor pero cabe la posibilidad k ya no este en existencia como hacer para busque el valor en la tabla y realize la operación con ese valor muchas gracias por tu ayuda...
1 Respuesta
Respuesta de teroles
1
1
teroles, Me dedico a la programación desde hace más de 15 años
Creo que lo mejor es que hagas una consulta en la que el campo de filtro sea usando el valor que dices, con > o con < Con esa consulta alimentas el informe. Si a la consulta, para ese campo, pones que la condición de filtro sea: < [Indique la medida máxima] Cuando lo ejecutes (tanto la consulta como el informe) te aparecerá una caja en la que te preguntará por el valor. Cuando le des un número los resultados irán de acuerdo con ese criterio. No estoy seguro de entender lo que planteas, pero puede ir por ahí, creo. Saludos y suerte, y si no está claro, pregunta otra vez!
No, yo había pensado en con una consulta porque no quiero que me pida el valor necesito que busque en la tabla de laminas en existencia y utilice el valor que sea mayor que la medida del producto y que ese valor lo utilice para hacer la operación pero que el valor este en la table de laminas en existencia y que al tomar esa numero lo elimine de la tabla de leminas en existencias
Vale Haz un formulario en el que tengas en un control, por ejemplo un ListBox, los valores posibles de láminas en existencia, y otro ListBox con el resultado de una consulta. El segundo List ejecutaría un procedimiento de evento Después de Actualizar, en el que diría: ListBox2.RowSource="SELECT campo1, campo2, ... campon FROM tabla WHERE campo = " & listbox1.Column(0) & ";" Suponiendo que la primera columna de ListBox1 sea la medida que quieres como parámetro saludos
Trate de hacer lo que me dices pero no me funciona podrías explicarme más por favor y gracias por la paciencia y el tiempo ...
Veamos si se explicarlo mejor. Perdona si fui demasiado rápido. Lo explico a partir de Access 2003 que es el que uso yo. - Crea un formulario en blanco. - Pincha en la barra izquierda un botón que se llama Cuadro combinado - Pincha en cualquier parte de la sección detalle del formulario (Este elemento va a ser el que vas a usar para decir a partir de que tamaño quieres ver las láminas) - Aparecerá una ventana con un asistente para completar el Cuadro combinado. Cancela - Si no está abierta, abre la ventana de propiedades (F4 o Ver/Propiedades) - Verás que tiene varias pestañas. Vamos a rellenar los campos imprescindibles para que funcione. Te aconsejo que si después quieres saber un poco más juegues con las propiedades para ir conociéndolas mejor - Ve a la pestaña Otras, y pincha en el campo en blanco junto a Nombre. Escribe Lista1 (ese va a ser el nombre que vamos a usar como variable) - Ve a la pestaña Datos. Supongamos que la tabla en la que están los valores posibles a partir del cual quieres obtener las láminas están en una tabla que se llama Datos, y que entre tantos otros campos, tienes uno que se llama MedidaEstandar - En el espacio a la derecha de Origen de la fila (de dónde se cogerán los datos para presentar las opciones a elegir), haz clic en el botón de la derecha que tiene dibujada una flecha, y de la lista elige Datos. - Haz clic en el botón de los tres puntos que está al lado. Entrarás en una ventana para definir una consulta. (Mírate las notas 1 y 2 que hay más abajo) - En la parte superior debes tener la tabla Datos. Arrastra el campo MedidaEstandar al primer nombre de columna de la parte inferior. Debería aparecer el nombre MedidaEstandar en la primera fila. - Cierra la consulta. Te preguntará si quieres volver a Access y actualizar la propiedad y le dirás que Sí. - Busca en la barra de la izquierda un tipo de control que se llama Cuadro de lista, justo debajo de donde estaba el Cuadro combinado. Pincha en él y colócalo en algún lugar de la pantalla. Aquí es donde deben aparecer los resultados a partir del parámetro anterior - Haz Cancelar en la ventana del asistente. En la ventana de propiedades localiza Nombre en la pestaña Otras y ponle Resultado, por ejemplo - Haz clic en el Cuadro combinado de antes, y en la pestaña Eventos de la ventana Propiedades busca uno que se llama Después de actualizar. Haz clic en el botón que tiene a la derecha y elige la opción Procedimiento de evento. Haz clic en el botón con los tres puntos que hay a la derecha y se abrirá una ventana para escribir código en Visual Basic (VB). (Mírate la Nota3) - En la pantalla de VB, dentro entre las dos líneas Private Sub Lista1_AfterUpdate()...End Sub, escribe: Dim res as String res = "SELECT * FROM tablaInventario WHERE medidaEstandar > " & me.Lista1.Column(0) Resultado.RowSource = res - Mira la nota 4. Cierra la ventana de VB y después el formulario guardando los cambios. - Abre el formulario y experimenta con los diferentes valores de Lista1 Espero que esto sea más comprensible. Saludos Nota1: si sabes lenguaje SQL ese paso no es necesario. Si no sabes o simplemente no tienes ganas de calentarte los cascos, vas a acabar diseñando la misma consulta pero gráficamente Nota2: la ventana está dividida en 2 partes: la de arriba contiene la(s) tabla(s) y/o consulta(s) que enlazadas van a servir para obtener datos, la de abajo contendrá los campos y/o fórmulas necesarios para obtener lo que quieres. La rejilla de abajo tiene varias filas, cada una tiene su nombre a la izquierda y son: --> Campo: nombre del campo o expresión de cálculo. Puede ser de cualquier tabla de las de arriba, o una fórmula combinando campos, o una constante, o un texto... --> Tabla: nombre de la tabla/consulta de donde viene el campo (en blanco si es una fórmula) --> Orden: indica si se va a ordenar, y en tal caso, de que manera. Access ordenará de izquierda a derecha --> Mostrar: indica si se va a mostrar el campo en pantalla o no (cuando no se muestra es porque hay algo en la fila Criterios) --> Criterios: es una expresión que hace que Access descarte una parte de los registros que cumplan alguna condición: ser mayores, menores o iguales a un número, empezar con una letra... --> O: Si con una línea para el criterio no es suficiente, y se puede cumplir otra condición, se coloca aquí Nota3: La idea general es: necesitamos que Resultado nos muestre una serie de datos que no van a ser siempre los mismos, y que van a variar en función del valor de Lista1. Los valores de Lista1 no pueden ser cualquiera, sino que sólo van a ser los que estén el en campo MedidaEstandar. Cada vez que cambiaremos el valor de Lista1, es decir, cada vez que actualizemos, el programa tiene que recalcular los registros que tiene que haber en Resultado Nota4: Lo que le estamos diciendo es: cada vez que cambie el valor de Lista1 el programa tiene que releer la tabla tablaInventario y refrescar el contenido de lo que va a mostrar. Ten en cuenta que SELECT * significa selecciona todos los campos de la tabla, pero que Resultado solo mostrará un campo como por defecto. Para que muestre más tienes que editar el diseño del formulario, y en la propiedad Número de Columnas de la pestaña Formato indicar cuantas quieres