当我添加记录时,当前记录的最后一个字段获取焦点!但是我按TAB键时,它老是移动焦点到倒数第二个字段?我要他移到第一个字段去?我在dbgrid1keyprees中写了代码:
if(key=#13)then
keybd_event(vk_tab,0,0,0);
我该怎么办啊?
谁有在dbgrid中检查输入数据完整性(不能为空,不能重复等)的例程?有的话发到我的E-MAIL:[email protected],谢谢!!!
if(key=#13)then
keybd_event(vk_tab,0,0,0);
我该怎么办啊?
谁有在dbgrid中检查输入数据完整性(不能为空,不能重复等)的例程?有的话发到我的E-MAIL:[email protected],谢谢!!!
2、如果你的dbgrid关联的是一个query,每输入一个数据后,就在另一个临时query中用select count 命令查出含有该数据的记录个数;如果你的dbgrid关联的是一个table,每输入一个数据后,就记下这个数,然后删除该字段值,用locate函数寻找含有该值的记录,如果没有,就把该值写回该字段。或者每输一个数后就在table的BeforeEdit事件中用locate检测。如果有重复的就报错。
3、用IsEmpty()函数可以测试任何类型的数据是否为空,检测数据为空可以在table的AfterEdit事件中进行。
if key=#13 then
if DBGrid1.SelectedIndex<>DBGrid1.FieldCount-1 then
DBGrid1.SelectedIndex:=dbgrid1.SelectedIndex +1
else
if tstringgrid(dbgrid1).row<tstringgrid(dbgrid1).RowCount-1 then
begin
tstringgrid(dbgrid1).row:=tstringgrid(dbgrid1).row+1;
dbgrid1.SelectedIndex:=0;
dataset.Next ;//dataset是DBGrid后台数据集
end;
答二:
数据完整性(不能为空,不能重复等)只能检查DBGrid后台数据集的完整性,可设其为主键,若不能为主键,可在数据集BeforePost中加以判断。
begin
tstringgrid(dbgrid1).row:=tstringgrid(dbgrid1).row+1;
begin
tstringgrid(dbgrid1).row:=tstringgrid(dbgrid1).row+1;这个什么意思?
if key=13 then
postmessage(dbgrid1.Handle,wm_keydown,vk_tab,0);