antocuomo ha scritto:
...
Io posseggo un PC che funziona a 64 bit ed ha una sua creazione del file MDE.
Per farlo funzionare sugli altri PC dei "cassieri" della banca, che hanno una struttura a 32 bit, ho bisogno di ricompilare il mio codice in sede locale altrimenti non gira.
...
Immagino che Access sia a 32bit, giusto? Perché altrimenti non c'è compilazione condizionale che tenga se tu hai Access a 64 bit e gli altri un sistema operativo a 32bit che non può supportare nemmeno il runtime a 64bit.
Ipotizzando quindi che si tratti di Access a 32 bit e che tu voglia usare la compilazione condizionale in sede di creazione dell'eseguibile mde destinato a piattaforme a 32 bit, credo che si possa procedere così:
1) dichiarare una costante di compilazione condizionale che rappresenta lo stato in cui si trova il progetto (sviluppo su 64bit o pronto per la distribuzione a 32bit)
2) modificare le istruzioni di compilazione condizionale che già stai usando con un'ulteriore espressione dell'If da verificare
#CONST cDebug As Boolean = True 'False per la distribuzione
#If cDebug Or VBA7 Or Win64 Then
' Win 64 specific code
...
#Else
' Win 32 specific code 'o per la distribuzione su 32bit
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
...
#End If
Il problema di partenza, cioè la necessità di ricompilare tutto su 32 bit per farlo funzionare, però, credo fosse dovuto a questo
#If VBA7 Or Win64 Then
Scritto così venivano usate le chiamate API per s.o. a 64bit anche se si era in presenza di A2010 a 32bit perché in quest'ultimo caso VBA7 è comunque True. Forse, senza usare la costante di cui sopra, era sufficiente cambiare Or in And. Con riserva di approfondimento.
Con quale versione di Access hai creato il tutto?
In ogni caso, per un quadro più completo guarda qui:
http://www.utteraccess.com/wiki/index.php/Conditional_Compilation anche per utilizzi più avanzati in futuro, in particolare la sezione "User Defined Compiler Constants".