在 BeforePost事件中检查数据是否都合法,不合法可以使用abort强行
中止post命令.

解决方案 »

  1.   

    您可以把DBGRID设为只读,另外制作一个输入窗口专用于增加记录,并加一个按钮或热键引发这个窗口,这样处理界面较友好,也符合大部分程序的惯例。
      

  2.   

    <a href="topicview.asp?id=87>为什么不用DataGrid?</a>
      

  3.   

    kxy说的是对的, 你应该给他分数!!!
      

  4.   

    管理类的软件绝对不会使用Dbgrid干这活,用一个不是数据感知的stringGrid,一切都OK了。
      

  5.   

    惨痛的教训告诉我:千万不要用DBGrid做输入控件
      

  6.   

    谢谢yjq的提醒,kxy所说的正在研究当中,成功一定给分
    谁如果知道DataGrid的下载地方,能不能顺手通知一下。
      

  7.   

    用计算字段。在你的DataSet(引用表b)中增加一个是姓名,一个是总分的计算字段。
      

  8.   

    给您寄了两grid:datagrid和alignstringgrid。 wuhc99请注意查收。
      

  9.   

    请问DataGrid和alignstringgrid要怎么安装,不好意思见笑了.我用的是Delphi5
    安装DataGrid时提示TDataGrid这个类已存在.安装alignstringgrid也出现错误
    会不会我的安装方法不对。
      

  10.   

    Datagrid2.0原是D3下的版本,我已改为D5版本,去掉了DBDataGrid,
    但添加了大量的功能,如跨行,跨列,数据变动敏感等等.
    如果你要的话...
      

  11.   

    这个问题很简单的,用delphi的Tdbgrid完全可以实现。如下:
    在form1添加table1和table2和dbgrid1,table1连接数据库A,table2连接数据B,
    dbgrid1连接table2。
    在table2的字段“编号”的onChange事件为:
    if not table1.locate('编号',table2编号.value,[]) then
      begin
       messagedlg('没有这个编号');
       abort;
      end
    else
      begin
        table1.locate('编号',table2编号.value,[]);
        table2姓名.value:=table1姓名.value;
      end;table2的beforepost事件为:
    try
      table2总和.value:=table2语文.value+table2数学.value;
    except
      messagedlg('语文或数学输入数据有错');
      abort;
    end;Ok!如果你用infopower或DevGrid控件,可能更好一点
      

  12.   

    to barton 能不能寄我,如果太大寄到[email protected]
    to fstao 谢谢,我先试试看。