View Full Version : اضافه كردن يك فيلد جديد به جدول اكسس
bps20590
یک شنبه 09 تیر 1387, 16:49 عصر
باسلام
دوستان عزيز من يك بانك اطلاعاتي با اكسس دارم وحالا مي خواهم درحين اجراي برنامه بازدن برروي يك دكمه يك يا چند فيلد به مشخصاتي كه مد نظر است به جدول اضافه شود بدون آنكه اطلاعات جدول حذف شوندلطفا راهنمايي كنيد.
2- چطور مي شود از يك جدول فيلتر گيري كرد (بعنوان مثال تمام ركوردهايي كه فيلد name آنها حافي كلمه علي باشد )
Hsimple11
یک شنبه 09 تیر 1387, 22:45 عصر
برای ایجاد فیلد جدید در زمان اجرا میتوانید از خصوصیت FieldDef استفاده کنید :
procedure TForm1.Button1Click(Sender: TObject);
var
Field: TField;
i: Integer;
begin
Table1.Active:=False;
for i:=0 to Table1.FieldDefs.Count-1 do
Field:=Table1.FieldDefs[i].CreateField(Table1);
Field:=TStringField.Create(Table1);
with Field do
begin
FieldName:='New Field';
Calculated:=True;
DataSet:=Table1;
end;
Table1.Active:=True;
end;
در مورد سوال دومتان در مورد ایجاد فیلتر مفصل در این سایت بحث شده. جستجو کنید.
موفق باشید....
ENG_COM1979
دوشنبه 10 تیر 1387, 10:18 صبح
دوست عزیز در خصوص سوال دوم شما adoquery1 =نام ADo ای که به جدول اکسس شما وصل شده , tbl_name نام جدول شما در بانک اکسستان می باشد
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from tbl_name where name like N''%'+edit1.Text+'%''');
ADOQuery1.ExecSQL;
ADOQuery1.Open;
AFTABGARDAN2006
سه شنبه 11 تیر 1387, 15:16 عصر
چطور می توان فیلد در بانک هم ساخته شود
Hsimple11
چهارشنبه 12 تیر 1387, 01:16 صبح
چطور می توان فیلد در بانک هم ساخته شود
با روشی که ذکر شد Field در بانک ساخته میشود.
mzjahromi
چهارشنبه 12 تیر 1387, 06:58 صبح
برای اضافه کردن فیلد به جدول میتونید از این کوئری نیز استفاده کنید. که روشی استاندارد است
alter table tablename add field int
Modernidea
شنبه 22 فروردین 1388, 11:51 صبح
برای ایجاد فیلد جدید در زمان اجرا میتوانید از خصوصیت FieldDef استفاده کنید :
procedure TForm1.Button1Click(Sender: TObject);
var
Field: TField;
i: Integer;
begin
Table1.Active:=False;
for i:=0 to Table1.FieldDefs.Count-1 do
Field:=Table1.FieldDefs[i].CreateField(Table1);
Field:=TStringField.Create(Table1);
with Field do
begin
FieldName:='New Field';
Calculated:=True;
DataSet:=Table1;
end;
Table1.Active:=True;
end;
در مورد سوال دومتان در مورد ایجاد فیلتر مفصل در این سایت بحث شده. جستجو کنید.
موفق باشید....
سلام
يه توضيحي در مورد كدي كه نوشتي ميدي؟
در مورد قسمت for و بقيش.
من زماني كه اين رو اجرا ميكنم خطاي Duplicate ميده و اين خطا رو در همون خط اول for ميده.
ممنون.
mohsend
جمعه 19 آبان 1391, 20:53 عصر
شرمنده ام در مورد اضافه کردن یک فیلد با کد نویسی بیشتر توضیح بدید . باید کدی رو که گفتید بصورت ماژول ذخیره کنیم یا به یک دکمه نسبت بدیم
Modernidea
جمعه 19 آبان 1391, 22:35 عصر
شرمنده ام در مورد اضافه کردن یک فیلد با کد نویسی بیشتر توضیح بدید . باید کدی رو که گفتید بصورت ماژول ذخیره کنیم یا به یک دکمه نسبت بدیم
سلام
تا جایی که من میدونم حلقه for موجود در جواب Hsimple11 عزیز لازم نیست و اشتباه است.
نمونمه کدی که در ادامه قرار میدم از سایت خود دلفی (http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/DBClient_TCustomClientDataSet_FieldDefs.html#) کپی کردم.
این کد طریقه ساخت جدول را با کدونویسی تقریبا کامل توضیح داده.
البته من هم مثل بقیه دوستان ترجیح میدم با Query، جدول و فیلد اضافه یا حذف کنم.
{ The following example shows how to create a table. }
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Close;
Table1.DeleteTable;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Table1:= TTable.Create(Form1);
with Table1 do
begin
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';
Table1.Active := False;
{ Don't overwrite an existing table }
if Table1.Exists then
MessageDlg('CustInfo table already exists.', mtWarning, [mbOK], 0)
else
begin
{ The Table component must not be active }
{ First, describe the type of table and give }
{ it a name }
{ Next, describe the fields in the table }
with FieldDefs do
begin
Clear;
with AddFieldDef do
begin
Name := 'Field1';
DataType := ftInteger;
Required := True;
end;
with AddFieldDef do
begin
Name := 'Field2';
DataType := ftString;
Size := 30;
end;
end;
{ Next, describe any indexes }
with IndexDefs do
begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do
begin
Name := '';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do
begin
Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
end;
{ Call the CreateTable method to create the table }
CreateTable;
Table1.Active:= True;
for i := 1 to 20 do
Table1.AppendRecord([i*111, i*222]);
end;
end;
DS2.DataSet:= Table1;
DBGrid2.DataSource.DataSet:= Table1;
Table1.Active:= True;
end;
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.