两个TextBox:一个显示"中文名",一个显示"英文名"
一个Adodc:改变当前记录至"第一笔"、"前一笔"、"后一笔"、"最后一笔",共10条记录希望实现:在点击Adodc控件时,也就是改变当前显示的记录时,检查两个TextBox是否为空,为空则不允许改变当前记录
实现方法:在Adodc1的WillChangeRecord事件中添加代码如下,
===================================================================
    If Trim(Text1) = "" Then
        MsgBox "中文名不能为空!"
        Text1 = "": Text1.SetFocus
    ElseIf Trim(Text2) = "" Then
        MsgBox "英文名不能为空!"
        Text2.SetFocus: Text2 = ""
    End If
===================================================================问题出现了:
当我把任何一条记录的中文名清空后,并点击Adodc的"下一笔"按钮时,出现提示"中文名不能为空!",这是正确的!
但紧跟着,我又点击了一次Adodc的"下一笔"按钮时,大家注意!
此时又出现提示"中文名不能为空!",但当点击确定后,显示的却是下一笔记录了!
请问,这是为什么?应该如何克服这个问题?

解决方案 »

  1.   

    If Trim(Text1) = "" Then
            MsgBox "中文名不能为空!"
            Text1 = "": Text1.SetFocus
            exit sub
        ElseIf Trim(Text2) = "" Then
            MsgBox "英文名不能为空!"
            Text2.SetFocus: Text2 = ""
            exit sub
        End If
      

  2.   

    vodlinux:可能您理解错了,提示出现的时候,当第一次点,显示的仍然是当前的记录,并没有移动到下一笔!可是问题是,点第二次的时候,它就移动到下一笔来显示了!
      

  3.   

    有一点比较奇怪,当第一次出现提示,点击后,发现Adodc的“后一笔”按钮变成被按下的状态,而和其他三个按钮的状态不太一样!
    第二次出现提示,点击后,四个按钮的状态就都恢复正常了!大家帮忙...
      

  4.   

    不要用ADODB的控件直接来控制,换COMMAND算了
      

  5.   

    我想会不会是这样: 
    记录集打开的时候指针并不是指定到第一记录, 用程序先指定到第一记录看看:
    ....
    if Adodc.recordcount>0 then
      Adodc.movefirst
    endif