Return Sans GoSub

Resuelto
Bapti -  
 Bapti -
Hola a todos,
Soy principiante en Access y acabo de crear una base de datos para la gestión de clientes, que también me permite hacer presupuestos. Todo se ha hecho sin líneas de código, solo uso los asistentes, etc.
En mi formulario de presupuesto, me devuelve, solo después de reabrir la base de datos, un mensaje de error "Return sin GoSub".

En mi formulario de presupuesto hay simplemente los elementos del presupuesto en sí, un subformulario de solo lectura que me muestra 2-3 datos sobre la empresa del cliente, y un subformulario que contiene los diferentes elementos de mi presupuesto (al seleccionar mi referencia de producto, los campos de precio, descripción, etc. toman el valor del catálogo por defecto)
Funciona perfectamente la primera vez, y todas las veces siguientes también, siempre que no haya cerrado mi base.
Tan pronto como la reabra e intente añadir un elemento en un presupuesto, recibo el siguiente mensaje "El parámetro de la propiedad del campo padre es la causa del siguiente error: 'Return sin GoSub'"
(El campo padre de mi subformulario es mi N° de presupuesto)

Además de eso, cuando quiero una vista previa del estado que se deriva de mi formulario de presupuesto (hecho a partir de una consulta sobre el N° de presupuesto del formulario de presupuesto), en lugar de abrirlo, me abre un cuadro de diálogo pidiéndome el N° de presupuesto...

Después de lo cual debo ingresar manualmente el N° de presupuesto en mi línea de subformulario, para finalmente escribir la línea. (Si elimino e inserto de nuevo mi campo N° de presupuesto en el formulario principal, el formulario vuelve a funcionar, hasta el próximo cierre)

Dado el mensaje de error, supongo que hay un parámetro mal configurado en mi campo N°_presupuesto. Pero no tengo certezas. ¿Tendrían alguna idea?

¡Gracias de antemano!

Baptiste

Configuración: Windows / Firefox 76.0

5 respuestas

yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   Ambassadeur 1 588
 
Hola, empecemos por el segundo problema:
si entiendo bien, tu formulario de presupuesto se basa en una consulta cuyo nombre no proporcionas. ¿Qué sucede cuando abres esta consulta?
0
Bapti
 
Mi Formulario Presupuesto se basa en mi tabla Presupuestos, y llama a un SF en solo lectura basado en mi tabla Clientes, y otro SF basado en la tabla Elementos_presupuesto (que contiene los diferentes artículos del presupuesto).
Sin embargo, mi Estado que me permite hacer un bonito presupuesto imprimible se basa en una consulta (R_presupuesto_para_estado) en la que llamo todos los campos de las 3 tablas mencionadas anteriormente, y en la que simplemente pongo como criterio para el N°_presupuesto: " [Formularios]![Presupuesto]![N°_presupuesto] "

Este error también aparece solo al reiniciar la BDD, antes de eso el formulario completo funciona perfectamente. Eso es lo que me hace creer que tengo este problema de "parámetro" en mi campo N°_Presupuesto, que lo hace desaparecer de las miradas al reiniciarlo, como si mi formulario no tuviera conocimiento de su presencia.

¡Gracias!
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
 
¿Qué pasa si abres la consulta R_devis_pour_etat?
Es preferible no usar los mismos nombres en todas partes, ya que complica la comprensión en caso de problemas.
0
Bapti
 
Si abro mi base, sin que mi formulario Presupuesto esté abierto, entonces aparece una ventana emergente que me pide el valor de [Formulaires]![Devis]![N°_devis]. Si lo hago cuando el formulario Presupuesto está abierto en un registro, entonces la consulta me devuelve los diferentes elementos del presupuesto abierto en el formulario.

Si cierro y vuelvo a abrir Access, entonces, incluso cuando mi formulario presupuesto está abierto, si hago clic en mi consulta, me pide el valor de [Formulaires]![Devis]![N°_devis]. Si voy a mi formulario Presupuesto, luego elimino mi control N°_Devis y lo reinserto después, entonces mi consulta vuelve a funcionar.

PD: Para los nombres, ¿quieres decir que mi clave N°_Devis no debería llamarse así en las otras tablas donde es una referencia múltiple?
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
 
