do case case nKeyCode = 5 && UP ARROW select tbl do while !bof() and ac_level != '3' skip -1 enddo this.AfterRowColChange() * nodefault case nKeyCode = 24 && DOWN ARROW select tbl do while !eof() and ac_level != '3' skip 1 enddo this.AfterRowColChange() * nodefault endcaseIt works fine, but it skips 1 record further.