PDA

View Full Version : سوال: تغییر خود به خودی مسیر بانک اطلاعاتی برنامه بعد از نمایش CommonDialog



farboodj1375
پنج شنبه 13 مرداد 1390, 21:37 عصر
سلام.

من یه مشکلی دارم.
تو برنامم مسیر بانک رو تو حالت Design تعریف کردم.
البته جوری که برنامه هرجا بود بانک رو هم از همونجا بخونه.
یعنی تقریبا پویا هست.

حالا یه مشکلی هست که وقتی میخوام مورد جدید ایجاد کنم تو بانک , یک Common Dialog هم نشون داده میشه برای انتخاب عکس.

بعد اگه کاربر از فرم خارج شه و قبل از بسته شدن برنامه دوباره فرم رو باز کنه , برنامه مسیر بانک رو عوض کرده و به دنبال بانک تو جایی میگرده که دفعه قبل کاربر عکس رو از اونجا انتخاب کرده و مسلما بانکی موجود نیست...

خواهش میکنم کمک کنین.

ببخشید اگه بد توضیح دادم.....

vbhamed
جمعه 14 مرداد 1390, 00:27 صبح
سلام

تو يك ماژول يك متغير عمومي (Global) تعريف كنيد به اسم مثلا dbase
و مسير اجرا رو توش قرار بدين به اين صورت

dbase = App.Path & "\test.mdb"

بعدش همه جا از اين به عنوان نام ديتابيس استفاده كنيد

farboodj1375
جمعه 14 مرداد 1390, 09:53 صبح
دوست عزیز ممنون.

ولی مثل اینکه شما درست متوجه منظورم نشدی.

من مسیر بانک رو با کدنویسی تعیین نکردم.وتو حالت طراحی اونو انتخاب کردم ولی طوری که بانک رو همیشه از کنار برنامه بخونه.
و بعد با اون مشکل روبرو شدم.

ممنون.
خواهشا کمک کنید.

farboodj1375
جمعه 14 مرداد 1390, 12:59 عصر
اگه لازمه بگین تا نمونه برنامه رو بذارم......
فقط خواهشا کمک کنین بدجوری کارم گیره.
ممنون.

ali190
جمعه 14 مرداد 1390, 14:01 عصر
سلام
مشکلتون رو خواهشاً یه مقدار واضح تر بگید و نمونه بذارید
یاعلی

farboodj1375
جمعه 14 مرداد 1390, 21:08 عصر
ممنون دوست عزیز.

همونطور که گفتم مشکلم اینه که وقتی میخوام یه مورد جدید تو بانک ایجاد کنم باید یک کاماند دیالوگ برای انتخاب عکس نمایش داده بشه.

تا اینجا مشکلی نیست.

حالا اگه کاربر فرم رو ببنده و دوباره باز کنه یک ارور میاد که میگه بانک موجود نیست البته در واقع برنامه اشتباه میکه و بانک رو جایی جستجو میکنه که دفعه قبل کاربر عکس رو از اونجا انتخاب کرده.
البته اگه کاربر یه بار کل برنامه رو ببنده و دوباره اجرا کنه مشکل حل میشه.....

این هم نمونه برنامه.خواهشا اگه تونستین مشکلم رو حل کنین.
منتظرم.
ممنون.

akbarg64
جمعه 14 مرداد 1390, 23:16 عصر
سلام.چرا اینجوری نه؟؟؟؟؟؟؟

ali190
شنبه 15 مرداد 1390, 00:43 صبح
سلام
نمونه اصلاح شد
adodc رو یه بار حذف کردم و دوباره اضافه کردم
یاعلی

vbhamed
شنبه 15 مرداد 1390, 07:26 صبح
دوست عزیز ممنون.

ولی مثل اینکه شما درست متوجه منظورم نشدی.

من مسیر بانک رو با کدنویسی تعیین نکردم.وتو حالت طراحی اونو انتخاب کردم ولی طوری که بانک رو همیشه از کنار برنامه بخونه.
و بعد با اون مشکل روبرو شدم.

ممنون.
خواهشا کمک کنید.

سلام

دوست عزيز، من دقيقا متوجه كاري كه شما كردي شدم
اما مسئله اينه كه اين كار شما از اصل اشتباهه و همين مشكل رو ايجاد مي كنه دليلش هم اينه :
سيستم چيزي به نام مسير جاري داره كه مثلا وقتي يك برنامه رو اجرا مي كني مسير جاري ميشه مسير اجراي اون برنامه از جمله برنامه شما (اگر روي آيكون يك برنامه راست كليك و گزينه Properties رو بزنيد مي بينيد قسمتي تحت عنوان Start in هست كه همون مسير جاري سيستم قبل از اجراي برنامه ميشه)
وقتي برنامه شما اجرا ميشه، چون به بانك متصل به ADODC مسير ندادين از مسير جاري سيستم كه الان مسير اجراي برنامه شماست اون فايل رو پيدا مي كنه، اما عوامل مختلفي روي مسير جاري تاثير مي‌زارن از جمله پنجره Open، حتي شايد اگر شما پنجره OPEN نرم افزار Word رو هم باز كنيد و به يك مسير ديگه بريد و فايل Word اي رو باز كنيد به همين مشكل برخورد كنيد بنابراين اين راهي كه شما رفتيد هميشه اين خطر رو داره كه همچين مشكلي براتون پيش بياد
لذا راهتون همونه كه در بالا گفته شد، ضمن اينكه كلا بهتره كارتون رو اصولي انجام بديد و چيزي كه به اين راحتي مشكل ايجاد مي كنه رو تو برنامتون استفاده نكنيد

farboodj1375
شنبه 15 مرداد 1390, 15:04 عصر
ممنون.
فقط یه مشکلی تو این روش هست.
اینجا چجوری میتونیم رو دیتا گرید کنترل داشته باشبم؟یا فلکس گرید؟
چون تو حالت طراحی اونا رو به Adodc وصل میکردم بعد طراحی های لازم رو انجام میدام(مثا چه فیلدهایی نمایش داده بشه و ....)
تو این روش باید چیکار کنیم؟

vbhamed
شنبه 15 مرداد 1390, 17:53 عصر
سلام

1 - اشياء رو به ADODC متصل كنيد
2 - طراحي هاتون رو انجام بديد
3 - اتصال ADODC به بانك رو قطع كنيد (با پاك كردن Connection String)
4 - تو برنامتون در متد Form_Load به صورت دستي و از روش گفته شده مسير بديد