我的毕业设计是用VB做一个通用无纸化考试系统,数据库用的是ACCESS,在用ADO连接是出现问题,建立数据库连接是新建了一个模块,打开数据库连接,代码如下:
  Sub InitProgram()
  DataPath = App.Path & "e:\shiyeling\kaoshixitong.mdb"
  cnExam.Open "DSN=ExamSystem", "", "1111"
  IsLocked = False
  End Sub
 在ODBC也创建了数据源 ,但是在运行时只要出现访问这个库里的表就会出现错误:数据库引擎找不到该表,是什么原因啊,我是做毕业设计,时间很紧,因为这个问题进行不下去了,大家帮帮忙啊,小女子这厢不胜感激!

解决方案 »

  1.   

    用ado連接,不是adodc哦^^Option ExplicitPublic rs As New ADODB.Recordset
    Public conn As New ADODB.ConnectionPrivate Sub Form_Load()
     Dim strconn As String
     strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"
     conn.CursorLocation = adUseClient
     
     conn.Open strconn
     
     If rs.State = 1 Then rs.Close
     rs.Open "Select * from People", conn, adOpenKeyset, adLockPessimistic
     
     Set Me.DataGrid1.DataSource = rs End With
    End Sub
      

  2.   

    妹妹的代碼是錯的呀。起碼和ado或者adodc控件沒有一點粘邊的。你實在不行,你就用adodc控件。再屬性葉面裡面生成連接,然後進行綁定就可以了^^ Good luck
      

  3.   

    我是先在[工程]的[引用]中,先添加了[Microsoft Active Data Object 2.0 Library],再加的这个模块啊,以前没学过VB,现在急啊,这个月25号就要交设计论文了,我都快急哭了,哥哥帮帮我啊!
      

  4.   

    给你两个模块,自己参考吧!
    '以下两个变量分别是判断是否登录数据库成功的变量
    '和一个链接数据库的对象变量
    Private blnConnected As Boolean
    Public gcnnConnection As ADODB.Connection'功能:连接数据库并执行判断是否连接成功
    '输入:
    '   cnnConnection      ADODB.Connection   要创建的连接
    '输出:gADOConnection     Boolean             返回的判断结果
    '********************************************************************
    Public Function gADOConnection(ByRef cnnConnection As ADODB.Connection) As Boolean
        Dim itsConnectionString As String
        Dim lngErrNum As Long
        
        On Error GoTo ADOErr
        
        Set cnnConnection = New ADODB.Connection
        cnnConnection.Provider = "microsoft.jet.oledb.4.0"
        itsConnectionString = "data source=" & App.Path & "\student.mdb"
        cnnConnection.ConnectionString = itsConnectionString
        cnnConnection.CursorLocation = adUseClient
        cnnConnection.Open
        gADOConnection = True
        
    ADOErr:
        lngErrNum = err.Number
        If lngErrNum <> 0 Then
            gADOConnection = False
        End If
    End Function'******************************************************************
    '功能:获取ADO记录集
    '输入:
    '   strSQL        String     用于查询SQL数据库的SQL语句
    '输出: GetRecordSet  Recordset  返回的记录集
    '*******************************************************************
    Public Function GetRecordSet(strsql As String) As ADODB.Recordset
        On Error GoTo err
        Dim rsTemp As ADODB.Recordset
        Set rsTemp = New ADODB.Recordset
        
        Set gcnnConnection = New ADODB.Connection
        
        blnConnected = gADOConnection(gcnnConnection)
        
        If blnConnected = True Then
            '设置游标类型和数据库锁定类型
            rsTemp.Source = strsql
            Set rsTemp.ActiveConnection = gcnnConnection
            rsTemp.CursorType = adOpenKeyset
            rsTemp.LockType = adLockOptimistic
            rsTemp.Open
            
            Set GetRecordSet = rsTemp
        Else
            Set GetRecordSet = Nothing
        End If
        Exit Function
    err:
        MsgBox err.Number & " " & err.Description
    End FunctionPublic Sub insertValue(strsql As String)
        Set gcnnConnection = New ADODB.Connection
        blnConnected = gADOConnection(gcnnConnection)
        If blnConnected = True Then
            gcnnConnection.BeginTrans
            gcnnConnection.Execute (strsql)
            gcnnConnection.CommitTrans
        End If
    End Sub
      

  5.   

    谢谢各位大哥大姐的帮助!这个问题已经得到解决了。但是还有很多很琐碎的小问题。有对VB很精通的人吗,能否给个QQ!谢了 !
      

  6.   

    大哥,你的绝对路径前面还要加App.Path 干吗啊??????????
      

  7.   

    你把E-MAIL给我,我给你一个源程序。
      

  8.   

    这句明显有问题:
    DataPath = App.Path & "e:\shiyeling\kaoshixitong.mdb"看你的意思,应该改成:
    DataPath = App.Path & "\kaoshixitong.mdb"建立连接可以这样写:
      声明中:
      Private strConStr As String
      Private MainConn As ADODB.Connection
      过程中:
      strConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +  DataPath+";Persist Security Info=False"
      Set MainConn = New ADODB.Connection
      MainConn.Open strConStr