Tempvars和访问2003

时间:2010-08-06 18:36:28

标签: ms-access vba ms-access-2007 access-vba

我有一个在混合的2003,2007环境中使用的数据库。我有一些使用2007年新TempVars功能的小功能。如果它是2003用户,那么他们没有这些功能就没有问题。

如何编写代码以便在Access 2003上编译和运行。我尝试过on error resume next但这对编译时错误不起作用。

2 个答案:

答案 0 :(得分:1)

如果您的应用程序将与Access 2003一起使用,在我看来您应该排除2003不支持的功能。

但是,如果您必须拥有Tempvars,请查看条件编译器常量方法是否适合您。

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

检查访问'帮助,了解有关 #Const #If 的更多信息。

我没有对此进行测试,但我认为它可行。您可能需要两个数据库副本:YourDb2003.mdb;和YourDb2007.mdb。在YourDb2003.mdb中,使用“2003”作为编译器常量,使用YourDb2007.mdb中的“2007”。

答案 1 :(得分:0)

这是关于使用VBA内置编译器常量的nice summary #If VBA7 Then可以帮助您区分仅限Office 2010的代码。不幸的是,它不适用于Office 2007。