SQL$ = "select 学号 from 学生" & " where 姓名 like " & Me.Name
加空格!!!!

解决方案 »

  1.   

    Set rsData = New ADODB.Recordset
    CnnStr = "...."
    cnn.Open CnnStr
    SQL$ = "select 学号 from 学生 " & "where 姓名 like " & Me.Name
    rsData.Open SQL$, CnnStr, adOpenKeyset, adLockOptimistic
    NUM = rsData!学号
    If Me.Password = NUM Then
    test.show
    else
    MsgBox "用户名或密码输入不正确!"
    end if
    .......
      

  2.   

    还有一个地方错:Set rsData = New ADODB.Recordset
    CnnStr = "...."
    cnn.Open CnnStr
    SQL$ = "select 学号 from 学生 " & " where 姓名 = '" & Me.Name & "'"
    rsData.Open SQL$, CnnStr, adOpenKeyset, adLockOptimistic
    NUM = rsData!学号
    If Me.Password = NUM Then
    test.show
    else
    MsgBox "用户名或密码输入不正确!"
    end if
    .......
      

  3.   

    既然是考试系统,不应用“like”,“=”才是首选。
      

  4.   

    恩,对啦,应该是确认查询,不应该存在模糊查询,而且象YANG所说的那样,你得注意类型和空格的问题,应该使用一步步执行来判断字符串是否已经是合法的SQL语句。
      

  5.   

    按照Yang_(扬帆破浪)的方法,“NUM = rsData!学号”这句过不去。
    提示的信息是“BOF或EOF中有一个是‘真’,或者当前的记录已被删除,所需的操作要求一个当前的记录”
    这是怎么回事呢?
    大家请见谅,我很菜。
      

  6.   

    rsdata返回的是空记录吧?
    看看 rsdate.recordcount=?