No soy experto en acceso, y tengo una (¡espero!) Pregunta simple ...¿Cómo hago referencia al formulario actual en una expresión en Microsoft Access?
Tengo un formulario con un número de registros. En algunos cuadros de texto, solo presento los valores de la tabla subyacente, por lo que están vinculados a los campos correspondientes.
Pero algunos cuadros de texto deben contener valores calculados. Algunos cálculos son complicados e involucran muchos campos de la tabla. Escribo el cálculo como una función de VBA. Podría entrar en algo así como "Fuente de control":
=MyFunction([Field1], [Field2], [Field3] ...)
Pero no quiero enumerar decenas de campos en la llamada a la función. En cambio, quiero enviar el formulario completo (o el registro actual) como un parámetro, y dejar que la función haga referencia a los campos que necesita. Puedo hacerlo así:
=MyFunction([Forms]![MyForm])
Pero no me gusta tener que nombrar el formulario en la llamada. ¿No hay una forma de enviar la "forma actual" como un argumento de función? En VBA, solo usa la palabra clave "Me", para el examen "Me! [Field1]". Pero parece que "Yo" no es aceptado en una expresión.
¿Hay alguna otra manera de hacer referencia al formulario actual en una expresión?
(Es una pregunta estética, lo sé. Pero no es una buena programación usar "[Form]! [MyForm]". Más tarde copia los controles a otra forma y olvida cambiar el nombre en la expresión. .)
Agradecido por su ayuda! :-)
/Anders
'Screen.ActiveForm.Name' se puede utilizar en una función global! ¡Gracias por eso! – bgmCoder
Creo que esto debería marcarse como la respuesta, ya que funcionará para lograr el objetivo en muchas más situaciones que pasar el nombre del formulario como parámetro y eliminará la necesidad de pasar un parámetro, incluso un código más limpio y menos confuso. Felicitaciones a Philippe Grondier! Esto resolvió un problema al que me refería muy claramente. – DRC