Vorrei aggiungere qui altre domande e risposte correlate in un modo o nell'altro allo stesso problema. I puntatori potrebbero portare alla mia risposta a queste domande, ma non esitare a sfogliare le risposte di altri!
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
devo ammettere che uno dei principali vincoli di accesso è il modello a oggetti limitato. Sono stato particolarmente infastidito dalla mancanza di possibilità di aggiungere le mie proprietà e metodi all'oggetto Form.Recentemente ho trovato una svolta efficace a questo problema creando 2 oggetti aggiuntivi:
l'oggetto "AllMyForms", che di fatto a mantenere 2 raccolte di oggetti: uno è la collezione standard forme di accesso, l'altro è un raccolta di tutte le istanze dell'oggetto "customForm". Entrambe le raccolte sono indicizzate con la proprietà hwnd di una forma aperta (o, per essere più specifici, la proprietà hwnd dell'istanza di un modulo, permettendomi di aprire più istanze dello stesso modulo).
l'oggetto "customForm", che elenca le mie proprietà e metodi di istanza di una forma
In questo modo personalizzato, posso fare riferimento a proprietà quali:
accessForms: riferimento alle proprietà e metodi standard
AllMyForms.accessForm(hwnd).name
riferisce al .nam e proprietà del modulo accesso attraverso il suo valore .hwnd
Tra l'altro, la seguente Debug.Print poi mi danno lo stesso risultato:
? screen.ActiveForm.name
? AllMyForms.accessForm().name 'default value for hwnd is screen.activeForm.hwnd'
moduli personalizzati: proprietà
AllMyForms.customForm(hwnd).selectClause
farà riferimento alla clausola SELECT utilizzata per creare il recordset sottostante dell'istanza del modulo
Moduli personalizzati: metodi
Il metodo .regregate, disponibile per un oggetto CustomForm, calcola la somma/min/max/avg di un modulo "colonna" (ovvero la somma di valori per un controllo in un modulo continuo) :
AllMyForms.customForm().agregate("lineAmount","sum")
mi darà la somma di tutti i valori "lineAmount" visualizzato sullo istanza corrente/attiva di un modulo.
Voglio solo dire che questa è una grande domanda. Ci vuole molta disciplina per evitare l'accesso a DRY, ma può essere fatto. Ma non c'è assolutamente alcun impedimento nel mescolare la logica ui e biz. Ma penso che sia importante ricordare che THE point of Access è uno sviluppo estremamente rapido. Access è la piattaforma di sviluppo più veloce là fuori per lo sviluppo di app per Windows. Quindi ha un posto. Seth –