很多問題…>< |
答題得分者是:FrederickPau
|
miga
初階會員 ![]() ![]() 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
嗯嗯…
第一個問題…
當我要新增一筆資料時…
我要判斷當兩個欄位的資料相同時,不能讓其輸入…
則…如何去判斷兩個欄位呢…
我是使用以下程式…可是不行…
if (Table1.Locate('stu_id',Edit1.text,[]))and (Table1.Locate('crs_id',Edit2.text,[]))
then showmessage('學號 '+Edit1.text+' , 課號 '+EDIT2.text+ ' 重覆!!請重新輸入!')
請問有那裡寫錯嗎?
crs_id重覆時,就會出錯… 第二個問題是…
我有一個stu_id(學生學號),他可以選很多課(crs_id)
但是在我修改這個學生所選的課號時,
存入資料庫時,
往往覆蓋的不是我要修改的那筆…
我該如何下指令去針對我要修改的資料呢?
|
yenhorng
中階會員 ![]() ![]() ![]() 發表:12 回覆:82 積分:94 註冊:2002-06-18 發送簡訊給我 |
第一個問題:
您得判斷式變成:先用 Edit1.text 找尋學生編號,再用 Edit2.text 找課號,如果兩個 Locate 都成立,就出現警告訊息!問題是‧‧‧分開找當然找的到。
原因是 Locate 無法設定兩個搜尋式!
第二個問題:
因為您找到的紀錄,本身就是錯的,所以改到的資料也是錯的! 建議使用 TQuery :
Query_Temp.SQL.Clear;
Query_Temp.SQL.Add('SELECT * FROM STU_BASE ');
Query_Temp.SQL.Add('WHERE STU_ID =' Edit1.text );
Query_Temp.SQL.Add('AND CRS_ID =' Edit2.text );
Query_Temp.Close;
Query_Temp.Open;
if Query_Temp.RecordCount > 0 then
begin
ShowMessage('資料重複!');
abort;
end;
|
FrederickPau
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
|
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
另一個想法 妳可以試試
在table1或(query1)的 onafterscroll事件寫
var aa:string; bb: string; aa:=Query1.FieldByName('stu_id').asstring; bb:=Query1.FieldByName('crs_id').asstring; if CompareText(aa,bb) = 0 then begin ShowMessage('學號 ' Edit1.text ' , 課號 ' EDIT2.text ' 重覆!!請重新輸入!'); end;天行健 君子當自強不息~~@.@
------
天行健 君子當自強不息~~@.@ |
miga
初階會員 ![]() ![]() 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |