PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در رویداد QueryClose فرمها



abootorab
2014/11/25, 10:34
درود
من 2تا فرم ایجاد کردم به نامهای A و B ، با کلیک بر روی کلید Start Sample در محیط Excel فرم A ظاهر میشه، حال میخوام با کلیک روی ضربدر قرمز فرم A ، فرم B ظاهر و فرم A مخفی بشه و بالعکس با کلیک بر روی ضربدر قرمز فرم B ، فرم A ظاهر و فرم B مخفی بشه. واسه این کار از رویداد QueryClose واسه هر دو فرم استفاده کردم ، اما زمان اجرا فقط یک بار خواسته من اجرا میشه و زمانیکه فرم A برای بار دوم ظاهر شد دیگه با کلیک بر روی ضربدر اتفاقی نمیفته و همینجور فرم A ظاهر میمونه!!!
مشکل کارم کجاست؟ ممنون میشم منو راهنمایی کنید
در ضمن: این عمل میشه با افزودن کلید به فرم ها انجام داد ولی میخوام از طریق ضربدر قرمز خود فرم انجام بشه و دیگه اینکه میخوام ShowModal فرم ها در حالت True باشه، چون در حالت False خواسته ام بدون مشکل انجام میشه.
فایل نمونه رو ضمیمه کردم، ممنون

abootorab
2014/11/26, 17:24
درود
من 2تا فرم ایجاد کردم به نامهای A و B ، با کلیک بر روی کلید Start Sample در محیط Excel فرم A ظاهر میشه، حال میخوام با کلیک روی ضربدر قرمز فرم A ، فرم B ظاهر و فرم A مخفی بشه و بالعکس با کلیک بر روی ضربدر قرمز فرم B ، فرم A ظاهر و فرم B مخفی بشه. واسه این کار از رویداد QueryClose واسه هر دو فرم استفاده کردم ، اما زمان اجرا فقط یک بار خواسته من اجرا میشه و زمانیکه فرم A برای بار دوم ظاهر شد دیگه با کلیک بر روی ضربدر اتفاقی نمیفته و همینجور فرم A ظاهر میمونه!!!
مشکل کارم کجاست؟ ممنون میشم منو راهنمایی کنید
در ضمن: این عمل میشه با افزودن کلید به فرم ها انجام داد ولی میخوام از طریق ضربدر قرمز خود فرم انجام بشه و دیگه اینکه میخوام ShowModal فرم ها در حالت True باشه، چون در حالت False خواسته ام بدون مشکل انجام میشه.
فایل نمونه رو ضمیمه کردم، ممنون

دوستان کمک نمیکنن؟!!!

misammisam
2014/11/26, 22:15
والا اینی که شما گفتید 2 تا ایراد داره .
اول اینکه مثلا فرم a رو باز میکنی بعد وقتی بسته میشه فرم b باز میشه و وقتی فرم b رو میبندی دوباره فرم a باز میشه ، اینکار باعث میشه هنوز فرم b شما هاید باشه و اینبار که میخوای دوباره هایدش کنی اکسل اجازه اینکارو نمیده .
حالا اگرم این مشکلو به نحوی حل کنی یه مشکل دیگه بوجود میاد ، اونم اینه که هر کدوم از فرمارو که میبندی فرم بعدی باز میشه ، کلا یه حلقه پایان ناپذیر ایجاد میشه ، چطوری میخوای از این فرما بیای بیرون !؟

abootorab
2014/11/27, 01:39
والا اینی که شما گفتید 2 تا ایراد داره .
اول اینکه مثلا فرم a رو باز میکنی بعد وقتی بسته میشه فرم b باز میشه و وقتی فرم b رو میبندی دوباره فرم a باز میشه ، اینکار باعث میشه هنوز فرم b شما هاید باشه و اینبار که میخوای دوباره هایدش کنی اکسل اجازه اینکارو نمیده .
حالا اگرم این مشکلو به نحوی حل کنی یه مشکل دیگه بوجود میاد ، اونم اینه که هر کدوم از فرمارو که میبندی فرم بعدی باز میشه ، کلا یه حلقه پایان ناپذیر ایجاد میشه ، چطوری میخوای از این فرما بیای بیرون !؟

با درود
ممنون از پاسختون
این دو فرم رو به عنوان نمونه گذاشتم، واسه خروج از loop مشکلی ندارم. در واقع کلید هایی تعریف کردم که منو به فرم های دیگه میبره و در نهایت کلید خروج از اکسل
البته در حال حاضر من با یه کلید به فرم قبلی برمیگردم و از اون فرم هم با کلید به فرم های دیگه ولی میخوام علاوه بر کلید که تعبیه کردم از طریق ضربدر قرمز فرم هم این امکان واسم وجود داشته باشه
به هر حال اگه لطف کنید واسه این مشکل راه حلی ارائه بدین باقی موارد رو حلش میکنم
ممنون از همه دوستان

Ali Parsaei
2014/11/27, 09:29
آقا همه راه در رو ها رو بستي بعد راه حل مي خواهي:cool::confused:
ShowModal فرم ها که در حالت True باشه ، از دگمه هاي داخل فرم هم که نمي خواهيد استفاده کنيد! ..... من که هنگ کردم!
راستي نمي خواهيد اصلا" ضربد قرمز غير فعال گردد؟

abootorab
2014/11/27, 12:51
آقا همه راه در رو ها رو بستي بعد راه حل مي خواهي:cool::confused:
ShowModal فرم ها که در حالت True باشه ، از دگمه هاي داخل فرم هم که نمي خواهيد استفاده کنيد! ..... من که هنگ کردم!
راستي نمي خواهيد اصلا" ضربد قرمز غير فعال گردد؟


با درود و تشکر
این مشکلی بود که خواستم ببینم راه حلی داره یا نه، اما بذارید من یه فایل نمونه دیگه آماده میکنم بعد دربارش نظر میدیم
ممنون

abootorab
2014/11/27, 15:32
با درود مجدد
جناب استاد پارسا این بار فایل نمونه رو کامل تر پیوست کردم و درها رو باز کردم:D
تو فرم A برای کلید "برو به فرم B" و برای رویداد QueryClose فرم A دقیقا کد شبیه هم نوشتم، همچنین تو فرم B برای کلید "بازگشت به فرم A" و رویداد QueryClose فرم B کدها شبیهند
چرا کلیدها کارشون را به خوبی و به هر تعداد بار که بخواهیم انجام میدن اما ضربدر قرمز گوشه فرم ها (رویدادهای QueryClose) فقط یک بار عمل میکنند و برای دفعات بعدی هیچ عکس العملی نشون نمیدن؟؟ در حالیکه کداشون شبیه کدهای کلیدهاست!!
امیدوارم این بار خواسته ام واستون واضح تر باشه، پیشاپیش ممنون

misammisam
2014/11/27, 20:10
اینو نگفتی :
چرا میخوای ShowModal فرمت True باشه !؟

abootorab
2014/11/28, 04:11
اینو نگفتی :
چرا میخوای ShowModal فرمت True باشه !؟



با درود
چون در حالت False هنگام جرای برنامه کاربر میتونه به محیط Excel دسترسی داشته باشه و شرایط برنامه ام جوری هست که میخوام در حالت True باشه. به هرصورت شما فرض کنید که اجبارا ShowModal میبایست در حالت True باشه و حال با این فرض راه حلی واسه این مشکل هست یا اینکه لاینحله؟
ممنون از همه دوستان

Ali Parsaei
2014/11/28, 16:46
اينکه چرا کد نوشته شده براي دگمه قرمز فقط يک بار کار مي کند من هم نفهميدم :confused::confused::confused:
ولي تنها توجيه قابل قبول براي کار شما ايجاد عدم امکان دسترسي کاربران به محيط اکسل است.
خوب چرا دگمه قرمز را قفل نمي کنيد؟
فايل زير را نگاه کنيد، من فرمها را تمام صفحه کردم، اکسل را هم فول اسکرين کردم و دگمه قرمزها را هم قفل کردم..... ببينيد به درد مي خورد؟

abootorab
2014/11/29, 11:02
با درود
ممنون از پاسختون جناب، اینکه ضربدر قرمز رو قفل کنیم و روشهای فول اسکرین وغیره رو میدونستم و در برنامه اصلی از همین روش استفاده کردم ولی بهتر بود واسه بستن فرم علاوه بر کلید بشه از ضربدر هم استفاده کرد (یعنی هر دو یک عمل رو انجام بدن) که مطمئنا شما هم با نظر بنده موافقین. اما چرا این مشکل وجود داره واسه بنده هم خیلی عجیبه!!!!
البته امیدوارم بقیه دوستان هم رو این موضوع نظرشونو بدن
به هر صورت خیلی خیلی ممنون که وقت گذاشتین

majid_mx4
2014/12/26, 00:42
با سلام

لطفا فایل ضمیمه را بررسی نمایید.


با تشکر میر

abootorab
2014/12/26, 00:55
با سلام

لطفا فایل ضمیمه را بررسی نمایید.


با تشکر میر

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

امين اسماعيلي
2014/12/26, 02:24
با درود
اول اینکه به نظر بنده چرا عمل نمیکنه واسه دومین بار چون عمل ایونت ما هنوز به پایان نرسیده و تا زمانی که فرم کاملا بسته نشده این ایونت هنوز داره اجرا میشه و اما واسه عدم دسترسی به شیت که راه زیاده . حتی این روش شما هم میتونه راه درو داشته باشه و به شیت ها دسترسی داشت. شما میتونی ماژوا رو روی false بزاری و از همون ابتدای باز شدن اکسل فایل اکسل کاملا مخفی بشه و فقط با یوزر فرم ها کار کنی و اجازه باز شدن هیچ فایل اکسلی رو تا زمان اینکه کاربر با این فایل کار میکنه رو ازش بگیری. و اگر میخواد شیت اکسل رو ببینه براش یوزر و پسورد تعریف کنی. در کل اون عمل نکردنه به خاطر تموم نشدن ایونت مورد نطر هستش به نظر بنده.

majid_mx4
2014/12/26, 16:14
با سلام مجدد

ضمن معذرت خواهی در مورد فایل اول لطفا فایل ضمیمه را بررسی نمایید.( توضیح دارد)

با تشکر میر