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

حذف الارقام العشرية

بدأه Abo_abdlh في 2 ديسمبر 2012 · 9 رد · 1,361 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني الكرام

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

مثال

328.90 * .75 = 246.675

احتاج ان يكون الناتج 246.67

بحذف الرقم الثالث وليس الغرض التقريب جربت دوال int و Round و fix ولكن لم يقوموا بالمطلوب

ولكم جزيل الشكر مقدما

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

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#2

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

بافتراض أن لديك جدولا اسمه Table1 ، واسم الحقل Number ، وبه مجموعة من القيم ذوات الخانات العشرية الثلاث. إفتح استعلاماً جديداً وأدخل الأمر التالي

SELECT (INT(Number * 100))/100 AS [Trimmed Decimal] FROM Table1;

بالتوفيق،

عبدالله،،،

#3

اخي الفاضل

استخدم هذا التعبير في الإستعلام بهذه الطريقة

Result: Format((Int([sNumber]*0.75*100)/100);"Fixed")

post-15367-020122400 1354428658_thumb.gi

عددين عشريين بعد الفاصلة بدون تقريب

لا تنسانا من التقييم بارك الله بك

za-QryNumber.rar

بالتوفيق

المرفقات
q1.gif
1
#4

وإذا احتجت إلى نقل الفكرة بحيث تصبح دالة تستفيد منها خلال برنامجك كاملا، أنشيء وحدة جديدة Module ، وأدخل الأسطر التالية:

Option Explicit

Public Function TrimDec(dblInput As Double, lngDecPlaces As Long) As Double
'On Error GoTo Error_Handler

    'Raise number of decimal places to power of 10
    lngDecPlaces = 10 ^ lngDecPlaces

    'Trim the double variable to intDecPlaces
    TrimDec = (Int(dblInput * lngDecPlaces)) / lngDecPlaces

Exit_Here:
    Exit Function

Error_Handler:
    Debug.Print Err.Number & ": " & Err.Description
    TrimDec = 0
    'Extra code goes here in case the function returned wrong values
    '

End Function

هذه الدالة تُعطيك مرونة أكبر، رغم بعض المحاذير المتعلقة بها. فهي تستقبل منك متغيران؛ الرقم العشري، وعدد الخانات المطلوب احتسابها. تستطيع إستخدامها بإصدار الأمر كالتالي:

TrimDec(246.675, 2)

ولكي نستخدم دالتنا الجديدة TrimDec مع الإستعلامات مُباشرة، نستطيع أن نُعيد كتابة الإستعلام على الشكل التالي

SELECT TrimDec(Number,2) AS [Trimmed Decimals] FROM Table1;

نقطة أخيرة، إذا زادت خانات الرقم العشري عن خمسة، فسوف تبدأ الدالة في التقريب العشري، وهو حسب فهمي ما لا تريده.

بالتوفيق،

عبدالله،،،

1
#5

بارك الله فيكم

و يعطيكم علي قدر نيتكم

#6

جزاكم الله خيرا اخواني الكرام

وفقنا الله واياكم لما فيه الخير

تحياتي

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#7

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

اخواني الكرام

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

جربت الطريقتين المذكورتين في الموضوع بدون فائدة

المشكلة باختصار اذا قمت بضرب قيمة الحقل sNumber * 0.5 مثال :

506.91 * 0.5 = 253.45

اما اذا قمت بضرب قيمة الحقل sNumber * sNumbe1

مثال : 506.91 * 0.5 = 253.46

لاحظوا معي الفرق بين الناتج الاول 253.45 والناتج الثاني 253.46

المشكلة موضحة بالصورة

post-41348-076723600 1355610582_thumb.pn

مرفق الملف الذي به المشكلة

Up-za-QryNumber.rar

ولكم جزيل الشكر مقدما

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

المرفقات
001.png

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

#8

تفضل اخي الكريم

post-15367-096293500 1355637457_thumb.gi

لا تنسانا من التقييم بارك الله بك

za-QryNumber-END.rar

بالتوفيق

المرفقات
CC1.gif
1
#9

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

طبعاً وكما جرت العادة فإن المتألقة الأستاذة زهرة كل المواسم لم تبخل علينا بعلمها

أحببت أن أقوم بتعديل صغير من بعد إذن الأخ Ab Techno في دالته لتعطينا النتائج الصحيحية

والتعديل هو إضافة Cdec :

	'Trim the double variable to intDecPlaces

 TrimDec = Int(CDec(dblInput) * lngDecPlaces) / lngDecPlaces

وإليكم المرفقات بعد التعديل

وسلامي وتحياتي لأستاذتنا الجليلة ولكم ياأخوتي الأفاضل

post-212280-021193900 1355645197_thumb.j

za-QryNumber-END2.rar

المرفقات
aa.jpg

تم تعديل هذه المشاركة بواسطة إياد بيك في 16 ديسمبر 2012 في 17:43

1

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#10

ما شاء الله مبدعة كعادتك اختى الفاضلة زهرة المنتدى

وجزيل الشكر لاخونا الفاضل إياد بيك لتعديل الدالة

وجزاكم الله خيرا اخواني الكرام

تحياتي

قولوا لا إله إلا الله تفلحوا

post-15367-087183200%201340344597.gif

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