關於兩個Access資料表存取的問題 |
尚未結案
|
jimm
一般會員 發表:10 回覆:9 積分:3 註冊:2004-09-16 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 個人覺得不使用資料感知元件﹐而改用Edit元件配合程式碼自行控制資料的顯示和存取會方便一些﹐以下為參考﹕
在Edit1的OnKeyPress事件中 begin if Key = #13 then begin if ADOTable2.Locate('欄位名', Edit1.Text, [loCaseInsensitive]) then begin Edit2.Text := ADOTable2.Fields.Fields[欄位索引號].AsString; end else begin ShowMessage('資料庫中無此筆資料'); Edit2.SetFocus; end; end; end; 在ADOTable1的BeforePost事件中﹕ begin ADOTable1.FieldByName('欄位名稱').AsString := Edit1.Text; ADOTable1.FieldByName('欄位名稱').AsString := Edit2.Text; end;========================= 大病初愈﹐休養調整中... =========================
------
忻晟 |
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
Procedure TForm1.DBEdit1KeyPress(Sender: TObject; Var Key: Char);
Begin
If key = #13 Then
Begin
If Table2.Locate(FieldName,Table1.FieldByName('Field1').AsString, [loCaseInsensitive]) Then
Table1.FieldByName('Field2').AsString := Table2.FieldByName('Field2').AsString;
End;
End;
如cashxin2002兄所說,我也覺得你的需求或許利用EDIT來作會在控制上及撰寫上比較方便. =========================
讀萬卷書~不如來K.TOP走一遭
=========================
|
jimm
一般會員 發表:10 回覆:9 積分:3 註冊:2004-09-16 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
jimm
一般會員 發表:10 回覆:9 積分:3 註冊:2004-09-16 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 小弟所指的在欄位名左右加上[]是針對SQL語法而言﹐而不是使用在Locate方法上﹐不好意思﹐有些誤導您了﹒ 建議您使用英文來命名欄位名﹒
如下方法可在DBGrid顯示時將其欄位名顯示為中文﹒
1. 資料集元件(如ADOTable﹔ADOQuery等)正常連接上資料庫﹐雙擊此資料庫元件﹐開啟其欄位編輯器﹒
2. 在欄位編輯器中點擊滑鼠右鍵﹐選擇Add all Fields﹐加入所有的欄位名﹐在此處也可使用Add Fields來選擇加入欄位名﹐加入的欄位名會顯示﹐不加入的則不會顯示﹒
3. 在欄位編輯器中選擇任一個欄位名﹐然后在其對應的DisplayLabel屬性中輸入此欄位的中文名﹒
4. Open資料集元件﹐即可發現對應的欄位標題處顯示剛才在DisplayLabel屬性中輸入的中文內容﹒ =========================
大病初愈﹐休養調整中...
=========================
------
忻晟 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |