【发布时间】:2010-01-07 12:23:11
【问题描述】:
我有下面的代码来确定 Access 的版本。 它可以在大多数 PC 上快速运行。我们还有四台终端服务器。在两台终端服务器上,它运行良好。在另外两个上,此代码需要超过 15 秒才能运行。
所有四个终端服务器都有 Access 2003 运行时。我不明白为什么在两台服务器上运行需要更长的时间。会是权限吗?还是 Access 运行时的安装方式有误?
如果有更好、更快的方法来确定版本,我也会对此感兴趣。 谢谢 厉害了
' Determine the Access version by creating an
' Access.Application object and looking at
' its Version property.
Private Function GetAccessVersionName() As String
Dim obj As Object = CreateObject("Access.Application")
Dim result As String = "Access.Application." & _
obj.Version
obj.Quit()
Return result
End Function
' Get the Access version number from the name.
Private Function GetAccessVersionNumber() As Integer
Dim txt As String = GetAccessVersionName()
Dim pos2 As Integer = txt.LastIndexOf(".")
Dim pos1 As Integer = txt.LastIndexOf(".", pos2 - 1)
txt = txt.Substring(pos1 + 1, pos2 - pos1 - 1)
Return CInt(txt)
End Function
' Get the nice style of the Access version name.
Public Function GetAccessVersionNiceName() As String
Try
Select Case GetAccessVersionNumber()
Case 8
Return "Access 97"
Case 9
Return "Access 2000"
Case 10
Return "Access XP"
Case 11
Return "Access 2003"
Case 12
Return "Access 2007"
Case Else
Return "unknown"
End Select
Catch ex As Exception
Return "unknown"
End Try
End Function
【问题讨论】:
-
什么版本的 Access?安装的版本?注册到MDB文件的当前版本?3 还是特定MDB/ACCDB/ADP文件格式的Access版本?假定您希望将当前版本注册到 MDB 文件中。我肯定会使用注册表项。虽然,作为一个悲观主义者,我真的很想仔细检查 msaccess.exe 是否存在于注册表项指定的位置。