代码如下:
Private Sub Form_Load()
Data1.Connect = "access 2000;pwd=123;"
Data1.DatabaseName = "C:\进销存.mdb"
Data1.RecordSource = "库存管理"
Data1.Refresh
End Sub
执行时总是提示:实时错误'3170':找不到可插入的ISAM。
(说明:本人的data控件已升级,在取消数据库密码时,可用Data1.Connect = "access 2000;"的形式正常访问数据库。)

解决方案 »

  1.   

    可以用provider字符串写,
    Provider=Microsoft.JET.OLEDB.4.0;data sourceC:\进销存.mdb;JET OLEDB:database password=123;
      

  2.   

    我用ado 访问mdb数据库
    1、公用函数
    Public Function chaxun(ByVal sql As String, msgstring As String) As ADODB.Recordset
        On Error GoTo ExecuteSQL_Error
        
        Dim cN As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim a() As String
        Set cN = New ADODB.Connection
        
        
        Dim str As String
        str = App.Path
        If Right(str, 1) <> "\" Then
           str = str + "\"
        End If    cN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\_data.mdb;Persist Security Info=False;jet OLEDB:Database password=422127197509080072"
        cN.Open
        
        
        a = Split(sql)
        
        If InStr("insert,delete,updata,alter", Trim(a(0))) Then
            cN.Execute sql
            Select Case Trim(a(0))
                Case "insert"
                    msgstring = "添加记录"
                Case "delete"
                    msgstring = "删除记录"
                Case "updata"
                    msgstring = "更新记录"
            End Select
            msgstring = msgstring & "已完成"
        Else
            
            Set rst = New ADODB.Recordset
            rst.CursorLocation = adUseClient
            rst.Open sql, cN, adOpenKeyset, adLockOptimistic
            
            Set chaxun = rst
            msgstring = "查询到" & rst.RecordCount & "条记录"
        End If
        
    ExecuteSQL_Exit:
        Set rst = Nothing
        Set cN = Nothing
        Exit Function
        
    ExecuteSQL_Error:
        msgstring = "查询错误: " & _
        err.Description
        Resume ExecuteSQL_Exit
    End Function
    2、调用方法
    dim xx as string,yy as string
    xx = "select * from main order by 序号"
    Set mrc = chaxun(xx, yy)
      

  3.   

    太简单了,access保密那么差,随便找个软件解开就完了吗!
    网上有专解access软件!
      

  4.   

    使用 Data 控件打开 Accecc 数据库:
    设置 Connect 属性为 ;pwd=密码
    Data1.Connect = ";pwd=密码"
    修改密码:
    Data1.Database.NewPassword _老密码_, _新密码_
      

  5.   

    '应该用:Private Sub Form_Load()
        Data1.Connect = ";pwd=123"
        Data1.DatabaseName = "C:\进销存.mdb"
        Data1.RecordSource = "库存管理"
        Data1.Refresh
    End Sub
      

  6.   

    TO: yoki(小马哥), zjcxc(邹建),两位的都存在问题,也正是我一直没弄出来的地方。
    当数据库是access 2000以下版本时,可以通常测试,但当数据库是access 2000时就不行了,提示:不可识别的数据库格式。我试着将Data1.Connect = ";pwd=123"改为Data1.Connect = "access 2000;pwd=123"也还是不行,提示:找不到可插入的ISAM。
    说明:我已经将data控件升级了。
      

  7.   

    可以肯定的告诉你,用DATA控件是无法直接使用ACCESS2000数据库的,解决方案:
    1、用ADODC控件,也就是微软主推的ADO技术
    2、将ACCESS2000数据库转换为ACCESS97格式的数据库。(用ACCESS2000以上软件都可以搞定)
      

  8.   

    “可以肯定的告诉你,用DATA控件是无法直接使用ACCESS2000数据库的”,原因是什么?
    我的观点:
    当使用:Data1.Connect = ";pwd=123",出现“不可识别的数据库格式”的错误提示,即说明data控件此时默认的数据库类型为Data1.Connect="access;",相应的调用的数据引擎也是低版本的。而要用data控件连接access 2000数据库时,应使用这种形式:Data1.Connect = "access 2000;"。换句话说若(假设就是在注册表中)能使Data控件默认的连接类型为"access",那么当使用Data1.Connect = ";pwd=123"时,就会调用有关"access 2000"数据库的数据引擎。