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

التقريب الى رقمين لا يعمل

بدأه MOHAMED ARAFA في 6 يناير 2014 · 10 رد · 853 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندى قاعدة بيانات يوجد بها نموذج يقوم ببعض الحسابات

 

فعلى سبيل المثال يوجد داخل النموذج تكست بوكس وضعت في حالة lostfocus معادلة ل تكست بوكس اخر

Private Sub RESULT3_LostFocus()

Me.RESULT1 = Me.RESULT3 * 10 / Me.RESULT2

Me.RESULT4 = Round([RESULT4], 2)

 

وكما ترون فقد وضعت دالة round لكى يتم اعطائى الحسابات مقربه لاقرب رقمين عشريين فقط

وكان النموذج يعمل بشكل جيد جدا طوال الفتره السابقه

علما بانى ضغطت القاعده وحولتها mde لكى لا يقوم احد بالعبث بها

ومنذ ايام فوجئت بان الداله round لا تعمل

فعند الحساب يعطينى مثلا النتيجة 34.210000003

 

اعتقد ان القاعدة سليمه وان احدا قد لعب في خيارات الويندوز من الكنترول بانل او شىء من هذا القبيل

فاريد ان اعيد خيارات الجهاز لكى تعود الداله للعمل بشكل سليم بدلا من ان اقوم بتنزيل نسخة ويندوز واوفر هذا الوقت والمجهود

شكرا لكم

#2

تفضل اخي الكريم : محمد عرفه

 

من لوحة تحكم الويندوز

 

 

post-15367-0-04843300-1388992640_thumb.g

 

 

 

post-15367-0-40529100-1388992696_thumb.g

 

 

 

بالتوفيق

#3

شكرا جزيلا اخت زهرة وكنت اريد ان استفسر منك هل عند تغيير خصائص العدد بعد العلامه العشريه تتغلب هذه التغييرات على دالة round

فعلى الرغم من اننى محدد ان التقريب لاقرب رقمين في الكود البرمجى لم يعمل وتغلبت خصائص الارقام في الكنترول بانل على الكود

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

فهل هناك كود اقوى للتقريب لا يهتم بخصائص الكنترول بانل مهما كانت ام انه لابد من الضبط كما اشرتى سابقا

#4

اخي الفاضل : محمد

 

الوضع الطبيعي والإفتراضي لإعدادات لنظام الويندوز هي ان تكون الفاصلة العشرية بعد خانتين بهذه الطريقة  0.00

 

ولا تتغير او تتبدل في جميع الأنظمة إلا بفعل فاعل اي ان يقوم شخص ما ويقصد هذه الخانة ويقوم بتغيرها يدويا

 

الى 3 خانات او اربع او 8 خانات على حسب احتياجه اذا كان يعمل في برامج محاسبية ضخمه ولكن في الوضع الإفتراضي

 

للمستخدم العادي لا يلتفت اليها احد .

 

اما بالنسبة لدالة التقريب فهي تستخدم مع البرنامج نفسه اثناء تنفيذ الحدث حيث يتم استدعاؤها لعملية التقريب

 

وايضا يمكنك التحكم اكثر بتنسيق الحقل من خلال Format وتضعها 0.00

 

 

 

بالتوفيق

#5

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

وجربت القاعده حتى بعد ان غيرت الرقم من 2 الى صفر فوجدتها تحدث نفس المشكله فتعطينى ارقام كثيره جدا بعد العلامه العشريه

فاين يمكن ان تكمن المشكله

#6

اليوم اخذت قاعده اخرى ووضعتها في نفس الجهاز فوجدت نفس المشكله

هل يمكن ان تكون قيمه في الريجسترى او شىء اخر قد تغير

#7

السلام عليكم

 

يا اخي الكريم ، اذهب غلى تصميم الجدول وغير صيغة الحقل من Long Integer إلى Single أو Double حتى يعطيك قيمة عشرية وإلا لن يعترف بالقيمة العشرية.

 

:huh:

#8

اخى الكريم

ان نوع الحقل هو Text وليس ارقام

ويتم حساب معادله رقميه في حقل اخر لكى تكتب فيه

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

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

#9

الاخ محمد

 

رجاء ارفاق هذا الجزء من برنامجك حتى نطلع عليه ونرى الحل المناسب له :)

 

جعفر

#10

اخي الفاضل : محمد عرفه

 

جرب هذا الكود الأن

 

Private Sub RESULT3_LostFocus()
Me.RESULT1 = Val(Me.RESULT3) * 10 / Val(Me.RESULT2)
Me.RESULT4 = Round(Val([RESULT4]), 2)
 
 
بالتوفيق
1
#11

ولكن القاعده mde اخت زهره كما اشرت سابقا

تم تعديل هذه المشاركة بواسطة MOHAMED ARAFA في 13 يناير 2014 في 05:24

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