مشکل در رویداد QueryClose فرمها

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • abootorab

    • 2014/10/17
    • 351

    مشکل در رویداد QueryClose فرمها

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

    • 2014/10/17
    • 351

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

    کامنت

    • misammisam
      مدير تالار حسابداری و اکسل

      • 2014/04/04
      • 892
      • 64.00

      #3
      والا اینی که شما گفتید 2 تا ایراد داره .
      اول اینکه مثلا فرم a رو باز میکنی بعد وقتی بسته میشه فرم b باز میشه و وقتی فرم b رو میبندی دوباره فرم a باز میشه ، اینکار باعث میشه هنوز فرم b شما هاید باشه و اینبار که میخوای دوباره هایدش کنی اکسل اجازه اینکارو نمیده .
      حالا اگرم این مشکلو به نحوی حل کنی یه مشکل دیگه بوجود میاد ، اونم اینه که هر کدوم از فرمارو که میبندی فرم بعدی باز میشه ، کلا یه حلقه پایان ناپذیر ایجاد میشه ، چطوری میخوای از این فرما بیای بیرون !؟
      [CENTER][SIGPIC][/SIGPIC]
      [/CENTER]
      [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
      [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
      [/CENTER]
      [/INDENT]

      [/FONT][/FONT][/FONT][/FONT][/FONT]
      [/CENTER]

      کامنت

      • abootorab

        • 2014/10/17
        • 351

        #4
        نوشته اصلی توسط misammisam
        والا اینی که شما گفتید 2 تا ایراد داره .
        اول اینکه مثلا فرم a رو باز میکنی بعد وقتی بسته میشه فرم b باز میشه و وقتی فرم b رو میبندی دوباره فرم a باز میشه ، اینکار باعث میشه هنوز فرم b شما هاید باشه و اینبار که میخوای دوباره هایدش کنی اکسل اجازه اینکارو نمیده .
        حالا اگرم این مشکلو به نحوی حل کنی یه مشکل دیگه بوجود میاد ، اونم اینه که هر کدوم از فرمارو که میبندی فرم بعدی باز میشه ، کلا یه حلقه پایان ناپذیر ایجاد میشه ، چطوری میخوای از این فرما بیای بیرون !؟
        با درود
        ممنون از پاسختون
        این دو فرم رو به عنوان نمونه گذاشتم، واسه خروج از loop مشکلی ندارم. در واقع کلید هایی تعریف کردم که منو به فرم های دیگه میبره و در نهایت کلید خروج از اکسل
        البته در حال حاضر من با یه کلید به فرم قبلی برمیگردم و از اون فرم هم با کلید به فرم های دیگه ولی میخوام علاوه بر کلید که تعبیه کردم از طریق ضربدر قرمز فرم هم این امکان واسم وجود داشته باشه
        به هر حال اگه لطف کنید واسه این مشکل راه حلی ارائه بدین باقی موارد رو حلش میکنم
        ممنون از همه دوستان

        کامنت

        • Ali Parsaei
          مدير تالارتوابع اکسل

          • 2013/11/18
          • 1522
          • 71.67

          #5
          آقا همه راه در رو ها رو بستي بعد راه حل مي خواهي
          ShowModal فرم ها که در حالت True باشه ، از دگمه هاي داخل فرم هم که نمي خواهيد استفاده کنيد! ..... من که هنگ کردم!
          راستي نمي خواهيد اصلا" ضربد قرمز غير فعال گردد؟
          [SIGPIC][/SIGPIC]

          کامنت

          • abootorab

            • 2014/10/17
            • 351

            #6
            نوشته اصلی توسط علي پارسا
            آقا همه راه در رو ها رو بستي بعد راه حل مي خواهي
            ShowModal فرم ها که در حالت True باشه ، از دگمه هاي داخل فرم هم که نمي خواهيد استفاده کنيد! ..... من که هنگ کردم!
            راستي نمي خواهيد اصلا" ضربد قرمز غير فعال گردد؟
            با درود و تشکر
            این مشکلی بود که خواستم ببینم راه حلی داره یا نه، اما بذارید من یه فایل نمونه دیگه آماده میکنم بعد دربارش نظر میدیم
            ممنون

            کامنت

            • abootorab

              • 2014/10/17
              • 351

              #7
              با درود مجدد
              جناب استاد پارسا این بار فایل نمونه رو کامل تر پیوست کردم و درها رو باز کردم:D
              تو فرم A برای کلید "برو به فرم B" و برای رویداد QueryClose فرم A دقیقا کد شبیه هم نوشتم، همچنین تو فرم B برای کلید "بازگشت به فرم A" و رویداد QueryClose فرم B کدها شبیهند
              چرا کلیدها کارشون را به خوبی و به هر تعداد بار که بخواهیم انجام میدن اما ضربدر قرمز گوشه فرم ها (رویدادهای QueryClose) فقط یک بار عمل میکنند و برای دفعات بعدی هیچ عکس العملی نشون نمیدن؟؟ در حالیکه کداشون شبیه کدهای کلیدهاست!!
              امیدوارم این بار خواسته ام واستون واضح تر باشه، پیشاپیش ممنون
              فایل های پیوست شده

              کامنت

              • misammisam
                مدير تالار حسابداری و اکسل

                • 2014/04/04
                • 892
                • 64.00

                #8
                اینو نگفتی :
                چرا میخوای ShowModal فرمت True باشه !؟

                [CENTER][SIGPIC][/SIGPIC]
                [/CENTER]
                [CENTER][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][FONT=Tahoma][INDENT]
                [CENTER][SIZE=3][URL="https://affstat.adro.co/click/adf04053-f8a6-439a-9ac4-e6a7e6f4b455"][B]اينجا كليك نكنيا ![/B][/URL][/SIZE]
                [/CENTER]
                [/INDENT]

                [/FONT][/FONT][/FONT][/FONT][/FONT]
                [/CENTER]

                کامنت

                • abootorab

                  • 2014/10/17
                  • 351

                  #9
                  نوشته اصلی توسط misammisam
                  اینو نگفتی :
                  چرا میخوای ShowModal فرمت True باشه !؟

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

                  کامنت

                  • Ali Parsaei
                    مدير تالارتوابع اکسل

                    • 2013/11/18
                    • 1522
                    • 71.67

                    #10
                    اينکه چرا کد نوشته شده براي دگمه قرمز فقط يک بار کار مي کند من هم نفهميدم
                    ولي تنها توجيه قابل قبول براي کار شما ايجاد عدم امکان دسترسي کاربران به محيط اکسل است.
                    خوب چرا دگمه قرمز را قفل نمي کنيد؟
                    فايل زير را نگاه کنيد، من فرمها را تمام صفحه کردم، اکسل را هم فول اسکرين کردم و دگمه قرمزها را هم قفل کردم..... ببينيد به درد مي خورد؟
                    فایل های پیوست شده
                    [SIGPIC][/SIGPIC]

                    کامنت

                    • abootorab

                      • 2014/10/17
                      • 351

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

                      کامنت

                      • majid_mx4

                        • 2012/06/25
                        • 699

                        #12
                        با سلام

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


                        با تشکر میر
                        فایل های پیوست شده
                        Last edited by majid_mx4; 2014/12/26, 10:30.

                        کامنت

                        • abootorab

                          • 2014/10/17
                          • 351

                          #13
                          نوشته اصلی توسط majid_mx4
                          با سلام

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


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

                          کامنت

                          • امين اسماعيلي
                            مدير تالار ويژوال بيسيك

                            • 2013/01/17
                            • 1198
                            • 84.00

                            #14
                            با درود
                            اول اینکه به نظر بنده چرا عمل نمیکنه واسه دومین بار چون عمل ایونت ما هنوز به پایان نرسیده و تا زمانی که فرم کاملا بسته نشده این ایونت هنوز داره اجرا میشه و اما واسه عدم دسترسی به شیت که راه زیاده . حتی این روش شما هم میتونه راه درو داشته باشه و به شیت ها دسترسی داشت. شما میتونی ماژوا رو روی false بزاری و از همون ابتدای باز شدن اکسل فایل اکسل کاملا مخفی بشه و فقط با یوزر فرم ها کار کنی و اجازه باز شدن هیچ فایل اکسلی رو تا زمان اینکه کاربر با این فایل کار میکنه رو ازش بگیری. و اگر میخواد شیت اکسل رو ببینه براش یوزر و پسورد تعریف کنی. در کل اون عمل نکردنه به خاطر تموم نشدن ایونت مورد نطر هستش به نظر بنده.
                            در پناه خداوندگار ایران زمین باشید و پیروز

                            کامنت

                            • majid_mx4

                              • 2012/06/25
                              • 699

                              #15
                              با سلام مجدد

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

                              با تشکر میر
                              فایل های پیوست شده

                              کامنت

                              چند لحظه..