PDA

View Full Version : سوال: کمک: چگونه می‌توان در اکسس بوسیله کد نویسی جمع کل یک ستون را محاسبه کرد



alipoor123@gmail.com
یک شنبه 04 مهر 1389, 08:57 صبح
در اکسس یه فیلد عدد دارم می‌خواهم مجموع آن را بدست بیاورم اما وقتی از دستور sum استفاده می‌کنم باید حتما فرم را دوباره open کنم تا مجموع درست شود در حالی که می‌خواهم همان لحظه که یک عدد را تغییر دادم مجموع آن محاسبه شود

jack007
یک شنبه 04 مهر 1389, 11:15 صبح
در اکسس یه فیلد عدد دارم می‌خواهم مجموع آن را بدست بیاورم اما وقتی از دستور sum استفاده می‌کنم باید حتما فرم را دوباره open کنم تا مجموع درست شود در حالی که می‌خواهم همان لحظه که یک عدد را تغییر دادم مجموع آن محاسبه شود
یه نگاهی به این نمونه بنداز عمل جمع و درصد گیری رو بلافاصله انجام می ده اگه مشکلتون حل نشد نمونتون رو آپ کنید

alipoor123@gmail.com
یک شنبه 04 مهر 1389, 12:55 عصر
منظورم این طور نبود، من نمی‌خوام چند تا فیلد رو داخل فرم با هم جمع کنم بلکه می‌خواهم یک فیلدی داشته باشم که مجموع یک ستون از جدول را به من بدهد مانند دستور SUM اما مشکل SUM این است که هر با که عددی را تغییر می‌دهم باید دوباره فرم را ببندم و باز کنم تا مجموع را درست نمایش دهد ولی می خواهم بعد از تغییر یک عدد مجموع را کامل و درست نمایش دهد

alirezabahrami
یک شنبه 04 مهر 1389, 13:17 عصر
منظورم این طور نبود، من نمی‌خوام چند تا فیلد رو داخل فرم با هم جمع کنم بلکه می‌خواهم یک فیلدی داشته باشم که مجموع یک ستون از جدول را به من بدهد مانند دستور SUM اما مشکل SUM این است که هر با که عددی را تغییر می‌دهم باید دوباره فرم را ببندم و باز کنم تا مجموع را درست نمایش دهد ولی می خواهم بعد از تغییر یک عدد مجموع را کامل و درست نمایش دهد
سلام
يا در رخداد AfterUpdate تكست باكسي كه عدد را در آن وارد مي كنيد دستور Me.Requery
بكار ببر يا از dsum استفاده كن!
نمونه را ببين!
موفق باشيد

alipoor123@gmail.com
دوشنبه 05 مهر 1389, 08:41 صبح
عزيز باز هم اوني كه مي‌خواستم نشد اين جمع بايد در هر ساب فرم براي هر فرد جدا باشه براي همين فايل رو برات مي‌زارم زحمتش رو بكش
به تصوير نگاه كن مي‌خواهم نتيجه مجموع فيلد [جمع] ساب فرم هر فرد درون فيلد قرمز رنگ [مجموع پرداخت] درج شود لطفا به اين نكته توجه داشته باشيد كه ساب فرم همه افراد درون يك جدول ذخيره مي‌شود و مشخصات هر فرد درون يك جدول ديگر ذخيره مي‌شود
ايراد راهكاري كه شما گفتيد اين است كه اين مجموع نتيجه جمع پرداختهاي يك فرد نيست بلكه نتيجه جمع كل همه پرداختها به همه افراد است

alirezabahrami
دوشنبه 05 مهر 1389, 09:46 صبح
عزيز باز هم اوني كه مي‌خواستم نشد اين جمع بايد در هر ساب فرم براي هر فرد جدا باشه براي همين فايل رو برات مي‌زارم زحمتش رو بكش
به تصوير نگاه كن مي‌خواهم نتيجه مجموع فيلد [جمع] ساب فرم هر فرد درون فيلد قرمز رنگ [مجموع پرداخت] درج شود لطفا به اين نكته توجه داشته باشيد كه ساب فرم همه افراد درون يك جدول ذخيره مي‌شود و مشخصات هر فرد درون يك جدول ديگر ذخيره مي‌شود
ايراد راهكاري كه شما گفتيد اين است كه اين مجموع نتيجه جمع پرداختهاي يك فرد نيست بلكه نتيجه جمع كل همه پرداختها به همه افراد است
سلام
خواسته شما عمليست،اما متأسفانه اكسس 2007 بر روي سيستم من نصب نيست ؛ در صورت امكان فايل نمونه ات را به 2003 تبديل و مجدداً آن را آپ كن!
موفق باشيد

alipoor123@gmail.com
سه شنبه 06 مهر 1389, 10:22 صبح
عزيز خيلي ممنون فايل 2003 رو برات آبلود مي‌كنم

عزيز دوتا فيلد مجموع پرداختها دارم يكي داخل ساب فرم هست يكي ديگه بيرون از ساب فرم زحمت بكش رو طوري باشه كه هر وقت مقدار فيلد ساعت رو تغيير مي‌دهم تو هر دو فيلد نتيجه مجموع پرداختها رو تو هر دو فيلد داشته باشم (مي‌خواهم هم داخل ساب فرم اعمال بشه هم خارج از ساب فرم چون هر كدام داخل يك جدول جداگانه هستند)

alipoor123@gmail.com
سه شنبه 06 مهر 1389, 10:27 صبح
اينهم خود فايل اكسس 2003 در ضمن اگر موردي ديدي كه بنظر شما آمد به بهتر شدن برنامه كمك مي‌كنه ممنون مي‌شم بهم بگي

alirezabahrami
سه شنبه 06 مهر 1389, 14:58 عصر
عزيز باز هم اوني كه مي‌خواستم نشد اين جمع بايد در هر ساب فرم براي هر فرد جدا باشه براي همين فايل رو برات مي‌زارم زحمتش رو بكش
به تصوير نگاه كن مي‌خواهم نتيجه مجموع فيلد [جمع] ساب فرم هر فرد درون فيلد قرمز رنگ [مجموع پرداخت] درج شود لطفا به اين نكته توجه داشته باشيد كه ساب فرم همه افراد درون يك جدول ذخيره مي‌شود و مشخصات هر فرد درون يك جدول ديگر ذخيره مي‌شود
ايراد راهكاري كه شما گفتيد اين است كه اين مجموع نتيجه جمع پرداختهاي يك فرد نيست بلكه نتيجه جمع كل همه پرداختها به همه افراد است
سلام
براي اينكه جمع ستون هر فرد بطور جداگانه داشته باشيد در رخداد time_AfterUpdate() سابفرم از كد زير استفاده كن !


Me.sum_payment = DSum("[total sum]", "month", "[month]![id] = Forms![specification]![id]")
Me.Requery


ضمناً با توجه به اينكه id در سافرم يكي است ايجاد فيلد sum payment در جلوي هر سطر منطقي نيست ( چون اين حمع براي تمام سطرها تكرار ميشود ) و اين فيلد بايد در بخش form footer سابفرم و زير فيلد total sum ايجاد شود .
موفق باشيد

alipoor123@gmail.com
پنج شنبه 08 مهر 1389, 10:22 صبح
سلام خدمت آقا عليرضا
بايد عرض كنم حرف شما در خصوص اينكه بايد فيلد مجموع را در فرم اصلي قرار دهم درست است اما مشكل آن است كه هر وقت مقدار يك فيلد را تغيير مي‌دهم نتيجه جمعي كه به من در فرم اصلي نمايش داده مي‌شود مربوط به مجموع اعداد قبلي است
مثلا اگر يك فيلد را از عدد 100 به 200 تغيير دهم فيلد ديگر هم 100 باشد بجاي آنكه مجموع حاصل 300 باشد 200 مي‌شود و اگر يك بار ديگر مقدار 200 را به 100 تبديل كنم بجاي آنكه اين بار عدد 200 نشان دهد عدد 300 كه مجموع قبلي است را نمايش مي‌دهد
حالا شما مي‌فرماييد براي حل اين مشكل چكار كنم

alirezabahrami
پنج شنبه 08 مهر 1389, 11:21 صبح
سلام
براي اينكه جمع ستون هر فرد بطور جداگانه داشته باشيد در رخداد time_AfterUpdate() سابفرم از كد زير استفاده كن !


Me.sum_payment = DSum("[total sum]", "month", "[month]![id] = Forms![specification]![id]")
Me.Requery


ضمناً با توجه به اينكه id در سافرم يكي است ايجاد فيلد sum payment در جلوي هر سطر منطقي نيست ( چون اين حمع براي تمام سطرها تكرار ميشود ) و اين فيلد بايد در بخش form footer سابفرم و زير فيلد total sum ايجاد شود .
موفق باشيد
سلام
ظاهراً به پيشنهاد بالا عمل نكرديد!
درسته؟

mehdi_fiz
شنبه 10 مهر 1389, 11:32 صبح
سلام دوست عزیز
نمونه فایل شما اصلاح شد
موفق باشید

mahdimahoti
پنج شنبه 04 دی 1399, 17:00 عصر
سلام ما چند ستون داریم که می بایست در هر ستون عدد وارد کنیم و هر ستون یک جمع دارد و می بایست در تمامی ستون جمع ها جمع ما یکسان و یک عدد باشد چه کار کنیم اگر جمع ها یکی نبود به ما پیغام خطا بدهد

padide55
پنج شنبه 04 دی 1399, 17:37 عصر
در فرم مربوطه از if استفاده کنید . در یک فیلد .در فوتر فرم . در قسمت data



=iif((txt1=txt2) and (txt1=txt3) and (txt1 =txt4),yes,0)

اگر جمع ها مطابقت داشت .درسته وگرنه ۰ بگذار

و یا یک باتن بگذارید با این کد



if (txt1=txt2) and (txt1=txt3) and (txt1 =txt4) then
msgbox "ok"
else
msgbox "sum error"
endif

Shahramdindoust
جمعه 05 دی 1399, 17:31 عصر
سلام خدمت آقا عليرضا
بايد عرض كنم حرف شما در خصوص اينكه بايد فيلد مجموع را در فرم اصلي قرار دهم درست است اما مشكل آن است كه هر وقت مقدار يك فيلد را تغيير مي‌دهم نتيجه جمعي كه به من در فرم اصلي نمايش داده مي‌شود مربوط به مجموع اعداد قبلي است
مثلا اگر يك فيلد را از عدد 100 به 200 تغيير دهم فيلد ديگر هم 100 باشد بجاي آنكه مجموع حاصل 300 باشد 200 مي‌شود و اگر يك بار ديگر مقدار 200 را به 100 تبديل كنم بجاي آنكه اين بار عدد 200 نشان دهد عدد 300 كه مجموع قبلي است را نمايش مي‌دهد
حالا شما مي‌فرماييد براي حل اين مشكل چكار كنم
جسارت نباشه بعضی وقتها excel بعضی مشکلات رو راحت تر حل میکنه