PDA

View Full Version : مرتبط کردن جداول گوناگون همسان با برنامه



Tarrah
سه شنبه 06 دی 1384, 20:23 عصر
سلام
یه برنامه داریم. که رو فرمش دوتا dblabel هست که اطلاعات جدول رو اونو نشون داده می شه و کاربر با کلیک بر روی گزینه های بعدی و قبلی می تونه به همه رکورد ها دسترسی داشته باشه . این جدول با یه جدول access مرتبطه و اطلاعات اون رو نشون می ده .
حالا اگه بخوایم 10 تا جدول با فیلد های یکسان ولی رکوردهای متفاوت ایجاد کنیم (یعنی ساختار جداول مثل هم باشه ولی داده ها متفاوت ) کاربر چه طور می تونه از تو برنامه یه قسمتی رو بازکنه و جدول مورد نظرش رو با برنامه مرتبط کنه ؟ یعنی مثل open همه برنامه ها یه قسمتی باشه که بازکنه و از یه مسیری جدول مورد نظر رو انتخاب کنه .

mzjahromi
سه شنبه 06 دی 1384, 20:35 عصر
منظور شما جداول مختلف در بانکهای مختلف هست یا جداول مختلف در یک بانک؟
حالا نحوه باز کردن رو می خوای؟
خوب OpenDialog هست چند تا کامپوننت دیگه هم هست

Tarrah
سه شنبه 06 دی 1384, 22:14 عصر
نه . چون رکوردها در فواصل زمانی مختلف تهیه می شن نمی تونن تو یه بانک باشن ولی طبعا از یک نوع هستند.
حالا با opendialog چطور جدول رو با برنامه مرتبط کنم ؟

vcldeveloper
چهارشنبه 07 دی 1384, 03:19 صبح
AdoConnection متدی داره بنام GetTableNames که از طریق اون می تونید لیست جداول موجود در یک Database را بدست بیارید. کاری که شما باید انجام بدید اینه که لیست جداول را از AdoConnection بگیرید و در یک ComboBox نمایش بدید. کاربر هم می تونه از طریق اون ComboBox (یا هر کنترلی که دوست دارید) اسم جدول را انتخاب کنه. با انتخاب اسم جدول باید خصوصیت TableName (اگه از AdoTable استفاده می کنید) یا Query که نوشتید (اگه از AdoQuery یا AdoDataSet استفاده می کنید) را متناسب با انتخاب کاربر تغییر دهید.
مثال:


procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Connected := True;
ADOConnection1.GetTableNames(ComboBox1.Items);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
AdoTable1.Close;
AdoTable1.TableName := TComboBox(Sender).Items[TComboBox(Sender).ItemIndex];
AdoTable1.Open;
end;

mzjahromi
چهارشنبه 07 دی 1384, 08:31 صبح
ولی من فکر می کنم ایشون چیز دیگه می خوان و منظورشون اینه که مثلا اگه با اکسس کار می کنن فایلهای MDB تو جاهای مختلف هارد ذخیره شده است و می خوان اونها رو انتخاب کنن
اگر منظورتون این باشه باید با OpenDialog فایل مورد نظرت رو انتخاب کنی و بعد Connection String بسازی.
کار با Opendialog هم خیلی ساده است باید OpenDialog1.execute رو اجرا کنی و بعد فکر کنم با OpenDialog1.FileName مشکلت حل بشه. می تونی هم با کامپوننتهای گروه Win31 خودت Opendialog بسازی(البته کامپوننتهای زیادی برای این کار هست)

Tarrah
چهارشنبه 07 دی 1384, 10:48 صبح
منظورم گفته ی آقای ذوالقدر ولی اگه ممکنه یه کم بیشتر توضیح بدین . بعد open dialog چیکار باید کرد ؟

mzjahromi
چهارشنبه 07 دی 1384, 11:48 صبح
بعد از اون اگر بخواهی با Ado کار کنی باید Connection string بسازی اگر هم با BDE کار می کنی باید مسیر رو به DataBase بدی به صورت زیر
DriverName رو بذار MSACCESS
این کد رو هم بعد از OpenDialog بنویس


Database1.Params[0]:='DATABASE NAME='+OpenDialog1.FileName

البته این فقط روش کار هست

mzjahromi
چهارشنبه 07 دی 1384, 11:52 صبح
اگر هم با Ado می خوای کار کنی این کد رو بنویس


AdoConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ' +
Opendialog1.filename+';Persist Security Info=False'

Tarrah
چهارشنبه 07 دی 1384, 15:38 عصر
ممنون و متشکر . امتحان می کنم اگه مشکلی پیش اومد مطرح می کنم .

mzjahromi
چهارشنبه 07 دی 1384, 16:20 عصر
خواهش می کنم