Newsgroup: it.comp.appl.access
Titolo: Come scrivere procedure Access con accorgimenti 'version independent' ?

Prendo spunto da recente risposta al 3d 'Conversione DB 2003-2010' per 
porre una questione che, se ben definita, consentirebbe a molti di noi 
di risparmiarci un sacco di grane
 
".. non hai adottato in modo completo gli accorgimenti che normalmente 
si usano per rendersi VERSION INDIPENDENT la dove possibile..."
 
Quindi la domanda e':  come sviluppare una procedura Access con 
accorgimenti per renderla 'version independent' ?
E ciao

Argomento molto vasto e dubito ci sia UNA ricetta... ci sono linee di approccio dettate dall'esperienza, conoscenza e buon senso...!
 
Prima di tutto, per ragionare su questi argomenti serve assolutamente il KNOW-HOW del pregresso... altrimenti c'è poco di cui ragionare.
 
Quali sono le cose che possono impattare su un progetto...? Serve fare l'elenco:
1° Metodi (esempio il Metodo AddItem dei Controlli DataBound... per chi arriva da A97 si usava RowSource e basta, e questo funziona ancora...)
2° Eventi (gli eventi delle nuove versioni sono aumentati rispetto ad A97, es: Evento UNDO di controlli DataBound..., gli Eventi di Form basati sui dati...ecc..)
3° Proprietà (Stessa cosa, es. per le TextBox LeftMargin, LeftPadding)
4° Riferimenti alle LIB, il famoso LateBinding(questo è un MUST, sconosciuto a molti)
5° API, chi ha fatto in tempo ad usare le 16Bit, poi 32Bit, ora 64... Compilazione condizionale(VBA7 e Win64)
6° ACTIVEX, personalmente li evito, il TreeView è forse un indispensabile... ma con Access l'incmpatibilità è sempre dietro l'angolo.
7° Grafica basata sui TEMI, bella... ma...
8° Grafici/Tabelle Pivot, grazie alla MS questo è un mezzo massacro... non ci sono più
 
A questi si aggiungono vari BUGS introdotti da MS nel tempo...
 
Sicuramente ci sono molte altre considerazioni, ma già queste sopra escludono una grossa percentuale di possibili incompatibilità.
In sostanza penso che chi è partito da A97, probabilmente è più agevolato... ;-)
 
Aggiungete pure tutto quello che vi viene in mente per allungare la lista... Karl in questo settore è un vero punto di riferimento.
 
@Alex


Beh il fatto che eventi e proprieta' aumentino non dovrebbe creare un 
problema, passando da vecchie versioni a nuove di Access ovviamente
Riferimenti, Api, ActiveX sono sicuramente i fattori da tenere 
maggiormente in considerazione
Per quanto riguarda il late binding, sicuramente e' argomento noto e 
diverse volte apparso nei newsgroup e discussioni varie
Con la compilazione condizionale e' anche molto piu' semplice usare 
l'early binding in sviluppo ed il late binding prima della compilazione 
finale
Temi, grafici, pivot, almeno personalmente li ho usati pochissimo, 
comunque e' bene sapere che potrebbero dare problemi di compatibilita'
Speriamo pure nello zampino di Karl per aumentare le informazioni su 
questo 3d
 
 

 ---
 
Altri punti che mi vengono in mente:
 
9° Evitare dipendenze dai "elementi mezzi esterni" come 
ribbon/toolbar/menu e il riquadro di spostamento/la finestra database 
(tutti cambiati con >=A07)
 
10° Evitare tutti tipi di dati (e il rispetivo codice) per tipi di dati 
nuovi con >=A07 come allegato, calcolato, memo RTF, campi multivalore. 
Con A16 attuale di Office 365 anche: campi BigInt dei sistemi server con 
ODBC che cambia il formato del accdb persino per varianti di A16.
 
11° Sempre sviluppare (e compilare i file mde/accde se sono 
assolutamente necessario) con la versione più bassa che viene 
possibilmente usata dai utenti.
 
12° Evitare tutte le altre tecniche sospese come:
replicazione, SCC, collezione data ecc. vedi anche
 
https://support.office.com/en-us/article/Discontinued-features-and-modified-functionality-in-Access-2013-BC006FC3-5B48-499E-8C7D-9A2DFEF68E2F
 
 
Nel frattempo dbase è tornato, i database web di A13 morti. Il mondo si 
muove...
 
Personalmente al momento tento di avere compatibilità fino a A03, cioè 
posso includere p.e. l'oggetto Printer (presente da Access 2002/XP), ma 
p.e. solo 3 criteri della FC ecc.
Molti database di clienti (non sempre fatto da me) sono ancora mdb, 
soprattutto i backend.
 
Certo non è possibile per progetti che hanno bisogno di 
novità/miglioramenti speciali e di solito c'è una versione più bassa 
accordata col cliente.
 
-- 
Ciao
Karl
*********
http://www.AccessDevCon.com
 
Access FAQ: 
http://www.donkarl.com/it
 


Molto bene
Una decina di punti sono gia' un bell'inizio
E vista l'indiscussa esperienza dei primi due contributori credo sia 
dificile aggiungere ancora qualcosa
Questo, ovviamente, non esime gli altri esperti del gruppo dal spremersi 
le meningi per inserire qualche altro punto