اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

خلل في تقريب حقل محسوب في استعلام


haniameen

الردود الموصى بها

الأخوة الأفاضل لدي قاعدة بيانات مرتبات للمدرسة وعند حساب حقل محسوب في استعلام  باسم  moalem50 من خلال تعبير   moalem50: Round([asasysabik]*50/100;2) في استعلام وخصائص حقل من نوع " ثابت "  ومنازل عشرية  "2 " يعطي نتائج غير دقيقة

ونرى ذلك في السجل رقم 1 يعطي  260.62  والمفروض يتم التقريب إلى  260.63

ونرى ذلك في السجل رقم 4 يعطي  267.62  والمفروض يتم التقريب إلى  267.63

ونرى ذلك في السجل رقم5 يعطي  323.21  والمفروض يتم التقريب إلى  323.22

ونرى ذلك في السجل رقم6يعطي  258.49  والمفروض يتم التقريب إلى  258.50

ونرى ذلك في السجل رقم 7 يعطي  250.90  والمفروض يتم التقريب إلى  250.91

وهناك سجلات تظهر مضبوطة

الرجاء معرفة نوع الخلل في هذا الحقل لأن لدي حقول اخرى كثيرة محسوبة بنفس الطريقة يظهر بها هذا الخلل ..... فهل العيب في الدالة أم في خصائص الحقل  ......

 

                    

مرتبات 2016 - Copy.rar

رابط هذا التعليق
شارك

في ٧‏/١١‏/٢٠١٥ ١٠،١٢،٤٩, عابرسبيل said:

انت قربت لثلاث أرقام عشرية وللأسف دي عند الجمع الراسي تعطي نتائج غير دقيقة نتيجة جمع ثلاث أرقام عشرية فيتعارض الأفقي مع الرأسي في القروش

للأسف لم تفلح

في ٧‏/١١‏/٢٠١٥ ٢،٥٥،٣٨, alwazeer said:

اخي الكريم

ليس خطأً في الدالة

الدالة تعمل بشكل صحيح

قم بتغيير عدد المنازل العشرية من الاعدادات الاقلمية الخاصة بجهازك

 

xx.PNG

للأسف ليس هناك علاقة بين الدالة وبين المنازل العشرية في الويندوز لدرجة اني غيرت المنازل العشرية لصفر في الويندوز وظلت كما هي في الأكسس 2

اين اهل الخبرة في هذا المنتدى العريق أين الخلل بالله عليكم

رابط هذا التعليق
شارك

السلام عليكم

 

انا عملت وحدة نمطية للقيام بطلبك ، وتنادي الوحدة النمطية بارسال الرقم ، وعدد الخانات العشرية المطلوبة ،

مثال لعمل خانتين عشريات:

Clipboard02.jpg.5b90952b9929591a153fe4d1

.

والنتيجة:

240.Clipboard03.jpg.7f49a60a8423d6b66108

.

مثال لعمل 3 خانات عشريات:

240.Clipboard04.jpg.0619825758120440b329

.

والنتيجة:

240.Clipboard05.jpg.2abbfef556a0b9438949

.

 

وهذه هي الوحدة النمطية:

 

Option Compare Database

Function Round_me(N As Double, R)

    'N = the number
    'R = how many decimal places required
    
    'give an inital answer
    Round_me = N
    
    'get the decimals
    Remaining = N - Int(N)
    
    'is the decimal greater than zero
    If Remaining > 0 Then
         
        M1 = Mid(Remaining, R + 1 + 2, 1)
        If M1 = "" Then Exit Function       'it's a Nothing that got through, get it
        
        If M1 > 4 Then
            
            'the last digit of the decimal is 5 or greater, so we need to add a 1 to the end
            Round_me = Int(N) + Mid(Remaining, 1, R + 2) + (1 / (10 ^ R))
        Else
            
            'No need to add anything to the decimal
            Round_me = Int(N) + Mid(Remaining, 1, R + 2)
        End If

    End If
    
    
End Function


 

 

 

جعفر

240.مرتبات 2016 - Copy.accdb.zip

رابط هذا التعليق
شارك

الان, jjafferr said:

السلام عليكم

 

انا عملت وحدة نمطية للقيام بطلبك ، وتنادي الوحدة النمطية بارسال الرقم ، وعدد الخانات العشرية المطلوبة ،

مثال لعمل خانتين عشريات:

