مقداردهی به چند کمبوباکس وابسته در فرم

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

    • 2018/11/26
    • 13
    • 44.00

    پرسش مقداردهی به چند کمبوباکس وابسته در فرم

    سلام
    یه فرم طراحی کردم(البته فعلا به صورت نمونه هستش) زمانی که در combobox رتبه یک مورد انتخاب شد بلافاصله در کمبو باکس نام ، لیست افراد اون رتبه ظاهر میشه. بعد که اسم شخص مورد نظرما انتخاب شد ، در combobox ملی کد ملی اون شخص اتوماتیک مشخص بشه . و بعد با زدن دکمه ثبت هر بار در شیت دیگری این اطلاعات ذخیره میشه.

    ولی متاسفانه در combobox سومی این اتفاق رخ نمیده و نمیدونم اشکال کار کجا هستش.
    و مورد بعدی اینکه نحوه مقداردهی به این چندتاcombobox باید به چه صورتی باشه که مقدارشون با توجه به آیتم هر combobox درست در بیاد. با تشکر

    فایل نمونه پیوست شد
    فایل های پیوست شده
  • hadi1980

    • 2019/01/07
    • 237
    • 86.00

    #2
    سلام
    اول بزاريد بگم مشکلتان چي بود
    1- براي کامبو باکس لازم بود آيتم تو اون کامبو باکس سوم هم add بشه که يادتون رفته بود.
    2- براي ايجاد داده ها در شيت 2 هم مشکل استفاده از End(xlDown).Row هست چراکه وقتي سلول a1 خالي باشه ميره تا پايين به سلول يک ميليون و خورده اي و برنامه ران نميشه
    برنامه رو براتون اصلاح کردم بشرح ذيل و فايلش ضميمه شد
    1- چون ممکن بود چند تا رتبه يک داشته باشيد الان الگوريتم اينجوريه که کاربر اول رتبه رو انتخاب ميکنه بعد اگه يه دونه از اون رتبه باشه که اتوماتيک همه کامبوهاي ديگه (نام و کد ملي)​پر ميشه و اگه چند تا باشه فقط آيتمهاي کامبوي نام اضافه ميشوند. بعد بايد کاربر از کامبوي نام ، اسم موردنظرشو انتخاب کنه و با توجه به اون (با change کامبو 2) کامبوي کد ملي مقدار دهي ميشه البته اگه دو نفر با يه نام و يه رتبه داشته باشيم کامبوي سوم ميشه همه کدملي اون دو نفر و کاربر بايد يکيشون رو انتخاب کنه
    2- براي خروجي گرفتن هم از يک for براي پيدا کردن موقعيت اولين رديف خالي استفاده کردم و براي اينکه کاربر اذيت نشه شيت هم عوض (activate) نميکنم
    اگه نکته ديگه اي مونده و يا درخواست ديگري داريد هم پيام بديد
    موفق باشيد
    هادي
    فایل های پیوست شده

    کامنت

    • kia97

      • 2018/11/26
      • 13
      • 44.00

      #3
      سلام
      خیلی ممنون از کمک و توضیحات مو به مو و دقیقت
      اما دو تا سوال دارم
      1- تو فایل ضمیمه چندتا دیگه کمبو باکس هم وجود داشت(ردیف های بعدی) که دادهای داخلیش باید مثل ردیف اولی باشه که خودت زحمتشونو کشیدی اون کمبوباکسها به چه صورتی مقدار دهی میشوند؟
      2- این سوال برای افزایش اطلاعات خودم می پرسم. اگردر شیت لیست به فرض شخصی با نام رضا مثلا 3 بار همه اطلاعاتش تکراری وارد شده بود ، باعث میشه که سه تا اسم و کد ملی یکسان به ما نشون داده بشه یعنی به هیچ نحوی نمیشه خودش تشخیص بده که فقط یه مورد در کمبوباسهای نام و کد ملی نشون بدهد؟درواقع تکراری فقط یک بار نشون بده
      با تشکر فراوان

      کامنت

      • hadi1980

        • 2019/01/07
        • 237
        • 86.00

        #4
        سلام مجدد
        سلامت باشيد
        1- عين همون کد رو براي کامبو باکسهاي ديگه هم کپي کنيد. يعني براي change کامبو باکس اول و دوم از هر رديف بايد عين اون دو تا کد که الان تو برنامه هست رو کپي کنيد
        2- راستش اين سه تا حالت داره
        اول اينکه اگه مشخصات تکراري تو اطلاعات شيت اول وارد شده باشه و بخواهيم برنامه با صدازدن فرم و مقدار دهي کامبوباکسها کنترلش کنه نياز به برنامه نويسي و اصلاح کدي که نوشتم داره
        دوم اينکه اگه بخواهيم اصلا کاربر نتونه اطلاعات تکراري تو شيت اول وارد کنه شايد بشه با validation گذاشتن کاري کرد البته چون سه تا ستون مختلف هست کمي پيچيده ميشه
        سوم اينکه کاربر اطلاعات تکراري نوشته باشه ولي مثلا با اجراي يه دکمه، ابتدا اين تکراريها بررسي و حذف بشوند که اين يه کد جديد ميخواد
        بهرحال هرسه تاي اون قابل کدنويسي هست اگه بخواهيد (چونکه گفتين فقط براي اطلاعات پرسيديد کدنويسي نکردم و فقط حالات ممکن رو تشريح کردم)
        موفق باشيد
        هادي

        کامنت

        • hadi1980

          • 2019/01/07
          • 237
          • 86.00

          #5
          سلامت باشيد
          فايل اصلاح شده را ضميمه کردم
          ضمنا کامبوهاي رديف چهارم هم برنامه نداشت که براش کپي کردم
          و ضمنا فقط اگر هر سه کامبوي هر رديف پر بودند در صفحه دوم ثبت ميشوند
          فایل های پیوست شده

          کامنت

          • kia97

            • 2018/11/26
            • 13
            • 44.00

            #6
            خیلی ممنون و تشکر فراوان

            کامنت

            چند لحظه..