مشکل در تابع سرچ و انجام سرچ مجدد

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

    • 2013/12/13
    • 74

    مشکل در تابع سرچ و انجام سرچ مجدد

    سلام دوستان
    من میخوام در فایل نمونه پیوست وقتی فرم (با زدن دکمه commandButton موجود در شیت1) نمایش داده میشه با نوشتن 2 رقم از شماره کارگزینی ( مثلا 50) در تکست باکس وسط و ردن کلید Enter بره در شیت1 بگرده و اولین شماره کارگزینی که 50 داره رو پیدا کنه و اطلاعاتش رو در تکست باکس های دیگه نمایش بده

    و در ادامه با زدن هربار Enter شماره کارگزینی های بعدی رو که 50 داره پیدا کنه و نمایش بده

    ولی 2 تا مشکل دارم

    1- نمیدونم کدش رو چه جوری بنویسم که بعد از پیدا کردن اولی با ردن مجدد Enter ، بعدی ها رو هم پیدا کنه ( با کدی که من نوشتم فقط اولی رو پیدا میکنه ) . من کد رو در userform2 نوشتم که میتونید ملاحظه کنید و event اش رو هم Exit از تکست باکس2 گذاشتم .

    2- اگر عدد دو رقمی که در تکست باکس2 مینویسم اصلا وجود نداشته باشه باگ میده ( من میخوام به جای باگ پیغام بده که چنین عددی وجود ندارد )


    ممنون میشم راهنمایی کنید

    khata dar search1.xlsm
  • Javid Mokhtari
    مدير تالار ويژوال بيسيك

    • 2012/01/16
    • 1212
    • 73.00

    #2
    با سلام.
    فایل های پیوست شده
    [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
    بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

    شرکت در دوره:
    [/FONT][/SIZE]
    [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
    [/B][/FONT][/SIZE]
    [/CENTER]
    [/INDENT]
    [/FONT]

    کامنت

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

      • 2013/11/18
      • 1522
      • 71.67

      #3
      سلام،
      به رويداد Initialize فرم کد TextBox2.SetFocus را هم اضافه کنيد کارتان راحت تر و شکيل تر مي شود
      [SIGPIC][/SIGPIC]

      کامنت

      • hs208

        • 2013/12/13
        • 74

        #4
        سلام مجدد
        با تشکر از آقای jansiz hayat جواب شما تقریبا جوابی بود که من میخواستم فقط هنوز 2 تا مشکل دارم

        مشکل اول: من دو رقم رو به عنوان مثال نوشتم ولی بعضی وقت ها 3 یا چهار رقم( و یا بیشتر و کمتر ) از شماره ای رو که دنبالش هستم مینویسم . آیا میشه کد شما رو جوری نوشت که اگر تعداد رقم ها کمتر یا بیشتر از دو رقم بود هم جواب بده ؟ ( البته الان هم اگر 3 یا 4 رقم بنویسم جواب میده ها ولی فقط دو رقم از چیزی که نوشتم رو در نظر میگیره

        مشکل دوم : الان در کد شماباید 2بار Enter زده بشه تا سرچ بعدی انجام بشه
        به عبارت دیگر با زدن Enter از TextBox2 که شماره کارگزینی رو نوشتم خارج میشه و TextBox1 انتخاب میشه و اگر مجدد Enter رو بزنم کار سرچ رو انجام میده. آیا میشه کاری کرد کرد که روی TextBox2 بمونه و فقط با هر بار زدن Enter مورد بعدی سرچ بشه و نمایش داده بشه؟


        و همچنین از شما آقای پارسا تشکر میکنم ولی باید عرض کنم که من زیاد برنامه نویسی بلد نیستم و متوجه نشدم از راهنمایی تون چه جوری باید استفاده کنم . آیا امکان داره خودتون زحمت انجامش رو بکشید و فایل نمونه رو قرار بدید؟ ( اگه امکان داره به 2 مورد بالا هم توجه کنید )

        بسیار بسیار از لطف شما دوستان بزرگوار ممنونم

        کامنت

        • hs208

          • 2013/12/13
          • 74

          #5
          سلام دوستان
          با تشکر از دوست عزیز آقای پارسا کد TextBox2.setfocus رو اضافه کردم و جالبتر شد. به محض باز شدن فرم تکست باکس دوم به صورت پیش فرض برای نوشتن انتخاب میشود. ولی در کل میشه توضیح بدین که کد setfocus کارش چیه؟

          و دوستان دیگر خصوصا آقای Jansiz hayat که لطف کردید جواب اول رو گذاشتید آیا برای دو مورد مشکلی که در بالا (4#) مطرح کردم راه حلی وجود داره ؟ کارم خیلی گیر کرده ممنون میشم راهنمایی کنید

          کامنت

          • generalsamad
            مدير تالار توابع

            • 2014/06/22
            • 1496

            #6
            با سلام
            در مورد سوالی که فرمودید کد setfocus کارش چیه؟
            تو محیط برنامه نویسی به زبانهای دیگه کارش اینه که وقتی یه دکمه رو میزنید خط چشمک زن ماوس کجا بره
            مثلا focus دکمه Enter رو میشه جوری تنظیم کرد که با زدن هر بار Enter بین تکست باکسها یا هر شی دیگه که ایجاد کردیم سویچ (جابجا) کرد
            مثل عمکرد دکمه Tab ، که این جابجائی به Index اون اشیاء بستگی داره که اولویت با اونهائی هست که شماره Index پائینی دارند

            که فکر کنم کار این کد در VBA همین باشه
            [CENTER]
            [SIGPIC][/SIGPIC]
            [/CENTER]

            کامنت

            • Javid Mokhtari
              مدير تالار ويژوال بيسيك

              • 2012/01/16
              • 1212
              • 73.00

              #7
              نوشته اصلی توسط hs208
              سلام مجدد
              با تشکر از آقای jansiz hayat جواب شما تقریبا جوابی بود که من میخواستم فقط هنوز 2 تا مشکل دارم

              مشکل اول: من دو رقم رو به عنوان مثال نوشتم ولی بعضی وقت ها 3 یا چهار رقم( و یا بیشتر و کمتر ) از شماره ای رو که دنبالش هستم مینویسم . آیا میشه کد شما رو جوری نوشت که اگر تعداد رقم ها کمتر یا بیشتر از دو رقم بود هم جواب بده ؟ ( البته الان هم اگر 3 یا 4 رقم بنویسم جواب میده ها ولی فقط دو رقم از چیزی که نوشتم رو در نظر میگیره

              مشکل دوم : الان در کد شماباید 2بار Enter زده بشه تا سرچ بعدی انجام بشه
              به عبارت دیگر با زدن Enter از TextBox2 که شماره کارگزینی رو نوشتم خارج میشه و TextBox1 انتخاب میشه و اگر مجدد Enter رو بزنم کار سرچ رو انجام میده. آیا میشه کاری کرد کرد که روی TextBox2 بمونه و فقط با هر بار زدن Enter مورد بعدی سرچ بشه و نمایش داده بشه؟


              و همچنین از شما آقای پارسا تشکر میکنم ولی باید عرض کنم که من زیاد برنامه نویسی بلد نیستم و متوجه نشدم از راهنمایی تون چه جوری باید استفاده کنم . آیا امکان داره خودتون زحمت انجامش رو بکشید و فایل نمونه رو قرار بدید؟ ( اگه امکان داره به 2 مورد بالا هم توجه کنید )

              بسیار بسیار از لطف شما دوستان بزرگوار ممنونم
              دوست عزیز از یه روش دیگه استفاده کردم ببینید اگه مورد پسند نبود همون روش خودتون رو انجام بدیم.
              و اما نحوه کار فایل:
              شما عددی رو در گزینه "مورد جست و جو" وارد می کنید وحین اینکه عدد وارد می شود در گزینه "شماره کارگزيني" تمامی اعداد موجود در لیستی که شامل عدد مورد جست و جوی شما باشد ; اضافه می گردد که با استفاده از کلید های پیمایش بالا و پایین و یا باز کردن لیست کرکره ای می توانید بین اعداد پیدا شده پیمایش داشته باشین.
              در مورد
              SetFocus
              دوست عزیزمون generalsamad توضیح دادن.خیلی ساده بگم
              SetFocus میگه که کدام گزینه باید فعال باشه یا اینکه فرمان رو به دست بگیره.
              تو همین فرم خودمون زمانی که می نویسیم Textbox2.
              SetFocus یعنی اینکه زمانی فرم اجرا می شود Textbox2 باید در حالت اانتخاب شده قرار بگیرد تا عملیاتی بر روی آن انجام گیرد.
              فایل های پیوست شده
              Last edited by Javid Mokhtari; 2015/04/29, 00:46.
              [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
              بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

              شرکت در دوره:
              [/FONT][/SIZE]
              [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
              [/B][/FONT][/SIZE]
              [/CENTER]
              [/INDENT]
              [/FONT]

              کامنت

              چند لحظه..