Clipboard02.jpg.5b90952b9929591a153fe4d1

.

والنتيجة:

240.Clipboard03.jpg.7f49a60a8423d6b66108

.

مثال لعمل 3 خانات عشريات:

240.Clipboard04.jpg.0619825758120440b329

.

والنتيجة:

240.Clipboard05.jpg.2abbfef556a0b9438949

.

 

وهذه هي الوحدة النمطية:

 

Option Compare Database

Function Round_me(N As Double, R)

    'N = the number
    'R = how many decimal places required
    
    'give an inital answer
    Round_me = N
    
    'get the decimals
    Remaining = N - Int(N)
    
    'is the decimal greater than zero
    If Remaining > 0 Then
         
        M1 = Mid(Remaining, R + 1 + 2, 1)
        If M1 = "" Then Exit Function       'it's a Nothing that got through, get it
        
        If M1 > 4 Then
            
            'the last digit of the decimal is 5 or greater, so we need to add a 1 to the end
            Round_me = Int(N) + Mid(Remaining, 1, R + 2) + (1 / (10 ^ R))
        Else
            
            'No need to add anything to the decimal
            Round_me = Int(N) + Mid(Remaining, 1, R + 2)
        End If

    End If
    
    
End Function
 

 

 

جعفر

240.مرتبات 2016 - Copy.accdb.zip

أخي العزيز جعفر أشكرك على الاعتناء والرد ...

ولكن لم يفي بالمطلوب ....

لونظرت للسجل الخامس والسادس كما هو مرفق من قبل سيادتكم  في المثال لعمل ثلاث خانات عشرية يكون الناتج ( 323.215  و  258.495 ) .... هذا كلام معقول طيب لو قربنا الرقمين دول لرقمين عشريين حيكون الناتج إيه ؟ أكيد ( 323.22  و  258.50 )

