Al escribir un programa en Access, una de las cosas más complicadas de implementar es la ventana emergente, ya que debe devolver el valor al control que abrió la ventana. Por ejemplo, si queremos un cuadro combinado que presente a todos los clientes y, si es necesario, se modifiquen los datos del cliente, debemos hacer doble click en el control para que aparezca un nuevo formulario ‘acDialog’ (nuestra ventana emergente) con el DoCmd OpenForm … luego dé como último parámetro el ID del cliente que se presentará, el cual tomaré en el formulario de cliente con Me.OpenArgs en el evento FormLoad. ¿Qué pasa si el usuario cambia de cliente en la ventana emergente? El cuadro combinado del formulario principal también debe actualizarse con el nuevo valor y, ¿cómo lo implementamos? Escribir el valor en el registro y reanudar el valor al actualizar el control en la ventana principal. Las funciones son:
SaveSetting «Clave», «Subclave», «Valor», Me!ClientID
GetSetting «Clave», «Subclave», «Valor», Default
DeleteSettings «Clave», «Subclave»
Puede consultar algunos ejemplos sobre este tema y mucho más sobre algunas aplicaciones escritas en Access con código abierto en esta dirección. A partir de estos ejemplos también se puede ver como nunca he hecho uso de macros o cosas similares, sino solo de formularios y código VBA, de esta manera Access se convierte en una herramienta excepcional para escribir aplicaciones de gestión en poco tiempo. Obviamente, también tiene limitaciones a partir de la velocidad de ejecución de búsquedas complejas, por eso ni .NET ni Java me satisfacen, prefiero escribirlos en C/C++ con MFC, STL y ATL, claro que se necesita un mucho tiempo, pero los programas son relámpagos, vea por ejemplo Calus que fue escrito con VC++ 9.0.