الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

*فورم* كيف يتم إستخراج عدد الأقساط بواسطة الكود

مغلق
بدأه مصلح الحريصي في 27 يونيو 2002 · 16 رد · 2,886 مشاهدة · في قسم الأرشيف و المواضيع المميزه
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأفاضل

قمت بعمل مثال بسيط وصغير جداً على فيجول بيسك وليس أكسيس وهو خاص بالتقسيط ووظيفة هذا المثال هي :

عندما يدخل المستخدم ثمن البيع والمقدم ثم القسط الشهري يقوم الكود بإستخراج عدد الأقساط0

هذا أمر يسير ولكن لاحظ أنه كلما كتبت رقماً يتغير عدد الأقساط دون نقل التركيز 0 عموماً أطلعوا على المثال ويوجد عليه شرح كامل على نفس النموذج0

السؤال 0

هل بالإمكان عمل ذلك على الأكسيس لقد حاولة عدة محاولات ولكن دون فائدة حيث تظهر لي رسالة مضمونها " لا يمكن تخصيص قيمة لعنصر لا يمتلك التركيز "

أرجو ممن يستطيع عمل ذلك على الأكسيس أن يخبرنا بالطريقة0

" لكم فائق إحترامي وتقديري "

المثال موجود على الرابط التالي:

http://mypage.ayna.com/mrsalnet/Aksat.zip

#2

أنشئ نموذجا فيه أربع مربعات نص غير منضمة . بالأسماء :

Txt1 Txt2 Txt3 Txt4

ثم اجعل في خصائص مربعات النص الثلاثة الأولى الحدث التالي عند التغيير :

Private Sub Txt1_Change()
If IsNull(Me.Txt1.Text) Or Me.Txt1.Text = "" Then Exit Sub
[Txt4] = ([Txt1].Text - [Txt2]) / [Txt3]
End Sub

Private Sub Txt2_Change()
If IsNull(Me.Txt2.Text) Or Me.Txt2.Text = "" Then Exit Sub
[Txt4] = ([Txt1] - [Txt2].Text) / [Txt3]
End Sub

Private Sub Txt3_Change()
If IsNull(Me.Txt3.Text) Or Me.Txt3.Text = "" Then Exit Sub
[Txt4] = ([Txt1] - [Txt2]) / [Txt3].Text
End Sub

فائدة :

خاصية text يتم استخدامها لتحديد البيانات المعروضة حاليا في عنصر التحكم عندما يكون التركيز عليه .

#3

برافو عيك يا أخ حارث هذا رائع

لدي ملاحظة بسيطة وهي:

في المثال المعد على فيجول أكتب ثمن البيع ( 75000 ) ألف والمقدم ( 5000 ) والقسط الشهري ( 1500 ) فيظهر لي عدد الأقساط ( 47 ) وهذا صحيح لأن فيه قسط أخير وهو ( 1000 ) بينما في المثال الذي أوردته عند تطبيق عليه ما سبق تصبح عدد الأقساط ( 46 ) والو ضربنا ( 46 ضرب 1500 =69000) وبقي ( 1000 ) فما الحل بارك الله فيك0

#4

لا أعرف الدالة التي تقوم بتقريب الأعداد الموجبة التي تحتوي على كسور لأعلى.

وننتظر إفادة بقية الإخوة .

حل مؤقت :

Private Sub Txt1_Change()
Dim MyNumber
If Me.Txt1.Text = "" Then
MyNumber = Null
Else
MyNumber = ([Txt1].Text - [Txt2]) / [Txt3]
End If
If MyNumber < 0 Then MyNumber = Null
[Txt4] = Abs(Int(Abs(MyNumber) * -1))
End Sub

Private Sub Txt2_Change()
Dim MyNumber
If Me.Txt2.Text = "" Then
MyNumber = Null
Else
MyNumber = ([Txt1] - [Txt2].Text) / [Txt3]
End If
If MyNumber < 0 Then MyNumber = Null
[Txt4] = Abs(Int(Abs(MyNumber) * -1))
End Sub

Private Sub Txt3_Change()
Dim MyNumber
If Me.Txt3.Text = "" Then
MyNumber = Null
Else
MyNumber = ([Txt1] - [Txt2]) / [Txt3].Text
End If
If MyNumber < 0 Then MyNumber = Null
[Txt4] = Abs(Int(Abs(MyNumber) * -1))
End Sub
#5

أخي حارث

مجهود تشكر عليه الله يعطيك العافيه

لقد قمت ببعض التعديلات على الكود حتى اصبح كالتالي:

 txt4 = (Val(txt1) - Val(txt2)) / Val(txt3.Text)
If Val(txt4) > Int(Val(txt4)) Then txt4 = Int(Val(txt4) + 1)

وهذه الطريقة ربما تكون مفيدة بعض الشيء

أكرر شكري لك

#6

الأخ مصلح :

أنا جربت عن طريق الاستعلام بالأكسيس وطلعت النتيجة 47 حسب أرقامك التي ذكرتها . يا ترى هل هذا قصدك .

أشرف خليل

#7

الأخ مصلح :

طريقتك أفضل وأقل تعقيدا .

والسؤال باقي : ألا يوجد دالة تقوم بتقريب الرقم الموجب لأعلى .

الأخ أشرف :

جرب أن تجعل الدفعة الأولى: 5500 .

#8

يوجد فى الاكسيل دالة تسمي

ROUNDUP

و لكنها غير متاحة فى الكود

و للتغلب علي ذلك يمكنك عمل دالة مناظرة و استخدامها

Function ROUNDITUP(MYNO)
 If MYNO - Int(MYNO) > 0 Then
  ROUNDITUP = Int(MYNO) + 1
 Else
  ROUNDITUP = MYNO
 End If
End Function

counter2001.cgi?558002

#9

الأخوة الكرام

لكم مني جزيل الشكر والله اسأل ان يجعل ما تقدمونه في موازين حسناتكم 0

زادكم الله علماً ونفعكم الله بما تعلمتم ونالفريق العربي للبرمجةكم

#10

الأخوة الأفاضل

أرجو التكرم بالإطلاع على هـذا الرابـط

حيث قام المبدع "أبو حمود" بتصميم برنامج "لجمعية خيريه"

ويوجد به كود يتعلق بعض الشىء بحساب عدد الأقساط ومجموعها ، ويمكن إنزال البرنامج من هـذه الوصلـة

أرجو من الله أن يفيدكم بشىء.

والله الموفق.

ibnmusqat.gif
#11

اخي الفاضل

الموقع رفض أن يفتح معي وكذلك المثال كلما حاولة تحميلة تظهر لي رسالة بعدم العثور على المثال0

إذا كان لديك المثال ياليت أن تضع له رابطاً0

تحياتي لك

#12

أخي الكريم/ مصلح الحريصي

لإنزال المثال حاول من الرابط التالي وان شاء الله يكون شغال :

http://ibnmuscat.tripod.com/Gmeia.zip

أما الموضوع فهو موجود في الوصلة التالية :

http://arabteam.nicmatic.com/vb/showthread...%CC%E3%DA%ED%C9

والله الموفق.

ibnmusqat.gif
#13

الأخ/ابن مسقط

لقد تمكنت من إنزال المثال على جهازي

وفقك الله لما يحبه ويرضاه من الأفعال والأقوال الظاهرة والباطنة

شكري وتقديري خصوصي ( سبيشال )

#14

فيه دالة لتحويل العدد العشري الى صحيح اذا كانت تنفع

cint()

يعني الارقام :

2.1 او 2.2 او 2.3 او 2.4 تصبح 2

2.5 او 2.6 او 2.7 او 2.8 او 2.9 تصبح 3

ارجو ان يفيدكم بشيء.

#15

السلام عليكم

ملف اكسل يحتوي على طريقة حساب الأقساط بطريقة مالية (رياضة مالية) كالمستخدمة بالبنوك .

http://mypage.ayna.com/abbashmd/Installments.xls

تحياتي

#16

يمكن استخدام دالتي cint أو clng على أن يضاف على المبلغ 0.50 وذلك كالتالي :

Clng(1.00001 + 0.50)

ستخرج الناتج 2

Clng(1.00 + 0.50)

ستخرج الناتج 1

ولكم تحياتي

#17

جزاك الله خير .

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…