線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1470
推到 Plurk!
推到 Facebook!

如何即時檢查DBGRID資料輸入的正確性?

尚未結案
yaoyao01tw
一般會員


發表:28
回覆:17
積分:9
註冊:2003-01-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-20 18:40:37 IP:61.58.xxx.xxx 未訂閱
資料庫使用Access由於資料表中的欄位使用到日期欄位, 但使用者會輸入非法的格式如民國年,94/3/18 希望能檢查,讓使用者只能輸入2005/3/18 該採取怎樣的作法呢? 目前我採用如下的作法,並自己撰寫了檢查日期的函數, 不過仍然無法避免程式的意外中斷,如使用者在欄位中輸入'=' 等非法字元,不知道是否有類似其他語言的Mask可以使用 避免輸入時,程式意外結束! procedure TFRM_ONO.ADOTable1BeforePost(DataSet: TDataSet); begin inherited; if ChkIsValidDate(self.DBGrid1.Columns[0].Field.Value)=falsethen begin self.DBGrid1.Columns[0].Field.Value := ''; end; end;
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-20 20:58:06 IP:211.74.xxx.xxx 未訂閱
用 Try    Except   end 把你寫的程式包起來,這樣程式就不會中斷 Date欄位本身程式就會檢查他的正確性 不過像是你說的94/3/18到是無法檢查 建議你用Field的OnValidate Event做檢查 不要等到要Post才一併檢查....      星期一,星期二...星期日..星期一..無窮迴圈@@
------
星期一,二...無窮迴圈@@
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-21 11:23:20 IP:202.62.xxx.xxx 未訂閱
您好﹗    假設日期欄位為DBGrid中的第四順位﹐在DBGrid元件的OnKeyPress事件中鎖定只允許使用輸入0~9的數字鍵﹐'/'鍵﹐后退鍵﹐有些像Mask的作用﹕
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if (DBGrid1.SelectedIndex = 3) and (Key Not In ['0'..'9','/',#8]) then
    begin
      Key := #0;
    end;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
系統時間:2024-05-19 17:46:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!