如何使用ADODC 去联接加了密码的Access数据库???出错问题如下: "无法启动应用程序,工作组信息文件丢失,就是已被其它用户以独点方式打开."联接的时候,我已经加了密码了,还是不行求教各位大侠!~

解决方案 »

  1.   

    Adodc控件可以在属性叶面对数据库进行连接,但是这样的连接数据库很死,而且弄不好,连接字符就没有了,所以在程序中用代码进行连接的话,方便得多。
    在增加与删除其实Adodc控件与Recordset的区别只是把 Recordset更换成Adodc1.Recordset
    RecordSet的增加:Rs.AddNew,Adodc的增加:Adodc1.Recordset.AddNew
    示范:
    '--如何用Adodc控件代码去连接Access
    Private Sub Command1_Click()
     Dim strConn As String
     ‘ ' 连接带密码的数据库,直接在连接符后面加上Jet OLEDB:DataBase Password='您的密码'
     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False;Jet OLEDB:DataBase Password='您的密码'"
     
     ' adodc的连接字符串
     Adodc1.ConnectionString = strConn
     
     ' 指定Command对象的形态
     Adodc1.CommandType = adCmdText
     
     ' 设置传回一个资料录集。
     Adodc1.RecordSource = "Select * from People"
     
     ' 将记录集合绑定DataGrid1
     Set DataGrid2.DataSource = Adodc1
    End Sub
      

  2.   

    呵呵```这个问题曾经碰过其实解决很简单!!!cn.Provider = "Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBName & ";Jet OLEDB:Database Password=" & strPass & ";Persist Security Info=False"整个模块给你吧,我是用连接SQL的模块修改的''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public strDBName As String    '数据库名
    Public strPass As String    '数据库密码
    Public rs As ADODB.Recordset
    Public cn As ADODB.ConnectionPublic Function ConnectionDB(strDBName As String, strPass As String) As Long    Dim blnConnState As Boolean
        On Error GoTo errHandle
        Set cn = New ADODB.Connection
        cn.ConnectionTimeout = 5
        cn.CursorLocation = adUseClient    cn.Provider = "Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBName & ";Jet OLEDB:Database Password=" & strPass & ";Persist Security Info=False"    cn.Open
        blnConnState = GetState(cn.State)
        If blnConnState Then
            ConnectionDB = 1    '连接成功
        End If    Exit Function
    errHandle:
        Select Case Err.Number
        Case -2147467259
            ConnectionDB = 0    '连接失败
        Case -2147217843
            ConnectionDB = 3    '非法用户
        Case Else
            ConnectionDB = 100
        End Select
    End Function'GetState( )函数检查与数据库的连接状态,成功返回真值
    Public Function GetState(intState As Integer) As Boolean
        Select Case intState
        Case adStateClosed
            GetState = False
        Case adStateOpen
            GetState = True
        End Select
    End Function'******************************************************
    '--exesql()用于执行用户给定的select语句,实现更新,返回对应的记录集
    '******************************************************
    Public Function exesql(ByVal sqltxt As String) As ADODB.Recordset
        Dim rs As ADODB.Recordset
        sqltxt = Trim$(sqltxt)
        Set rs = New ADODB.Recordset    '定义rst为recordset对象
        Set rs.ActiveConnection = cn    '指示Recordset 对象当前所属的 Connection 对象
        rs.LockType = adLockOptimistic    '指示编辑过程中对记录使用的锁定类型 _
                                          开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录?
        rs.CursorType = adOpenKeyset    '打开指定 Recordset 的 Connection 对象。
        rs.Open sqltxt
        Set exesql = rs
    End Function
      

  3.   

    在原来的连接字符串中加上:Jet OLEDB:Dabase Password=密码
      

  4.   

    上面3位的都正确,但其实就只是需要在引擎里面加如";password=密码"就行了