PDA

View Full Version : سوال: ذخيره متن ليبل در صورت انتخاب چك باكس مربوطه



mosen20
پنج شنبه 04 مهر 1392, 10:21 صبح
سلام دوستان و اساتید خسته نباشید((((((( ویژوال بیسیک ))))))
دوستان من ی برنامه میخام بسازم vb6 که دارای تعداد زیادی چک باکس و لیبل هست :میخام وقتی رو چک باکس تیک میزنم لیبل مربوط به چک باکسم تو دیتا بیس ذخیره بشه.

http://upload7.ir/images/31827135168790017890.jpg

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

vbhamed
شنبه 06 مهر 1392, 15:45 عصر
سلام
بهترين روش اينه :

1 - يك جدول عناوين درست كنيد و يك فيلد Id كه كليد اصلي هم هست و يك فيلد Name توش بزاريد سپس از Id شماره 1 تا تعداد چك باكس ها مقداردهي كنيد و Name هر ركورد رو هم برابر نام ليبل بزاريد
2 - به هر چك باكستون يك Index اختصاص بدين كه برابر Id در جدول باشه
3 - يك فيلد TypeId در جدول اصلي كه اطلاعاتتون ذخيره ميشه ايجاد كنيد از نوع Long
4 - يك ارتباط يا Relation از نوع يك به چند بين فيلد TypeId جدول اصلي و فيلد Id جدول عناوين ايجاد كنيد كه از سمت Id يك و از سمت TypeId چند باشه (منظور همون 1 به چند)
5 - موقع ذخيره در جدول به جاي متن ليبل، شماره انديس چك باكس رو ذخيره كنيد
6 - يك كوئري در بانك براساس دو جدول اصلي و جدول عناوين بسازيد
7 - با نمايش اين كوئري و استفاده از اون در برنامه مي‌تونيد عنوان مربوط به هر آيدي رو ببينيد يعني ستون Name

به جاي اينكه فيلدها يا چك باكس ها رو مستقيما به كنترل ديتا وصل كنيد مي‌تونيد از اتصال به روش كدنويسي استفاده كنيد تا بتونيد به جاي چك باكسهاي انتخاب شده انديس اونها رو يادداشت كنيد كه نمونه اينكار يعني اتصال به بانك با كدنويسي، تو سايت زياده

البته روش بالا براي وقتي خوبه كه از اين چك باكس ها فقط يكي انتخاب ميشه و اگر تعداد بيشتري همزمان انتخاب بشه بايد در جدول اوليتون فيلدهاي TypeId1, TypeId2, ... داشته باشيد و همشون رو به Id جدول عناوين ارتباط بدين يا اينكه چك باكسهاي انتخاب شده رو در يك جدول ديگه ثبت كنيد كه دردسرش بيشتره

اينطوري براي هر ركوردي كه ثبت ميشه لازم نيست تمام عناوين هم مجددا ثبت بشه و از افزونگي بيهوده داده ها جلوگيري ميشه

mosen20
دوشنبه 08 مهر 1392, 14:37 عصر
خیلی خیلی ممنونم لطف کردین جواب دادین. فقط کمی پیچیده بود. من در حد شما حرفه ای نیستم ا این وجود مرسی.