VERIFICA DELLA VERSIONE ACCESS INSTALLATA

di Equazionedellanima il
12 risposte
Buon giorno, spero di riuscire a sintetizzare la mia richiesta in modo semplice:
Avrei bisogno di sapere se sia possibile, attraverso codice VBA, verificare e farsi restituire in apertura di dataBase la versione di MSaccess installata.
e
qualora risultasse che la versione fosse superiore al 2003, inibire, disattivare, o comunque ignorare 1 modulo a nome "XYZ"

ringrazio sentitamente per l'eventuale risposta.

12 Risposte

  • Esiste la proprietà Application.Version
  • Ottimo, grazie.
    Ora, avendo la possibilità di verificare la versione, come posso "disabilitare" un modulo di classe ( "clsCommonDialog") e un modulo ("modMouseHook")?

    in pratica: il criterio sarebbe questo:

    all'apertura verifica la versione
    SE è > alla 11.0
    non considerare il modulo di classe "clsCommonDialog"
    e
    non considerare il modulo "modMouseHook"

    grazie infinite.
  • Non comprendo la domanda...!
    Il modulo di classe e non rimarranno presenti, quello che devi fare è condizionare la loro chiamata alla Versione...!
    
    IF Val(Application.Version)<=13 then
       Set mClass=New NomeClasse
    End If
    e tutte le volte che il codice ne prevede la chiamata o istanza devi condizionarlo alla versione...

    Puoi usare la Compilazione Condizionale... ma sempre in quei punti devi agire.
  • Quindi:

    clsCommonDialog = è MODULO DI CLASSE
    modMouseHook= è MODULO
    modReportToPDF = è MODULO


    If Val(Application.Version) <= 13 Then..... (?)
  • Scusa ma continuo a non comprendere...!
    Hai competenza del Codice oppure hai semplicemente incollato i moduli nel tuo progetto...?
  • Ho competenza limitata, da autodidatta appassionato
  • Non posso argomentare estesamente il mio intento; quello che posso fare è esplicitare la necessità.

    vediamo se riesco a farmi intendere meglio:
    il gestionale include 1 modulo di classe e 2 moduli

    1 modulo di classe --> clsCommonDialog
    1 modulo ---> modMouseHook
    1 modulo ---> modReportToPDF

    All'apertura della maschera principale,
    SE la versione di MSaccess installata > a 11
    ALLORA i 3 moduli NON devono essere chiamati.

    SE (invece) la versione di MSaccess installata = a 11
    ALLORA i 3 moduli DEVONO essere chiamati.
  • La risposta che ti ho dato deve essere sufficiente per consentirti di gestire il codice... ma se non ti è chiaro, come sembrerebbe dalla domanda successiva che hai fatto e da questi tentativi di spiegare che non hanno senso, temo non sia sufficiente la tua competenza... perchè purtroppo devi agire in tutte quelle parti in cui CHIAMI le funzioni contenute nei Moduli, e in cui istanzi le Classi, non si agisce sul MODULO in astratto.
  • La più alta forma di intelligenza è la capacità di OSSERVARE senza GIUDICARE. Evidentemente NON ti appartiene
  • L'intelligenza è anche non pensare di essere nel giusto la dove non si hanno minimamente le competenze per capire... e credimi che la soluzione è talmente banale e già assolutamente e completamente contenuta nel mio suggerimento dato sopra, che è disarmante questa tua risposta.

    Fatico quindi a capire se pensi di avere ragione, nel tentativo di offendere, pur ignorando nel modo più assoluto ciò di cui stai parlando dal punto di vista tecnico...!

    Questa è senza dubbio una forma esplicita di "diversa intelligenza", va di moda scrivere così pare.
  • Equazionedellanima ha scritto:


    Ottimo, grazie.
    Ora, avendo la possibilità di verificare la versione, come posso "disabilitare" un modulo di classe ( "clsCommonDialog") e un modulo ("modMouseHook")?
    Come già detto, non si disabilita proprio nulla, non ha senso.

    Semplicemente non usi il codice contenuto in questi moduli.

    vediamo se riesco a farmi intendere meglio:
    Ti abbiamo inteso perfettamente, sei tu che insisti su un concetto che non ha senso, pur avendotelo affermato più volte.
    ALLORA i 3 moduli NON devono essere chiamati.

    ...

    ALLORA i 3 moduli DEVONO essere chiamati.
    Non sono i moduli ad essere chiamati o no ma, il loro contenuto, le funzioni al loro interno (nel caso del modulo di classe, proprietà e metodi).

    Alex ti ha già spiegato come fare.
  • Equazionedellanima,
    devi approfondire la "compilazione condizionale", in modo da eseguire o meno (come ti è stato suggerito) una porzione di codice in base alla versione di Access.
    Ti indico alcuni link da cui partire:
    https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/understanding-conditional-compilation
    https://sodocumentation.net/vba/topic/3364/conditional-compilation
    https://www.devhut.net/2017/02/16/vba-early-binding-and-late-binding-part-2/
    https://github.com/MicrosoftDocs/office-developer-client-docs/blob/master/docs/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office.md
    https://sourcedaddy.com/ms-access/supporting-older-versions-access.html
Devi accedere o registrarti per scrivere nel forum
12 risposte