Traer datos de una consulta a un campo calculado

Traer datos de un campo calculado de una consulta a un cuadro de texto independiente de un formulario

Tengo un subformulario con vista "Hoja de datos" en el cual diligecio productos para darles salidas de almacén, también tengo dos tablas, una llamada "Entradas" y la otra llamada "Salidas" las cuales traigo en una consulta para sacar el saldo de almacén con un campo calculado en la misma.

Mi problema consiste en que quiero que en el subformulario halla un cuadro de texto independiente que me traiga desde la consulta el saldo del producto de manera informativa.

Lo que he hecho hasta el momento es que en las propiedades del subformulario abrí "Origen del registro" lo cual me llevó a una consulta, en esta le agregué la tabla de la consulta de saldos.

Imagen1

Luego en el subformulario en el cuadro de texto independiente llamado "Stock" en sus propiedades "origen del registro" escogí "Saldo".

Este procedimiento efectivamente me trae el valor del saldo, pero me bloquea el subformulario, de tal forma que no me deja seguir agregando registros tal como se muestra en las siguientes imágenes.

Imagen2

Esta imagen (Imagen2) es antes de hacer el procedimiento anterior, se ve en la parte inferior de la misma imagen que se pueden seguir añadiendo registros.

En la imagen3 ya se hizo todo el procedimiento y se ve en la parte inferior de la misma que no se pueden añadir registros. Cabe resaltar que el error se genera a partir de agregar a la consulta la tabla de la consulta "Saldos" (Imagen1).

Imagen3

Estaría muy agradecido si alguien me hace saber alguna solución del problema. O alguna otra forma de hacer lo que estoy intentando.

Respuesta
2

Si en el origen de registro de un control le pones un campo de una tabla o consulta, ese control deja de ser "independiente".

En tu caso, además, por las características de la consulta CSaldos, o la nueva consulta subyacente al formulario (la de imagen1), esa consulta no es actualizable, por lo que tu formulario tampoco lo será.

La solución la tienes en usar la función DBúsq() en el origen de control del cuadro de texto, algo así:

=DBúsq("SALDO","CSALDOS","cdlProducto=" & [cldProducto])

Un saludo.


Gracias por su respuesta, como es de costumbre su solución fue efectiva.

Ahora tengo otra inquietud sobre el mismo tema y es saber como hacer para que no se muestre el "#Error" en la vista del nuevo registro, ya que este depende del nombre del producto.

Cabe aclarar que este campo llamado "Stock", es el cuadro de texto que se creó para llamar el saldo de la consulta anterior.

Muchas gracias por su amable colaboración.

Tienes muchas formas de hacerlo, usando la función SiInm(), por ejemplo:

=SiInm(EsNulo([cldProducto]);Nulo;DBúsq("SALDO","CSALDOS","cdlProducto=" & [cldProducto]))

=SiInm(EsNulo([cldProducto]);"";DBúsq("SALDO","CSALDOS","cdlProducto=" & [cldProducto]))

=SiInm(Nz([cldProducto];"")="";Nulo;DBúsq("SALDO","CSALDOS","cdlProducto=" & [cldProducto]))

=SiInm(Nz([cldProducto];"")="";"";DBúsq("SALDO","CSALDOS","cdlProducto=" & [cldProducto]))

Saludos!

¡Gracias! Cada respuesta acertada me hace admirar más sus conocimientos y por ende me llena de motivaciones para aprender y algún día llegar a ser como usted.

Saludos desde Colombia!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas