全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1548
推到 Plurk!
推到 Facebook!

請問DBGrid元件可以用寫程式讓資料填上去嗎?

尚未結案
ggg
一般會員


發表:14
回覆:13
積分:5
註冊:2005-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-07 00:15:19 IP:219.84.xxx.xxx 未訂閱
我現在想寫一個可以讓程式產生的數據填入一個表格中 例如程式中有一個變數X 在執行過程中X=1 2 3 4 5 6... 然後我想把X的值一一填入一個表中的每個欄位 但不知道如何著手 只要可以達成目的不管用什麼元件方法都行   PS.我只是個菜鳥 希望能有圖解說的越詳盡越好 感恩
huwk
資深會員


發表:26
回覆:340
積分:323
註冊:2002-04-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-07 01:46:30 IP:211.76.xxx.xxx 未訂閱
不知道您的用意是要做什麼?寫入資料表中嗎?    若是那你直接操作DATASET即可啊~    
引言: 我現在想寫一個可以讓程式產生的數據填入一個表格中 例如程式中有一個變數X 在執行過程中X=1 2 3 4 5 6... 然後我想把X的值一一填入一個表中的每個欄位 但不知道如何著手 只要可以達成目的不管用什麼元件方法都行 PS.我只是個菜鳥 希望能有圖解說的越詳盡越好 感恩 < face="Verdana, Arial, Helvetica">
------
熊的學習 http://huwk.blogspot.com
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-11-07 08:30:06 IP:202.62.xxx.xxx 未訂閱
您好﹗    提供一個範例給您參考﹕
Var
  I: Integer;
begin
  ADOTable1.Open;
  For I:=1 to 6 do
  begin
    ADOTable1.Insert;
    ADOTable1.FieldByName('欄位名稱').AsInteger := I;
    ADOTable1.Post;
  end;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
ggg
一般會員


發表:14
回覆:13
積分:5
註冊:2005-06-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-11-07 11:37:59 IP:220.132.xxx.xxx 未訂閱
感謝兩位大大的熱心 我的問題已經有點改過 關於上面大大提到的這兩個元件 我不知道如何達成目的耶 是否可以詳細說明 不好意思,新手上路總是比較憨慢
kgt
高階會員


發表:17
回覆:308
積分:165
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-07 13:11:56 IP:210.243.xxx.xxx 未訂閱
//Table1-->DatabaseName-->DBDEMOS // -->TableName-->employee.db // -->Active-->True //DataSource1-->DataSet-->Table1 //DBGrid1-->DataSource-->DataSource //直接點選Button1的按鈕,直接新增201至212的數值 //因該Table1已有1至12的資料 // unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; DBGrid1: TDBGrid; DataSource1: TDataSource; Table1: TTable; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //////////////// Var I: Integer; begin Form1.Edit1.text := '212'; Form1.Table1.Open; For I:=201 to StrToInt(Form1.Edit1.text) do begin Form1.Table1.Insert; Form1.Table1.FieldByName('EmpNo').AsInteger := I; Form1.Table1.Post; end; end; end.
ggg
一般會員


發表:14
回覆:13
積分:5
註冊:2005-06-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-07 17:13:51 IP:220.132.xxx.xxx 未訂閱
感謝kgt大大    我剛剛試過kgt大大的方法 的確可以執行 不過之後再做一次又不行了 不知道哪裡錯了 請問表是否可以不要有東西 就是最原始的表 等待使用者輸入在表上面產生 還有X變數要輸入其值於表中 如圖 感恩感恩 新手上路,問題多多,囉囉唆唆,請多包涵
kgt
高階會員