Sugeriría esto:
- no utilizar nombres idénticos en diferentes lugares, de forma que se reconozca fácilmente el contexto
- no utilizar caracteres especiales en los nombres, lo que también evita poner [] alrededor de los nombres
- intenta ser preciso. al principio, escribías "me abre un cuadro de diálogo pidiéndome el N° de presupuesto", ahora se ha convertido en "me pide el valor de [Formularios]![Presupuesto]![N°_presupuesto]"

- mencionas "el formulario Presupuesto está abierto en un registro", y luego "mi formulario presupuesto está abierto": ¿son idénticos?
- ¿cómo llegas a la primera situación que describes (Si lo hago cuando el formulario Presupuesto está abierto), sin caer en la segunda situación (entonces incluso cuando mi formulario presupuesto está abierto)? me parece que solo describes una parte de los escenarios.
0
Bapti
 
Gracias por los consejos, ok entiendo que mis explicaciones pueden ser confusas:
Intento aclarar:
Después de haber diseñado mi Formulario Presupuesto, lo pruebo, me permite sin problema:
- Ingresar datos en mi Sub_Formulario_Elementos_presupuesto y guardarlos
- Hacer clic en un botón que me abre un estado basado en una consulta llamada R_presupuesto_para_estado
- Abrir la consulta R_presupuesto_para_estado, filtrada automáticamente por mi N°_Presupuesto presente en mi formulario Presupuesto activo. Naturalmente, si cierro mi formulario Presupuesto y luego hago clic en mi consulta, se abre una ventana emergente que me pide el valor de [Formularios]![Presupuesto]![N°_presupuesto] antes de mostrar un resultado.

Este es el comportamiento normal y esperado de mi aplicación. Este comportamiento persiste mientras Access esté abierto. Puedo navegar en mi aplicación sin problemas, el funcionamiento es impecable.

Si cierro Access y luego lo vuelvo a abrir (en mi BDD, por supuesto), este es el comportamiento que obtengo:
- Cuando deseo ingresar datos en mi Sub_Formulario_Elementos_presupuesto. Tan pronto como ingreso el primer carácter en un control de este subformulario, aparece una ventana emergente con el siguiente error "El parámetro de la propiedad del campo padre es la causa del siguiente error: 'Return sin GoSub'". Puedo hacer clic en ok para cerrar el error, si intento hacer lo mismo, el error reaparece. Además, observo que el campo hijo (que toma el N°_Presupuesto de mi formulario Presupuesto) no se ha llenado automáticamente (donde se llenaba automáticamente en la primera situación, tan pronto como llenaba otro campo). La única forma de llenar el subformulario es llenar manualmente el campo hijo de este subformulario.
- Cuando deseo hacer clic en el botón que me abre un estado basado en una consulta llamada R_presupuesto_para_estado, se abre una ventana emergente que me pide el valor de [Formularios]![Presupuesto]![N°_presupuesto], si lleno el campo con un valor de N°_Presupuesto (cualquier valor existente en mi tabla) me abre mi estado correspondiente al N°_Presupuesto llamado.
- Si busco abrir la consulta R_presupuesto_para_estado, se abre una ventana emergente que me pide el valor de [Formularios]![Presupuesto]![N°_presupuesto] antes de mostrar un resultado, ya sea que mi formulario presupuesto esté abierto o no.

Ahora, si voy a mi formulario Presupuesto en modo diseño, elimino el control N°_Presupuesto de mi formulario, luego lo vuelvo a agregar, todo el sistema vuelve a funcionar según su comportamiento normal y esperado.

En la próxima reapertura, volverá a fallar.
0
yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588
 
¿Puedes, después de hacer una copia de tu base (por seguridad), hacer "compactar/reparar" tu archivo y luego probar de nuevo?
Si eso no funciona, ¿puedes compartir tu archivo?
0
Bapti
 
Hola Yg_be
He compactado/reparado mi archivo, sin éxito.
Pero también he guardado mi base como base ejecutable, y en ese caso el formulario se ejecuta perfectamente. Lo cual, en fin de cuentas, es lo que necesitaba. ¡Gracias por la ayuda de todos modos!
0