المطلوب تقريب لرقميين عشريين ليصبح الناتج  في السجل الخامس والسادس كالآتي ( 323.22 و 258.50 ) المفروض النتيجة دي تظهر في المثال الأول الذي أرفقته وهو التقريب لرقميين عشريين لكن ظهرت في المثال الأول الذي أرفقته ( 323.21 و 258.49 ) فهنا حدث اقتطاع للخانات وليس تقريب ... فالدالة round  توقفت عن التقريب وهذا هو بيت القصيد ..... فالنتيجة خاطئة ...... المطلوب  اقتطاع لرقمين عشريين مع التقريب ( مثال... العدد الأصلي  323.215  إذا أردنا أن نقربه لرقميين عشريين فالمفروض يصبح  323.22 ولكن ظهر في مثالك الأعلى 323.21 وهذا خطأ ....فأرجو أن أكون قد وصلت وجهة نظري أخي جعفر  ...... وآسف للإطالة

رابط هذا التعليق
شارك

أخي هاني

 

الظاهر ان مفهومك لتقريب الارقام غير مفهومنا ، ومفهومك للدالة Round غير دقيق ايضا :blink:

انظر الى الصورة المرفقة ، وفيها الرقم الكامل بدون تقريب ، ثم تقريب لثلاث خانات ، ثم تقريب لـخانتين ، ثم لخانة:

240.Clipboard01.jpg.6a5bba4a4cc2c0bf3648

.

لما تريد ان تقرّب رقم ، فيجب عليك النظر في الرقم الاصلي ، ثم تقرّبه ،

فمثلا ، الرقم الاصلي هو 323.2149 ،

التقريب الى 3 خانات: ننظر للرقم الرابع على اليمين (9) ، اذا كان 5 فأكبر (نعم في حالتنا) ، يضاف واحد الى الخانة 3 (4+1) ، فيصبح الرقم المقرب لثلاث خانات هو: 323.215

التقريب الى خانتين: ننظر للرقم الثالث على اليمين (4) ، اذا كان 5 فأكبر (لا في حالتنا) ، فلا يضاف واحد الى الخانة 2 (1+0) ، فيصبح الرقم المقرب  لخانتين هو: 323.21

التقريب الى خانه: ننظر للرقم الثاني على اليمين (1) ، اذا كان 5 فأكبر (لا في حالتنا) ، فلا يضاف واحد الى الخانة 1 (2+0) ، فيصبح الرقم المقرب  لخانتين هو: 323.2

 

والرابط التالي من مايكروسوفت يشرح الدالة ، كما ذكرت اعلاه:

https://support.office.com/ar-sa/article/الدالة-ROUND-c018c5d8-40fb-4053-90b1-b3e7f61a213c

 

 

جعفر

 

رابط هذا التعليق
شارك

وعليكم السلام أخي ابوعارف :rol:

25 دقائق مضت, ابو عارف said:

حسب فهمي الاخ هاني يريد تقريب كسور الى الاعلى من عُشر الاول مثلا من  5.51 حتى 5.59  الى 5.6 و هكذا

.

ولكن الاخ هاني قال:

في 11/7/2015, 11:32:05, haniameen said:

ونرى ذلك في السجل رقم 7 يعطي  250.90  والمفروض يتم التقريب إلى  250.91

.

وهذا لا يتماشى مع مفهومك :rol:

 

اللي انا اعتقده هو ، ان الاخ هاني يريد ان يبدأ التقريب من 4 خانات (مثلا) ، ثم يستخدم نتيجة التقريب ، ويقربه الى 3 خانات ، ثم يستخدم التقريب ، ويقربه الى خانتين !!

نعم ، يمكنه عمل ما يشاء في برنامجه (خصوصا اننا لا نعرف ماهية برنامجه)  :rol:

 

جعفر

رابط هذا التعليق
شارك

اقتباس

ونرى ذلك في السجل رقم 7 يعطي  250.90  والمفروض يتم التقريب إلى  250.91

اخي جعفر القيمة في سجل 13 لا في سجل 7 كما كتب أخ هاني و فعلا تم تقريبها الى 250.91

5640e7ef2a2b5_09-11-20159-29-06PM.jpg.2c

ابو عارف

مرتبات 2016 - Copy.rar

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

بالنسبة للتقريب إلى رقمين عشريين

إذا كان الرقم العشري الثالث هي 0 أو 1 أو 2 أو 3 أو 4 يتم حذف الرقم دن زيادة للرقم العشري الثاني أي شيئ

مثال

43.541   تقرب إلى  43.54

43.543   تقرب إلى  43.54

43.544   تقرب إلى  43.54

أما إذا كان الرقم العشري الثالث 5 أو 6 أو 7 أو 8 أو 9 فيحذف هذا الرقم مع زيادة الرقم العشري الثاني 1

مثال

43.545   تقرب إلى  43.55

43.547   تقرب إلى  43.55

43.549   تقرب إلى  43.55

بالنسبة للدالة Round فهي تعمل جيدا

 

اما بالنسبة لطلب الأستاذ haniameen

فهمت التالي

انه يريد التقريب إلى ثلاثة ارقام عشرية والناتج يقرب مرة أخرى إلى رقمين عشريين

أي أن :

43.5467   تقرب إلى  43.547  ثم يقرب الناتج  43.55

43.5463   تقرب إلى  43.546  ثم يقرب الناتج  43.55

43.5443   تقرب إلى  43.544  ثم يقرب الناتج  43.54

هذا هو طلب العضو الفاضل

أما الدالة Round فهي تعمل بكفاءة 100%

رابط هذا التعليق
شارك

شكرا على مشاركتك استاذ علي ، فانت تشاركني الرأي :rol:

 

أخي أبوعارف:

23 دقائق مضت, ابو عارف said:

القيمة في سجل 13 لا في سجل 7 كما كتب أخ هاني و فعلا تم تقريبها الى 250.91

.

اذا تسمح لي اوضح لك كيف وصل الرقم 250.904998 الى ما اشرت عليه (كما هو فهمي لتوضيح الاخ هاني):

الرقم الاصلي 250.904998 ، تقريبه الى 3 خانات ، فيصبح 250.905

الان الرقم المراد تقريبه هو 250.905 ، تقريبه خانتين ، فيصبح 250.91

 

:rol:

جعفر

رابط هذا التعليق
شارك

untitled.bmp

الأخوة الأفاضل .... لم اكن أتوقع هذا الاهتمام والمشاركة الفعالة من قبلكم تجاه العبد الفقير لله هاني .... ولا اقدر ان أصف سعادتي وفخري وشكري لكم جميعاً ......

أولاً : بالنسبة للأخ ابو عارف اشكرك على المتابعة ولكن ليس هذا المطلوب

ثانياً : بالنسبة للأخ علي المصري .....اشكرك على التوضيح وشرح مفهوم التقريب  ..... لكن أوضح لمعاليكم أنني معلم رياضيات وعلوم ونقوم بتدريس التقريب للصف الرابع والخامس ....بكل خواصه وأنني أتقن الدالة round تمام الاتقان ...

ثالثاً للعملاق الخبير المعتمد الأستاذ جعفر ...... اشكرك فعلاً على سعة صدرك وتقبلي في طلبي  لكن اكتشفت مؤخراً اين الخلل ...... حيث أنني كنت أصمم هذه المعادلة على الاكسل بنجاح وتعطي نتائج مبهرة بهذه الدالة

 

untitled.bmp

رابط هذا التعليق
شارك

حياك الله أخي الاستاذ هاني :rol:

2 دقائق مضت, haniameen said:

طلبي  لكن اكتشفت مؤخراً اين الخلل ...... حيث أنني كنت أصمم هذه المعادلة على الاكسل بنجاح وتعطي نتائج مبهرة بهذه الدالة

.

ممكن تنورنا بهذه المعلومة ، بارفاق ملف الاكسل لوسمحت :rol:

 

جعفر

رابط هذا التعليق
شارك

في ٩‏/١١‏/٢٠١٥ ١٠،٠٥،٤٢, jjafferr said:

حياك الله أخي الاستاذ هاني :rol:

.

ممكن تنورنا بهذه المعلومة ، بارفاق ملف الاكسل لوسمحت :rol:

 

جعفر

أخي العزيز جعفر أحاول أعرض صورة مع المشاركة ولكني لا اعرف لتوضح كيف كان الناتج مع التقريب ... ممكن طريقة رفع الصور مع المشاركة كما تفعل انت

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

ما هو مرفق بالملف السجل الخامس والسادس قارن ولاحظ بينه وبين الأكسس ... التقريب هنا لرقمين عشريين

Book1.rar

السؤال هنا لماذا الأكسل أخرج الناتج بهذه الطريقة 323.215 وهي طريقة الآلة الحاسبة ......  ولماذا الأكسس اخرج الناتج بهذه الطريقة 323.214993  

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

شكرا لك استاذ هاني :rol:

 

بالفعل عمل الدالة Round في الاكسل تختلف عن الاكسس :blink:

واذا اردنا عملها في الاكسس ، فستكون كما شرحت:

3 ساعات مضت, jjafferr said:

اللي انا اعتقده هو ، ان الاخ هاني يريد ان يبدأ التقريب من 4 خانات (مثلا) ، ثم يستخدم نتيجة التقريب ، ويقربه الى 3 خانات ، ثم يستخدم التقريب ، ويقربه الى خانتين !!

 

 

جعفر

رابط هذا التعليق
شارك

في ٩‏/١١‏/٢٠١٥ ١٠،٢٥،٥٥, jjafferr said:

شكرا لك استاذ هاني :rol:

 

بالفعل عمل الدالة Round في الاكسل تختلف عن الاكسس :blink:

واذا اردنا عملها في الاكسس ، فستكون كما شرحت:

 

 

جعفر

اخي جعفر تقصد إني اقرب ل 4 خانات ثم 3 خانات ثم خانتان عشان احصل على نتيجة مطابقة لنتيجة الالة الحاسبة ( فكرة الآلة الحاسبة متطابقة تماماً مع الاكسل ) إلا أني اقرب لرقمين يدوياً فتصبح النتيجة متطابقة مع الاكسل.....

 

رابط هذا التعليق
شارك

في ٩‏/١١‏/٢٠١٥ ١٠،٣٤،٠٤, jjafferr said:

بكرة الصباح ان شاء الله اعدل في الوحدة النمطية ، واشوف النتائج :rol:

 

جعفر

أخي جعفر ..... الصراحة أنا تشائمت ...... بلاش تتعب نفسك ......حبدأ تصميمه على الأكسل وبلاها اكسس ... حاسس إني تعبت ناس كتير معاي بدون فايدة .... انا آسف فعلاً على ضياع وقتكم الثمين بسببي

 

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

بالنسبة لتصميم الجدول

لاحظ تنسيق الحقول التي تكون مدخلاتها أعداد

غير تنسيق هذه الحقول إلى Double وعدد المنازل العشرية Auto 

ثم قم بانشاء الاستعلام من جديد

 

 

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information