發表:17
回覆:308
積分:165
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-11-07 18:46:40 IP:218.165.xxx.xxx 未訂閱
DBGrid為<資料>感知的元件, 故一般用來新增、修改、刪除<資料>用的(好比是人), 而其資料的架構(好比幾張椅子是固定的,於Table元件中的database及table), 因此較少去動態產生您紅色部分的欄位名稱(一般使用者無此資料庫架構權限), 我舉例的部分Form1.Table1.FieldByName('EmpNo').AsInteger := I; 因EmpNo是員工編號,key值不許重覆,因此只能執行一次, 若非key值欄位則可重覆產生。 表是否可以不要有東西-->可以,但必須有欄位名稱(紅色部分的欄位), 還有X變數要輸入其值於表中-->此列刪掉Form1.Edit1.text := '212'; 想重新執行時,移到資料列是201--212後,按Ctrl Del即可刪除, 輸入由edit決定變數(212),再點Button1即可執行。
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-11-08 17:30:48 IP:61.231.xxx.xxx 未訂閱
不管DBGrid要多顯示什麼,我都習慣用SQL語法控制 比如由Edit1來決定要顯示幾筆資料     
with query1 do begin
  //access資料庫的用法
  SQL.Text := 'SELECT TOP '   edit1.text   ' * FROM xxxx';
  Open;
end;
 
這樣就很靈活,所以我很少用Table元件 也很少直接對DBGrid操作 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
kgt
高階會員


發表:17
回覆:308
積分:165
註冊:2002-03-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-11-11 06:46:30 IP:218.165.xxx.xxx 未訂閱
ggg的問題是較複雜的,因欄位的部份竟然也是由使用者來決定, 因此也不會有a6475大大所提的FROM xxxx
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-11-11 08:52:11 IP:61.219.xxx.xxx 未訂閱
您的意思是不是這樣? (對不起, 我習慣用 ado, 所以 table1 改成 adoconnection1 及 adotable1) unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids; type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; ADOConnection1: TADOConnection; ADOTable1: TADOTable; Edit2: TEdit; Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x, y:integer; begin if pos(edit1.Text,'empno,lastname,firstname')>0 then begin y:=strtoint(edit2.text); if y>0 then begin for x:=1 to y do begin adotable1.Insert; adotable1.FieldByName(edit1.text).value:=inttostr(x); adotable1.post; end; end; end; end; end.
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-11-11 09:19:35 IP:61.219.xxx.xxx 未訂閱
還是您的意思是這樣, 如果是的話, 用excel會比較快吧. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids; type TForm1 = class(TForm) Edit2: TEdit; Button1: TButton; Edit1: TEdit; StringGrid1: TStringGrid; procedure Button1Click(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; mcol: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x, y:integer; begin if edit1.Text<>'' then begin y:=strtoint(edit2.text); mcol:=mcol 1; if stringgrid1.colcount<=mcol then stringgrid1.ColCount:=mcol 5; stringgrid1.Cells[mcol,0]:=edit1.text; if y>0 then begin if stringgrid1.rowcount<=y then stringgrid1.RowCount:=y 1; for x:=1 to y do begin stringgrid1.Cells[mcol,x]:=inttostr(x); end; end; end; end; procedure TForm1.FormShow(Sender: TObject); begin mcol:=0; end; end.
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-11-11 10:03:15 IP:61.231.xxx.xxx 未訂閱
我理解能力不夠啊 有看沒有懂>_<    如果只是單純在表格上面填資料 那用StringGrid就可以了,不是用DBGrid元件    ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
ggg
一般會員


發表:14
回覆:13
積分:5
註冊:2005-06-26

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-11-18 18:29:57 IP:220.132.xxx.xxx 未訂閱
首先要感謝大家的回應 不好意思 這禮拜剛剛忙完 我先好好研究各位大大的回應內容 感恩 ================================ 新手上路,問題多多,囉囉唆唆,請多包涵
kgt
高階會員


發表:17
回覆:308
積分:165
註冊:2002-03-13

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-11-18 18:42:19 IP:61.219.xxx.xxx 未訂閱
大忙人,Good luck!
ggg
一般會員


發表:14
回覆:13
積分:5
註冊:2005-06-26

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-11-19 22:49:01 IP:220.132.xxx.xxx 未訂閱
我不是什麼大忙人啦 只是在準備考試 我想請教一下st33chen大大 關於兩個例子元件的屬性值要如何設啊?? 不好意思,我只是新手對DELPHI還不是很熟 再麻煩一下大大 感恩感恩 ================================ 新手上路,問題多多,囉囉唆唆,請多包涵
系統時間:2024-05-19 19:56:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!