Error con de Dlookup y múltiples sumas

Estoy "intentando" desarrollar una base de datos y tengo algunos problemas, que paso a describirte a continuación para ver si me puedes ayudar.
, Tengo un formulario "principal"con varios campos, uno de ellos calculado, llamado "tiempo de producción". Dentro de este formulario, tengo un subformulario, "tarea", con las tareas realizadas, en cada tarea se utiliza un "lote" que esta relacionado con un producto "pieza". Para ello en el subformulario, cada vez que introduzco un "numero de lote", en el evento después de actualizar pongo:
txtFiltro = "[NumLote] = " & Me![NumLote]
Me![PIEZA] = DLookup("[NumPieza]", "Lote de Piezas", txtFiltro)
(Vi el uso de la función Dlookup en alguna de tus respuestas e intento utilizarlo)
Para que me busque en la tabla "Lote de Piezas", la pieza con la que está relacionada este Lote y me lo rellene automáticamente el subformulario actual.
Aparte, el formulario "Pieza", tiene un subformulario llamado "proceso de fabricación" de la pieza. En el formulario va el nombre y la descripción de la misma, y en el subformulario va la operación que se realiza por la pieza y el tiempo de producción de cada operación.
Mis preguntas son:
1) El uso de Dlookup de arriba me da un error en tiempo de ejecución diciendo que los criterios no son del mismo tipo de datos (Pero en las tablas están definidos igual) ¿En qué falla?
2) Una pieza tendrá una suma de los tiempos de producción del subformulario "proceso de fabricación" (pero el valor suma no es almacenado en ningún lado); aparte en el formulario principal, el campo tiempo de producción del que te hablaba al principio es la suma de los tiempos de producción de las piezas utilizadas en las tareas (Cada tarea usa unos lotes, que tendrán unas piezas, con unos tiempos de producción que serán la suma de los tiempos de producción de cada operación del proceso de fabricación de la pieza).
¿Cómo puedo implementar esto? Porque he intentado hacer una consulta pero me da múltiples errores. En el formulario "principal" este es el único campo calculado de esta forma, los demás campos son introducidos.
¿Cómo puedo hacer una consulta desde un campo independiente? (No se si puede, que se pueda poner desde origen de control o algo así).
A raíz de lo que descrito podrás observar que llevo poco tiempo implementando bases de datos, así que cualquier sugerencia que me hagas para optimizar la base de datos será muy bien recibida.

1 respuesta

Respuesta
1
Sobre el Dlookup, si el campo sobre el que deseas buscar se llama Numlote y la Tabla [Lote de Piezas], el dlookup seria:
[PIEZA]=Dlookup("NumPieza";"Lote de Piezas","NumLote=" & [NumLote])
Observa que pieza es un campo dentro del subformulario y numlote también, por lo tanto no te hace falta usar el nombre del formulario para hacer la mención a ellos.
Esto tiene que funcionar si los nombres de los campos y de la tabla son correctos y si los nombres de los campos del formulario (Pieza y Numlote) también.
Sobre la segunda pregunta puedes utilizar el método dsum que es parecido a dlookup, pero lo que hace es sumar un campo de una tabla a partir de unos criterios:
[Tiempo Pieza]=DSum("Tiempo de Producción","NombreTabla","NumLote=" & [NumLote] & " AND Pieza=" & [Pieza])
Tanto Dlookup como DSum y otros métodos más, pueden tener encadenamientos, es decir se puede hacer dlookup de un dlookup y un dsum de otro dsum.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas