PDA

View Full Version : سوال: به روز شدن مقدار پيش فرض يك فيلد در فرم در عين تغيير دادن به عدد دلخواه



abdoreza57
شنبه 13 اسفند 1390, 21:28 عصر
سلام

آيا راهي وجود داره كه تو يك فيلد مقدار محاسبات انجام شده را به صورت دستي وارد كنيم يعني محاسبات انجام بشه ولي در نهايت قادر باشيم همون فيلد را مقدار دهي نماييم ؟

اگر بخواهيم مقدار پيش فرض يك فيلد را برابر مجموع چند فيلد تو اون فرم قرار دهيم چه روشي مناسب هست؟

از آنجا كه مقدار وادشده تو فرم توسط كاربر را لازم دارم لذا با يك روش ابتدايي براي محاسبه مقدار پيش فرض روش موجود تو ضميمه را انجام دادم منتها مشكل اينه كه با وارد شدن مقادير تو فيلد ها مقدار پيش فرض آبديت نميشه و تو همون مقدار اوليه باقي ميمونه !

من ميخوام تو يه فيلد مقادير محاسبه بشه سپس اين عدد يا ثبت بشه و يا بتونيم به عدد دلخواه تغييرش بديم
منتظر جواب دوستان هستم ممنون

Abbas Amiri
شنبه 13 اسفند 1390, 22:05 عصر
همان چیزهایی که داخل تکست باکس نوشته اید را در Default Value آن قرار دهید وتکست باکس را خالی کنید

بهزادانلاین
شنبه 13 اسفند 1390, 22:10 عصر
سلام نمونه اصلاح گردید ملاحظه بفرمائید.

abdoreza57
شنبه 13 اسفند 1390, 23:47 عصر
سلام

ممنون از توجهتون ولي
همان چیزهایی که داخل تکست باکس نوشته اید را در Default Value آن قرار دهید وتکست باکس را خالی کنید
تو اين حالت با وارد كردن اعداد تو فيلدهاي محاسباتي همون مقدار اوليه را نشون ميده
در واقع ميخواهم همون فيلد مورد نظرم كه در ايننجا mozd هست همانند تكست Jam مقادير را نشون بده با اين تفاوت كه بشه مقدار دلخواه را هم به فيلد mozd داد
همون روش را از قبل انجام دادم ولي با به صورت پيش فرض ميمونه و تغيير هم نميكنه !

مونه اصلاح گردید ملاحظه بفرمائید.
دوست من ممكنه برخي از فيلدها همون صفر بمونه پس تغيير نميكنه لذا دستو on change اجرا نشده و نصف شرط محقق نخواهد شد ضمن اينكه هدفم ايجاد عمليات روي فيلد mozd هست و بقيه تكست ها را من براي راحتي و حل مسئله ايجاد نموده بودم

عزيزان اگه كسي راهي به نظرش ميرسه منتطر راهنمايي هستم

Abbas Amiri
یک شنبه 14 اسفند 1390, 00:15 صبح
شاید درست متوجه نشده ام ولی :


Private Sub Form_Current()
If mozd = 0 Then
mozd = ([Shalvar] * [adads]) + ([Piran] * [adadp]) + ([Kot] * [adadk])
End If
End Sub

abdoreza57
یک شنبه 14 اسفند 1390, 14:09 عصر
سلام

جناب اميري همين را ميخواهم ولي شرط همون لحظه محقق نميشه ! و با پر كردن فيلد هاي adads adadp adadk تغييري تو فيلد mozd بوجود نمياد! مگر اينكه فرم را بسته و مجددا باز كنم !
ميشه تغييري بديد كه هنگام وارد كردن مقادير adads adadp و ... نتيجه تو فيلد مزد نمايش داده بشه ؟


يه توضيح براي اينكه كاملا توجيه شيد : تو فرم ارائه شده فيلد mozd برابر است با مقداري كه تو پست بالا شما هم به اون اشاره فرمودبد منتها در برخي مواقع اين رقم لازم است افزايش يا كاهش يابد لذا ميخواهم در عين اينكه حاصل جمع را محاسبه مي نمايد بتوان اين عدد ار تغيير هم داد يعني يا همان مقدار تو ركورد بمونه يا عددي كه وارد ميشه

ARData
یک شنبه 14 اسفند 1390, 15:52 عصر
همونطوري که شما خواسته ايد :

abdoreza57
یک شنبه 14 اسفند 1390, 16:06 عصر
سلام

ظاهرا اشتباه آب كرديد چون با نمونه اول هيچ توفيقي نداره ضمن اينكه

ميشه تغييري بديد كه هنگام وارد كردن مقادير adads adadp و ... نتيجه تو فيلد مزد نمايش داده بشه ؟
با كد دوست عزيزمون دقيقا خواسته برآورده ميشه منتها همانطور كه گفتم تو فرم جاري اعمال نميشه بلكه بايد فرم باز و بسته بشه !
در ضمن منظورم فيلد mozd بود و نه چيز ديگري لذا اگر با توضيحاتم نتونستم منظورم را به خوبي بروسونم عذر ميخوام

Abbas Amiri
یک شنبه 14 اسفند 1390, 17:32 عصر
عبارت داخا Form_Current را در AfterUpdate کنترلهای مورد نظر کپی کنید

abdoreza57
یک شنبه 14 اسفند 1390, 21:50 عصر
سلام

واقعا ممنون خيلي وقت بود فكرمو مشغول كرده بود حل شد البته كد بايد از حالت شرطي خارج ميشد يعني به صورت زير در بياد

mozd = ([Shalvar] * [adads]) + ([Piran] * [adadp]) + ([Kot] * [adadk])