Si votre application sera utilisée avec Access 2003, il me semble que vous devriez exclure les fonctionnalités que ne supporte pas 2003. Cependant, si vous devez avoir Tempvars, vérifiez si une approche de constante du compilateur conditionnel le ferait fonctionner pour vous.
Option Compare Database
Option Explicit
#Const Aversion = "2007" 'conditional compiler constant '
Public Sub HelloWorld()
Dim strWho As String
strWho = "World"
#If Aversion = "2007" Then
'* your 2007 feature code here *'
strWho = UCase(strWho)
#End If
'Aversion 2003 -> Hello World '
'Aversion 2007 -> Hello WORLD '
Debug.Print "Hello " & strWho
End Sub
Vérifier l'accès Aide pour plus d'informations sur #Const et #Si.
Je n'ai pas testé cela, mais je pense que cela pourrait fonctionner. Vous pourriez avoir besoin de deux copies de votre base de données: YourDb2003.mdb; et YourDb2007.mdb. Dans YourDb2003.mdb, utilisez "2003" comme constante du compilateur et "2007" dans YourDb2007.mdb.
Cela fonctionnerait, mais j'espérais que quelque chose soit automatiquement fait lors de l'exécution. Il n'est pas possible de définir une Const à 'Application.Version' ou toute autre chose qui pourrait m'être utile. Aucune suggestion? – Icode4food
Désolé, non. La seule façon dont je sais d'inclure du code qui ne compilera pas est de dire au compilateur de l'ignorer avec '#If ...' – HansUp
Pourquoi ne pas faire votre constante égale à "11.0", puis tester "#If Application.Version > Aversion Then "ou" #If Aversion <= Application.Version Then "? –