PDA

View Full Version : روش انجام اتوماتيك تغيير اطلاعات يك فيلد



unforgiven
چهارشنبه 25 فروردین 1389, 19:42 عصر
سلام دوستان
براي صنف خاصي برنامه اي نوشتم و تحويل دادم و مشكلي هم خدا رو شكر بعد از 1.5 به وجود نيامده . كارفرما خواسته يه امكان به اون اضافه بشه .
من ليست كل كساني رو كه مي بايست هر ماه مبلغي رو به اتحاديه بپردازند و نپرداختند رو طي محاسبه بدست آوردم و به صورت ليست شده در يك گريد دارم( حتي با شمارش تاخير در پرداخت به صورت روزانه) . حالا كارفرما خواسته كل مشترياني كه مبلغ ماهيانه رو ندادند به صورت اتوماتيك غير فعال بشند . من يك فيلد رو براي غير فعال كردن اين موضوع در نظر گرفتم و كاربر به صورت دستي از تو ليست شماره پرونده را مي بينه و اون رو غير فعال مي كنه - حالا چون تعداد زياد شده خيلي وقت گير شده و مايله اين كار به صورت اتوماتيك انجام بشه .
لطفا يه راه حل مناسب ارايه كنيد .
لازم به توضيح ست كه طريقه انجامش رو با دستور Set update ميدونم . روشي كه به صورت اتوماتيك انجام بشه رو مي خواستم راهنمايي كنيد.
پيشاپيش متشكرم

--------------------------------------------------------------------------------------------------
نمي دونم ديگه چه عنواني بايد براي اين تاپيك بذارم كه مدير بخش حذفش نكنه . من نمي دونم براي يه همچين تاپيكي چه عنواني ميشه استفاده كرد كه هم كوتاه باشه هم منظور رو برسونه
!!!!
مدير محترم اگه پيشنهاد بهتري براي عنوان تاپيك دارن لطفا بگن تا عنوان تاپيك رو تغيير بدم !!!

majjjj
سه شنبه 31 فروردین 1389, 08:38 صبح
اینی که شما فرمودین خیلی کلیه
اگه بانکتون sql هست تو خودش این امکانات رو میتونید پیاده سازی کنید
اگه اکسس هست میتونید تو فرم لود شرط رو برقرار کنید
بقیه بانکهای اطلاعتی هم به همین صورت

unforgiven
سه شنبه 31 فروردین 1389, 16:20 عصر
دوست عزير سلام
بانك مورد نظر اكسس هست .
لطفا اگه راه ديگه اي به ذهنتون ميرسه راهنمايي كنيد.
متشكرم

اوبالیت به بو
چهارشنبه 01 اردیبهشت 1389, 13:31 عصر
من يك فيلد رو براي غير فعال كردن اين موضوع در نظر گرفتم و كاربر به صورت دستي از تو ليست شماره پرونده را مي بينه و اون رو غير فعال مي كنه - حالا چون تعداد زياد شده خيلي وقت گير شده و مايله اين كار به صورت اتوماتيك انجام بشه .
شما لیست اعضا رو در GridView کاربر نمایش می دید. درسته؟
خوب حالا شرط SQL شما یه همچین چیزی میشه:


Update FROM Table Set Status = deActive WHERE UserID=@UserID

این @UserID رو به ترتیب از سطر شماره 1 گرید خودتون مقداردهی کنید. یعنی در ابتدای حلقه نفر اول مقداردهی میشه دستور Execute میشه. دفعه دوم یه نفر دیگه مقدار دهی میشه بعد اجرا میشه....
همین طوری
بعد هم که تو Select افراد Active رو نشون میدین.

a_mohammadi_m
یک شنبه 02 خرداد 1389, 10:40 صبح
با سلام
يه راه حل ديگه
مي تونيد با يك كوئري تركيبي اينكار رو بكنيد
شما الان ليست افرادي رو كه هزينه رو پرداخت نكردن داريد ( مثلا از يك كوئري ديگه ) كافيه كوئري تركيبي اينطوري نوشته بشه
Select * from tblUser where UserId in ( Select * from tblHazine ) f
كه در اون tblUser جدول اصلي كل افراد و tlbHazine جدول افرادي كه هزينه پرداخت نكردن يا كوئري مربوطه
توجه كنيد كه در اين روش از دستورات SQL تو در تو استفاده ميشه ( هر چند تا كه لازم باشه ) و نتيجه دستورات داخلي به عنوان شرط براي دستور نهايي استفاده ميشه
اميدوارم مفيد باشه