在模块的代码:: 
Option Explicit Public Conn As New ADODB.Connection 
Public Rs As ADODB.Recordset 
Public Sql As String Public Function LandMDB(ByVal vFile As String) As String 
On Error Resume Next 
Sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & vFile & ";Persist Security Info=False" 
Conn.Open Sql 
If Err <> 0 Then LandMDB = "连接数据库错误,请检查[ " & vFile & " ]是否存在。" 
End Function 要窗体的代码: 
Private Sub Form_Load() 
Dim ErrInfo As String ErrInfo = LandMDB(App.Path & "\db1.mdb") 
If Len(ErrInfo) <> 0 Then MsgBox ErrInfo, vbOKOnly + vbCritical, "载入数据库错误" Set Rs = New ADODB.Recordset 
Sql = "select 数据.学号,数据.姓名,数据.sex,数据.mz,数据.jg,数据.ymd,数据.age,数据.zy,point.xh from 数据,point where 数据.姓名=point.name" 
Rs.Open Sql, Conn, 1, 3 End Sub 我看不懂Len(ErrInfo)在传递之后会得到什么值,如果是返回字符串的话,在连接错误的时候.并没有返回任何字符串.而errinfo也没有接收到错误时的字符串(我试图用print和msgbox命令试过)..[MsgBox ErrInfo, vbOKOnly + vbCritical, "载入数据库错误"] ..而这一句代码也没有运行..到底是什么原因?但是没有这一句,Function的代码好像又没有什么动静似的.
小弟恳求详细的解释.谢谢.

解决方案 »

  1.   

    试试将函数 LandMDB 改为如下:Public Function LandMDB(ByVal vFile As String) As String  
        On Error Goto ErrHanddle
        
        LandMDB = ""
        
        Sql = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & vFile & ";Persist Security Info=False"
        Conn.Open Sql
        
        Exit Function 
        
    ErrHanddle:
        LandMDB = "连接数据库错误,请检查[ " & vFile & " ]是否存在。"  
    End Function
      

  2.   

    Len(ErrInfo)只是用来判断
    ErrInfo = LandMDB(App.Path & "\db1.mdb")的返回值 所以说你的代码并没有错。 "在连接错误的时候.并没有返回任何字符串"-----你确定是连接错误了吗?