Access. Problema: Al ejecutar macro EstablecerValor para otorgar valor a un campo del formulario se vacía el subformulario!

Espero que algún alma caritativa pueda ayudarme! Llevo semanas atascada y no he conseguido encontrar ni en Internet ni en ninguna pregunta del foro nada que pueda servirme de orientación.

Os expongo mi problema, y disculpad por la extensión:

He creado una BD de facturación con cuatro tablas: Clientes, Servicios, facturas y Servicios facturados, cada una de ellas con su formulario correspondiente.

El problema lo encuentro en el formulario para la tabla FACTURAS. Esta tabla tiene los siguientes campos: Núm factura, fecha factura, cliente, DNI cliente, base imponible, suplidos, Importe, IVA y total factura.

En el formulario FACTURAS he incluido todos estos campos y dos subformularios: SERVICIOS FACTURADOS (Formulario continuo) y Consulta SERVICIOS FACTURADOS (Cálculo del sumatorio de los campos base imponible y suplidos de tabla SERVICIOS FACTURADOS por número de factura), todo ello en la misma pantalla/página. 

Los campos Núm y fecha factura se rellenan manualmente. Los campos cliente y DNI cliente mediante un cuadro combinado ligado a la tabla clientes. Los campos base imponible y suplidos mediante la macro establecer valor. Y los campos Importe, IVA y Total factura automáticamente, pues los he definido como campos calculados en la tabla en base a los dos anteriores.

La dinámica es la siguiente:

Paso 1. Accedo al formulario FACTURAS y relleno los datos de factura y cliente.

Paso 2. Paso al subformulario SERVICIOS FACTURADOS, el cual se encuentra en blanco, y voy agregando los servicios que quiero incluir en la factura. Al ser un subformulario continuo se muestran todos los servicios que voy agregando uno a continuación del otro. Este subformulario cuenta con los campos Num factura, el cual se rellena automáticamente al dar de alta un registro por su relación en base a este campo con el formulario principal, y los campos relativos a la descripción y precio del servicio (Ídem tabla SERVICIOS) los cuales se rellenan mediante un cuadro combinado ligado a la tabla SERVICIOS.

Paso 3. Una vez agregados todos los servicios pulso un botón creado para actualizar el segundo subformulario, consulta SERVICIOS FACTURADOS (Me. Consulta. Requery), y se actualiza el mismo, mostrando los sumatorios de los campos base imponible y suplidos de los servicios facturados para la factura que estoy dando de alta.

Y hasta aquí todo correcto, en el formulario FACTURAS se muestran los datos de la factura, del cliente y los servicios que he incluido, así como el sumatorio de los importes de los mismos. El problema viene en el siguiente paso, al ejecutar la macro establecervalor para definir el resto de campos por completar en el formulario.

Paso 4. Pulso un botón creado para ejecutar la macro EstablacerValor, mediante la cual otorgo a los campos base imponible y suplidos del formulario FACTURAS el valor de los sumatorios calculados mediante la consulta SERVICIOS FACTURADOS. Al pulsar este botón efectivamente se rellenan estos campos, y con ellos el resto de campos calculados, por lo que el registro se realiza de forma correcta en las tablas, PERO... EL SUBFORMULARIO SERVICIOS FACTURADOS SE VACÍA, se queda en blanco, como al principio del paso 2! Los servicios facturados agregados en el subformulario SERVICIOS PRESTADOS quedan correctamente registrados en la tabla SERVICIOS FACTURADOS, pero ya no se muestran en el subformulario. El resto de datos del formulario FACTURAS y el subformulario consulta SERVICIOS FACTURADOS no se alteran. Necesito que al ejecutar esta macro se actualicen únicamente los campos a los que se refiere y no el subformulario SERVICIOS FACTURADOS.

Un saludo y muchísimas gracias de antemano. PD: Estoy empezando en Access por lo que no tengo mucho manejo de los conceptos o términos propios.

2 Respuestas

Respuesta
1

En principio, por lo que he creído entender, no te hace falta la consulta. Voy a ver si me explico. Si en la tabla Servicios Facturados tienes los campos NumFactura (numérico o texto) relacionado con el NunFactura(clave) de la tabla Facturas, Servicio, cantidad, precio, subtotal, en el evento, por ejemplo, después de actualiza del cuadro de texto Precio puedes poner

subtotal=precio*cantidad

domd.runcommand accmdsaverecord

me.parent!importe=dsum("Subtotal","[servicios facturados]","numfactura=" & me.numfactura & "")

me.parent!iva=me.parent!importe*0.21

me.parent!totalfactura=me.parent!importe + me.parent!iva

No he puesto lo de base imponible y suplidos porqueno sé donde deben entrar.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(solo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Sara Flor, ya que si no sé quien me escribe ni los abro.

Respuesta

Sara: Esta pregunta me sale sugerida, pero en Macros, no tengo experiencia, porque no las uso. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas