有關 Table 新增資料的連結 |
答題得分者是:cashxin2002
|
cklu
一般會員 ![]() ![]() 發表:19 回覆:18 積分:7 註冊:2005-05-05 發送簡訊給我 |
各位厲害的高手好…本人初學 Delphi ,有關一些 資料庫的問題… 我有設兩個表單,如下圖,如果我新增一筆資料到 表(一) ,想用 表(一)「作者」那一欄位,來判斷是否與 表(二)中的「作者」有重複,如果重複,則 表(二) 不必新增,如「作者」沒重複,則將那筆資料也新增至 表(二)
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 修改程式碼如下﹐假設所有的欄位皆為字串形態﹕
procedure TForm1.BitBtn2Click(Sender: TObject); begin Table1.Insert; //在Post之前即触發以下的BeforePost事件 Table1.Post; end; procedure TForm1.Table1BeforePost(DataSet: TDataSet); //此處為Table1的BeforePost事件 begin if Trim(Edit1.Text)='' then begin ShowMessage('書編號不允許空白'); Edit1.SetFocus; Abort; end else begin if Table1.Locate('書編號', Edit1.Text, []) then begin ShowMessage('資料已經存在'); Edit1.SetFocus; Abort; end else begin Table1.FieldByName('書編號').AsString := Edit1.Text; Table1.FieldByName('出版社編號').AsString := Edit2.Text; Table1.FieldByName('作者編號').AsString := Edit9.Text; Table1.FieldByName('書名').AsString := Edit3.Text; Table1.FieldByName('作者').AsString := Edit4.Text; Table1.FieldByName('出版日期').AsString := Edit6.Text; Table1.FieldByName('出版版本').AsString := Edit7.Text; end; end; end; procedure TForm1.Table1AfterPost(DataSet: TDataSet); //此處為Table1的AfterPost事件 begin ShowMessage('書編號' + Edit1.Text + '已被存入資料庫中'); Table1.Close; Table1.Open; Edit1.Clear; Edit2.Clear; Edit9.Clear; Edit3.Clear; Edit4.Clear; Edit6.Clear; Edit7.Clear; end;=================================
------
忻晟 |
cklu
一般會員 ![]() ![]() 發表:19 回覆:18 積分:7 註冊:2005-05-05 發送簡訊給我 |
您好: 我將上面的程式碼run 的時候它跑出好多的[Error] [Error] Unit1.pas(100): Undeclared identifier: 'Table1BeforePost'
[Error] Unit1.pas(100): ';' expected but '(' found
[Error] Unit1.pas(103): Undeclared identifier: 'Edit1'
[Error] Unit1.pas(106): Missing operator or semicolon
[Error] Unit1.pas(111): Undeclared identifier: 'Table1'
[Error] Unit1.pas(114): Missing operator or semicolon
.... ↑ 那些是什麼意思啊??
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
cklu
一般會員 ![]() ![]() 發表:19 回覆:18 積分:7 註冊:2005-05-05 發送簡訊給我 |
|
cklu
一般會員 ![]() ![]() 發表:19 回覆:18 積分:7 註冊:2005-05-05 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 此句錯誤信息是指Table1未進入新增或者修改狀態﹐是不允許存檔的﹒
檢查一下是否漏寫了以下紅色句﹕
procedure TForm1.BitBtn2Click(Sender: TObject); begin Table1.Insert; //在Post之前即触發以下的BeforePost事件 Table1.Post; end;=================================
------
忻晟 |
cklu
一般會員 ![]() ![]() 發表:19 回覆:18 積分:7 註冊:2005-05-05 發送簡訊給我 |
您好! 那一行是沒少打 … 不過我是把Table1.Insert; 加在下面箭頭那地方,結果就可以行執了耶! 呵… 謝謝您! if Table1.Locate('書編號', Edit1.Text, []) then
begin
ShowMessage('資料已經存在');
Edit1.SetFocus;
Abort;
end
else
begin
→ Table1.Insert;
Table1.FieldByName('書編號').AsString := Edit1.Text;
Table1.FieldByName('出版社編號').AsString := Edit2.Text;
Table1.FieldByName('作者編號').AsString := Edit9.Text;
Table1.FieldByName('書名').AsString := Edit3.Text;
Table1.FieldByName('作者').AsString := Edit4.Text;
Table1.FieldByName('出版日期').AsString := Edit6.Text;
Table1.FieldByName('出版版本').AsString := Edit7.Text;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |