Data1.RecordSource = "SELECT * FROM OFFICER WHERE KFS_NAME='" & DBCombo1.Text & "'" 怎样判断这个语句的查询结果为空?
或者说,如果查询没有查到结果的话,返回值应该是什么?

解决方案 »

  1.   

    if data1.recordset.recordcount=0 then
        msgbox "没有记录"
    end if
      

  2.   

    data1.recordset.eof=true  则为空
      

  3.   

    if data1.recordset.eof then
        msgbox "没有记录"
    end if
      

  4.   

    我不是这个意思!!
    数据库中可能是有数据的,但是这个语句的查询结果可能是没有符合的选项
    用EOF好象判断不了没有符合条件的记录的情况
      

  5.   

    本来你用SQL语句就是要从一个有数据库中得到一个符合条件的记录集出来,
    这里得到的“记录集”中有没有数据与你原来数据库中有没有数据象不是一回事吧。所以,上面的各解都可以成立。
      

  6.   

    我的源码是这样的
    Private Sub DBCombo1_Change()
        Data1.Refresh
        Data1.RecordSource = "SELECT * FROM OFFICER WHERE KFS_NAME='" & DBCombo1.Text & "'"
    End SubPrivate Sub DBGrid1_Click()
        If Data1.Recordset.EOF Then
            Exit Sub
        ElseIf DBGrid1.Book = " " Then    ‘这个地方的判断应该有问题,该怎么改呢
            Exit Sub
        Else
            Data1.Recordset.Book = DBGrid1.Book
            DBCombo1.Text = Data1.Recordset.Fields("KFS_NAME").Value
        End If
    End Sub
      

  7.   

    To weidong70(维德思特) :
       在DBGrid连接数据库时,我使用了绑定的方式,这样即使这条查询语句查找不出记录,数据库中也是有记录,而且只用这个语句判断的话根本解决不了问题,当点击DBGrid时,会出现“无当前记录的错误”。
      

  8.   

    if recordset.eof and recordset.bof then 查询为空
      

  9.   

    object.recordset.recordcount=0
    or
    object.recordset.eof=true
      

  10.   

    应该把Data1.Refresh放在Data1.RecordSource = "SELECT * FROM OFFICER WHERE KFS_NAME='" & DBCombo1.Text & "'"后面
      

  11.   

    if rs.bof and rs.eof then
       msgbox "没有查询到记录!!!"
       exit sub
    end if
      

  12.   

    if data1.recordset.recordcount=0 then
        msgbox "没有记录"
    end if这样就行了