databasename = "Provider=MSDASQL.1;Password=*****;Persist Security Info=True;Data Source=" & DataName & ";"

解决方案 »

  1.   

    你要将connection和recorderset分开设置。
      

  2.   

    Dim strDBName As String
    Dim cnn As ADODB.Connection 'ado对象,参见MSDN "connection 对象" 说明
    Dim rst As ADODB.RecordsetPrivate Sub Command1_Click()
        
        strDBName = "NWIND"
        
        '更新连接,连接到NWIND.mdb数据库
        If cnn.State = adStateOpen Then cnn.Close
        cnn.ConnectionString = "Provider=MSDASQL;Driver=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\" & strDBName & ".mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;"
        cnn.Open
        
        If rst.State = adStateOpen Then rst.Close
        rst.ActiveConnection = cnn  '更新记录集的连接
        rst.Open                    '重新打开,更新记录集
        Set rpt.DataSource = rst    '给报表数据源赋值
        rpt.Show vbModal
        
    End SubPrivate Sub Command2_Click()
        
        strDBName = "Other"
        
        '更新连接,连接到Other.mdb数据库
        If cnn.State = adStateOpen Then cnn.Close
        cnn.ConnectionString = "Provider=MSDASQL;Driver=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\" & strDBName & ".mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;"
        cnn.Open
        
        If rst.State = adStateOpen Then rst.Close
        rst.ActiveConnection = cnn
        rst.Open
        Set rpt.DataSource = rst
        rpt.Show vbModal
        
    End SubPrivate Sub Form_Load()
        
        Set cnn = New ADODB.Connection
        
        Set rst = New ADODB.Recordset
        With rst
            .Source = "select EmployeeID,LastName,FirstName,Address from Employees"
            .LockType = adLockReadOnly
            .CursorType = adOpenDynamic
        End With
        
    End Sub
    这是一个动态连接数据库的代码,你看看,应该有用!!!