判斷DBGrid內的值 |
尚未結案
|
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#1
發表時間:2003-05-06 16:43:23
IP:210.202.xxx.xxx 未訂閱
請問如何判斷出DBGrid內某欄位的值為空白時則不可新增或修改。
我是搭配DBNavigator來做資料的新增及刪除動作的。
謝謝
|
delphiwww
資深會員 發表:145 回覆:363 積分:368 註冊:2002-03-13 發送簡訊給我 |
#2
發表時間:2003-05-06 22:42:48
IP:219.68.xxx.xxx
未訂閱
某個欄位的資料,應該是在dataset(query or table)元件上用fieldbyname判斷
就可以了,或者直接用TField元件判斷也可以
例如
if query1.fieldbyname('order_no').asstring='' then
begin end;
不可不可新增或修改可以寫在dataset元件的onbeforeedit or onbeforeinsert判斷
if dataset.fieldbyname('order_no').asstring='' then
begin
dataset.cancel;
abort;
end;
引言: 請問如何判斷出DBGrid內某欄位的值為空白時則不可新增或修改。 我是搭配DBNavigator來做資料的新增及刪除動作的。 謝謝 |
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#3
發表時間:2003-05-07 09:39:18
IP:210.202.xxx.xxx
未訂閱
1.下列程式碼在 ADOQuery1 的 AfterPost事件中
2.如果身分證字號為空白則不可新增或修改
3.如不是空白就可新增或修改
問題就在於為何程式執行到Abort這行後就跳到ADOQuery1.Post這行呢?
是否我的語法或是位置有誤呢?
謝謝!! if (DBGrid1.DataSource.DataSet.FieldByName('id_no').AsString='') then
BEGIN
Showmessage('身分證不可空白');
DBGrid1.DataSource.DataSet.FieldByName('id_no').FocusControl;
DBGrid1.SelectedIndex := 1;
DBGrid1.SetFocus;
ADOQuery1.Cancel;
Abort; End
Else
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('type_code').Value :='P';
ADOQuery1.Post;
end;
end;
|
may
一般會員 發表:32 回覆:26 積分:11 註冊:2003-02-11 發送簡訊給我 |
#4
發表時間:2003-05-07 10:34:47
IP:203.160.xxx.xxx
未訂閱
我已從討論區中找到方法了,謝謝大家的幫忙。
procedure TForm3.ADOQuery1id_noValidate(Sender: TField);
begin
if (DBGrid1.DataSource.DataSet.FieldByName('id_no').AsString='') then
BEGIN
Showmessage('身分證字號不可為空白');
Abort;
End;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |