基本情况: 在VB下开发的时候使用的是Access97
           但客户的机器上已经安装了Access2000.
           (安装时携带Access97数据库)           出现的错误:
Can't open a database created with a previous version of your application.
请问如何解决?
谢谢!

解决方案 »

  1.   

    access連接要用Provider=Microsoft.Jet.OLEDB.4.0
      

  2.   

    Provider=Microsoft.Jet.OLEDB.4.0
    转换数据库为Access2000
      

  3.   

    工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
        CN.Open    Rs.CursorLocation = adUseClient
        Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic    Set DataGrid1.DataSource = Rs
      

  4.   

    是的,我使用的就是Provider=Microsoft.Jet.OLEDB.4.0。
    是不可以转为Access2000,又出现别的问题了。
      

  5.   

    写错了
    我的代码是xPath = App.path                                                                               '设置Access数据库
    If Right(Trim(xPath), 1) <> "\" Then
       xPath = xPath + "\"
    End If
       
    'Data_User.Connect = xPath & "smsbill.mdb"
    Data_User.DatabaseName = xPath & "smsbill.mdb"
    Data_User.RecordSource = "user"
    Data_User.Refresh
    有什么问题吗?谢谢!
      

  6.   

    写错了
    我的代码是xPath = App.path                                                                               '设置Access数据库
    If Right(Trim(xPath), 1) <> "\" Then
       xPath = xPath + "\"
    End If
       
    'Data_User.Connect = xPath & "smsbill.mdb"
    Data_User.DatabaseName = xPath & "smsbill.mdb"
    Data_User.RecordSource = "user"
    Data_User.Refresh
    有什么问题吗?谢谢!
      

  7.   

    问题在于你使用了Data控件。data控件不能直接支持access2000, 这样:
    添加以下代码:Dim db As DAO.database, rs As DAO.RecordsetSet db = DBEngine.OpenDatabase(xPath & "smsbill.mdb")
    Set rs = db.OpenRecordset("user")
    Set Data1.Recordset = rs