Me gustaría agregar aquí algunas otras preguntas y respuestas relacionadas de una u otra manera con el mismo problema. Los indicadores pueden dar lugar a mi propia respuesta a estas preguntas, ¡pero no dude en buscar las respuestas de otros!
MS Access as enterprise software
Best way to test an MS-Access application
Working with multiple programmers on MS-Access
Recommendations on using SQL server GUIDS from MS-Access
Debo admitir que una de las principales limitaciones de acceso es el modelo de objeto limitado. Me molestó específicamente la falta de posibilidades de agregar mis propias propiedades y métodos al objeto Form.Hace poco encontré una respuesta eficaz a este problema mediante la creación de 2 objetos adicionales:
el objeto "AllMyForms", que de hecho mantener 2 colecciones de objetos: una es la colección de formularios de acceso estándar, el otro es un colección de todas las instancias del objeto "customForm". Ambas colecciones están indexadas con la propiedad hwnd de una forma abierta (o, para ser más específico, la propiedad hwnd de la instancia de un formulario, lo que me permite abrir varias instancias de la misma forma).
el objeto "customForm", que enumera mis propiedades y métodos de instancia de una forma
De esta manera personalizados, que puede referirse a propiedades tales como:
accessForms: refiriéndose a las propiedades y métodos estándar
AllMyForms.accessForm(hwnd).name
se refiere a la .nam e propiedad del formulario de acceso a través de su valor .hwnd
Por cierto, la siguiente Debug.Print entonces dame el mismo resultado:
? screen.ActiveForm.name
? AllMyForms.accessForm().name 'default value for hwnd is screen.activeForm.hwnd'
formas personalizadas: propiedades
AllMyForms.customForm(hwnd).selectClause
se referirá a la cláusula SELECT utilizada para crear el conjunto de registros subyacente de la instancia del formulario
Formas personalizadas: métodos
El método .agregate, disponible para un objeto customForm, calculará la suma/min/max/avg de un formulario "columna" (es decir, la suma de valores para un control en forma continua) :
AllMyForms.customForm().agregate("lineAmount","sum")
me dará la suma de todos los valores "lineAmount" que aparecen en la instancia actual/activo de una forma.
Solo quiero decir que esta es una gran pregunta. Se requiere mucha disciplina para evitar el acceso DRY pero se puede hacer. Pero no hay absolutamente nada que impida mezclar la lógica de ui y biz. Pero creo que es importante recordar que THE point of access es un desarrollo extremadamente rápido. Access es la plataforma de desarrollo más rápida para el desarrollo de aplicaciones de Windows. Entonces tiene un lugar. Seth –