我有一个程序需要升级它打开的任何Access(Jet)数据库到JET Version4.x(如果尚未升级到该版本)。 (这样可以使用SQL-92语法功能)

升级相对容易。调用JRO.JetEngine对象的CompactDatabase方法(as described here)应该可以解决问题,但是在执行此操作之前,我需要确定是否需要升级。如何确定现有数据库的Jet OLEDB:Engine类型?是否可以从打开的OleDBConnection确定?

笔记:

  • 我说的是数据库版本,而不是Jet库版本。
  • C#或.Net解决方案倍受赞赏。
  • 这是使用Jet引擎的应用程序,而不是Access应用程序。
  • 最佳答案

    您必须设置对ADO的引用,然后才能获得该属性。

    来自Access的内部

    Dim cnn As ADODB.Connection
    Set cnn = CurrentProject.Connection
    

    从Access外部
    Dim cnn As New ADODB.Connection
    cnn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Contact.mdb
    

    最后是
    Debug.Print cnn.Properties("Jet OLEDB:Engine Type").Value
    

    .Value将返回1到5。如果为5,则它已经在Jet4x中,否则为早期版本。

    这也是您正在研究的另一种升级技术示例:Convert MDB database to another format (JET, access version)

    关于c# - 如何以编程方式确定Jet数据库引擎类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2897780/

    10-09 03:44