請問DBGrid元件可以用寫程式讓資料填上去嗎? |
尚未結案
|
ggg
一般會員 發表:14 回覆:13 積分:5 註冊:2005-06-26 發送簡訊給我 |
|
huwk
資深會員 發表:26 回覆:340 積分:323 註冊:2002-04-03 發送簡訊給我 |
不知道您的用意是要做什麼?寫入資料表中嗎? 若是那你直接操作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 發送簡訊給我 |
您好﹗ 提供一個範例給您參考﹕
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 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
//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 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
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 發送簡訊給我 |
不管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 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您的意思是不是這樣?
(對不起, 我習慣用 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 發送簡訊給我 |
還是您的意思是這樣, 如果是的話, 用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 發送簡訊給我 |
|
ggg
一般會員 發表:14 回覆:13 積分:5 註冊:2005-06-26 發送簡訊給我 |
|
kgt
高階會員 發表:17 回覆:308 積分:165 註冊:2002-03-13 發送簡訊給我 |
|
ggg
一般會員 發表:14 回覆:13 積分:5 註冊:2005-06-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |