اذهب الي المحتوي
أوفيسنا

شرح دوال التاريخ و الوقت - لأبي هاجر


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

موضوع منقول

كاتب الموضوع : ابو هاجر

شرح دوال أكسس ـ دوال تدفق البرنامج

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

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

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

ونظراً لطول الشرح فقد أرفقت الشرح مكتوباً بالكامل في ملف وورد حتى تسهل قراءته وتطبيقه دون الحاجة للرجوع إلى المنتدى كما أرفقت ملف أكسس يحتوي على أمثلة لاستخدام كل دالة في الاستعلامات والنماذج

إليكم شرح دوال التاريخ والوقت

Cdate

تستخدم دالة Cdate من أجل تحويل سلسلة إلى تاريخ وتنصح مايكروسوفت باستخدام هذه الدالة دائماً مع متغيرات التاريخ لضمان تحويل المتغيرات الممررة إلى تاريخ كما أنها تقوم بالتأكد من أن المتغير الممرر من نوع تاريخ ، كما أنها مفيدة في التأكد من تحويل التاريخ الممرر للدالة إلى التقويم الحالي المحدد في قاعدة البيانات ( هجري ، ميلادي )

وتستخدم بالصيغة التالية :

CDate(MyDate)
على سبيل المثال فإن الدالة بالصيغة التالية :
CDate("February 12, 1969")
ستعيد متغيراً من نوع تاريخ CVdate وهي مثل دالة Cdate تماماً إلا أن المتغير الذي ترجعه الدالة هو من نوع Variant والألوية فيه لمتغير التاريخ أي أن النوع الفرعي له هو تاريخ Date وهي تقوم بإرجاع أو عرض تاريخ اليوم الحالي وتستخدم عند الرغبة في الحصول على تاريخ اليوم وتستخدم بالصيغة التالية :
Date()
حيث ترجع تاريخ اليوم Time وهي تقوم بإرجاع أو عرض الوقت الحالي للنظام وتستخدم عند الرغبة في الحصول على الوقت الحالي وتستخدم بالصيغة التالية :
Time ()
حيث ترجع الوقت الحالي Now وهي تقوم بإرجاع أو عرض الوقت والتاريخ الحالي معاً وتستخدم عند الرغبة في الحصول على الوقت والتاريخ الحالي معاً وتستخدم بالصيغة التالية :
Now()
الوقت والتاريخ الحالي معاً DateAdd تعد دالة DateAdd من دوال التاريخ المهمة حيث تستخدم في إضافة مدة معينة على تاريخ معين لنفترض أن لديك تاريخاً ما وتريد معرفة التاريخ الموافق بعد إضافة 100 يوم مثلاً على هذا التاريخ في هذه الحالة ستكون دالة DateAdd هي الدالة المناسبة تتطلب دالة DateAdd تحديد ثلاثة متغيرات هي : 1- نوع الفترة التي تريد إضافتها وهل هي يوم ِأم شهر أم سنة أم ساعة إلخ ،،، 2- العدد أي ما هو عدد الأيام أو الأشهر التي تريد إضافتها 3- التاريخ الذي تريد الإضافة إليه وتستخدم بالصيغة التالية :
DateAdd(الفترة, العدد, التاريخ)
حيث تعيد متغيراً من نوع تاريخ هناك عدد من متغيرات الفترة التي يمكن استخدامها وفي القائمة التالية أهم هذه المتغيرات : yyyy سنة q ربع سنة m شهر d يوم w يوم الأسبوع ww أسبوع h ساعة n دقيقة s ثانية فإذا أردنا مثلاً إضافة (10) أيام إلى تاريخ "1/1/1423" فتكون الدالة بالصيغة التالية :
DateAdd("d", 10, "1/1/1423")
DateDiff وهي أيضاً من أهم دوال التاريخ وتستخدم لحساب المدة بين تاريخين بحسب متغير الفترة المحدد للدالة وربما تلاحظون أننا كثيراً ما نستخدم هذه الدالة لعدد من الأغراض مثل حساب عدد أيام الإجازة أو الغياب أو خارج الدوام أو العمر أو غيرها وتستخدم هذه الدالة بالصيغة التالية : DateDiff(الفترة, تاريخ1, تاريخ2[, أول يوم في الأسبوع], أول أسبوع في السنة]]) ومتغيرات الدالة كالتالي : الفترة : وهو أحد المتغيرات المذكورة سابقاً مثل m , d , w وغيرها تاريخ1 : التاريخ الأول وهو التاريخ الأصغر تاريخ 2 : التاريخ الثاني وهو التاريخ الأكبر ولو عكست لكانت قيمة الدالة بالسالب أول يوم في الأسبوع : متغير اختياري أي يمكن عدم استخدامه وهو مفيد في حالة حساب عدد الأسابيع بين تاريخين إذ يتم الاعتماد عليه في تحديد أول يوم في الأسبوع وبالتالي قد يتغير عدد الأسابيع بحسب هذا المتغير ، فلو افترضنا مثلاً أننا نريد حساب المدة مثلاً من يوم السبت هذا الأسبوع حتى يوم الاثنين الأسبوع القادم فلو جعلنا أول يوم في الأسبوع هو الأحد فستكون النتيجة هي ( 2 ) أسبوعان لكن لو جعلنا أول يوم في الأسبوع هو يوم الأربعاء مثلاً فالنتيجة ستكون ( 1 ) أسبوع واحد لأنه لا يوجد خلال هذه الفترة سوى يوم أربعاء واحد وهكذا زد على ذلك أن هذا المتغير مهم في حالة رغبتنا في حساب عدد أحد أيام الأسبوع بين تاريخين مثل لو أردنا حساب أيام السبت بين تاريخين ففي هذه الحالة نجعل متغير الفترة هو W أي يوم في الأسبوع ومتغير أول يوم في الأسبوع هو يوم السبت وهذا مفيد في حالة رغبتك في حساب المدة بالأيام بين تاريخين بدون أيام الإجازات ( الخميس والجمعة مثلاً ) حيث تستخرج عدد أيام الخميس خلال التاريخين وعدد أيام الجمعة ثم تجمعها وتطرحها من مجموع الأيام بين التاريخين متغير أول يوم في الأسبوع يستخدم أحد المتغيرات التالية : vbUseSystem 0 نظام الويندوز vbSunday 1 الأحد وهو الافتراضي vbMonday 2 الاثنين vbTuesday 3 الثلاثاء vbWednesday 4 الأربعاء vbThursday 5 الخميس vbFriday 6 الجمعة vbSaturday 7 السبت أما متغير أول أسبوع في السنة فهو اختياري أيضاً وهو مفيد في حالة حساب عدد الأسابيع أي في حالة استخدام متغير الفترة ww حيث يحدد ما هو أول أسبوع سيتم اعتباره ضمن هذه السنة وهو يستخدم أحد المتغيرات التالية : vbUseSystem 0 نظام الويندوز vbFirstJan1 1 أول أسبوع يحتوي على أي يوم في السنة الجديدة وهو الافتراضي vbFirstFourDays 2 الأسبوع الذي يحتوي على أربعة أيام أو أكثر في السنة الجديدة vbFirstFullWeek 3 الأسبوع الذي تكون جميع أيامه في السنة الجديدة DatePart وتستخدم هذه الدالة للحصول على جزء معين من التاريخ الممرر لها مثل العام أو اليوم أو الشهر حيث تعيد متغيراً من نوع Variant (Integer) وتستخدم بالصيغة التالية
DatePart(الفترة, التاريخ)
حيث يحدد متغير الفترة الجزء المطلوب استخراجه من التاريخ المرر لها فعلى سبيل المثال ترجع الدالة التالية العام ( 1423 )
DatePart("yyyy","1/5/1423")
بينما ترجع الدالة التالية الشهر ( 5 )
DatePart("m","1/5/1423")
وترجع الدالة التالية اليوم ( 1 )
DatePart("d","1/5/1423")
DateSerial تستخدم دالة DateSerial لإرجاع متغير من نوع تاريخ من ثلاث متغيرات رقمية تمثل السنة والشهر واليوم وتسخدم بالصيغة التالية
DateSerial(year, month, day)
حيث يتم تمرير ثلاثة أرقام لها يمثل الأول السنة والثاني الشهر والثالث اليوم ، ويمكن استخدام المعادلات الحسابية في هذه الأرقام فالمثال التالي :
DateSerial(1990 - 10, 8 - 2, 1 – 1)
يرجع التاريخ التالي : "31/5/1980" وهكذا TimeSerial تستخدم دالة TimeSerial لإرجاع متغير من نوع وقت من ثلاث متغيرات رقمية تمثل الساعات والدقائق والثواني وتسخدم بالصيغة التالية
TimeSerial(hour, minute, second)
حيث يتم تمرير ثلاثة أرقام لها يمثل الأول الساعات والثاني الدقائق والثالث الثواني ، ويمكن استخدام المعادلات الحسابية في هذه الأرقام فالمثال التالي :
TimeSerial(12 - 6, -15, 0)
يرجع الوقت التالي : " 5:45:00 " وهكذا DateValue تستخدم دالة DateValue من إجل تحويل تعبير معين إلى تاريخ ، وهي مفيدة في حالة وجود تعبير معين نرغب في تحويله إلى تاريخ حتى يتم التعامل معه كتاريخ ، وتستخدم بالصيغة التالية :
DateValue(date)
على سبيل المثال لو مررنا للدالة سلسلة نصية تصلح لأن تكون تاريخاً فإن هذه الدالة ستقوم بتحويلها إلى تاريخ مثل DateValue("12 12 1423") TimeValue تستخدم دالة TimeValue من إجل تحويل تعبير معين إلى وقت ، وهي مفيدة في حالة وجود تعبير معين نرغب في تحويله إلى وقت حتى يتم التعامل معه كوقت ، وتستخدم بالصيغة التالية :
TimeValue(time)
على سبيل المثال لو مررنا للدالة سلسلة نصية تصلح لأن تكون وقتاً فإن هذه الدالة ستقوم بتحويلها إلى وقت مثل
TimeValue("4:35:17 PM")
Day – Month – Year - Weekday تستخدم هذه الدوال الأربع لاسترجاع جزء معين من التاريخ حيث يمرر لأي منها تاريخ معين وتعيد قيمة جزء معين من هذا التاريخ وذلك على النحو التالي : Day تعيد اليوم Weekday تعيد يوم الأسبوع ( 1= الأحد ، 2= الاثنين ..... ) Month تعيد الشهر Year تعيد السنة وكلها تستخدم بنفس الصيغة التالية
Day(date)

Weekday(date)

Month(date)

Year (date)
على سبيل المثال فإن المثال التالي :
Month("1/5/2002")
يرجع القيمة ( 5 ) وهي قيمة جزء الشهر في التاريخ الممرر للدالة ، وهكذا Second – Minute – Hour تستخدم هذه الدوال الثلاث لاسترجاع جزء معين من الوقت حيث يمرر لأي منها وقت معين وتعيد قيمة جزء معين من هذا الوقت وذلك على النحو التالي : Second تعيد الثواني Minute تعيد الدقائق Hour تعيد الساعات وكلها تستخدم بنفس الصيغة التالية
Second(time )

Minute(time )

Hour(time)
على سبيل المثال فإن المثال التالي :
Minute("4:35:17 PM")
يرجع القيمة ( 35 ) وهي قيمة جزء الدقائق في الوقت الممرر للدالة ، وهكذا MonthName وتستخدم لعرض اسم الشهر الموافق للرقم المحدد مع خيار لعرض الاسم المختصر أو الكامل وتكون بالصيغة التالية :
MonthName(رقم الشهر[, خيار لعرض الاسم المختصر])
حيث يتم تمرير رقم الشهر لها في المتغير الأول ومتغير من نوع Boolean ( منطقي ) في المتغير الثاني أي ( false\true ) حيث سيتم عرض الاسم المختصر مع true والاسم الطويل مع false لعل من المفيد أن أقول إنه يمكن استخدام هذه الدالة مع دالة Month بحيث يتم التعرف على رقم الشهر في التاريخ ثم على اسمه وذلك بالصيغة التالية :
MonthName(Month("1/5/2002"( , false)   لعرض الاسم الكامل

MonthName(Month("1/5/2002"( , true)   لعرض الاسم المختصر
WeekdayName وتستخدم لعرض اسم يوم الأسبوع الموافق للرقم المحدد مع خيار لعرض الاسم المختصر أو الكامل وتكون بالصيغة التالية :
WeekdayName(رقم اليوم, خيار لعرض الاسم المختصر, أول يوم في الأسبوع)
حيث يتم تمرير رقم اليوم داخل الأسبوع لها في المتغير الأول ومتغير من نوع Boolean ( منطقي ) في المتغير الثاني أي ( false\true ) حيث سيتم عرض الاسم المختصر مع true والاسم الطويل مع false ، أما الخيار الثالث فيستخدم لتحديد اليوم الأول في الأسبوع حيث سيتم بناء عليه حساب الأرقام ويمكن استخدام أي من القيم التالية في هذا المتغير : vbUseSystem 0 سيتم استخدام إعدادات النظام vbSunday 1 الأحد وهو الافتراضي vbMonday 2 الاثنين vbTuesday 3 الثلاثاء vbWednesday 4 الأربعاء vbThursday 5 الخميس vbFriday 6 الجمعة vbSaturday 7 السبت لعل من المفيد أن أقول إنه يمكن استخدام هذه الدالة مع دالة Weekday بحيث يتم التعرف على رقم اليوم في التاريخ ثم على اسمه وذلك بالصيغة التالية :
WeekdayName (Weekday("1/5/2002"( , false , 0)   لعرض الاسم الكامل

WeekdayName (Weekday("1/5/2002"( , true , 0)   لعرض الاسم المختصر
Timer تعيد قيمة تمثل عدد الثواني التي مرت منذ منتصف الليل وتستخدم عادة لحساب المدة الزمنية التي استغرقتها عملية ما حيث يتم إسناد قيمة الـ Timer إلى متغير قبل بدء التنفيذ ، وبعد تنفيذ العملية تتم المقارنة بين القيمة الحالية لـ Timer والقيمة السابقة لمعرفة المدة الزمنية . على سبيل المثال يمكنك استخدام الإجراء التالي لحساب المدة الزمنية التي استغرقها تنفيذ الاستعلام المرر للدالة وهو من أمثلة التعليمات :
Sub QueryTimer (strQueryName As String(

	Dim sngStart As Single, sngEnd As Single

	Dim sngElapsed As Single

	sngStart = Timer      	

	DoCmd.OpenQuery strQueryName, acNormal  

	sngEnd = Timer        

	sngElapsed = Format(sngEnd - sngStart, "Fixed")

	MsgBox ("استغرق تنفيذ الاستعلام  " & strQueryName & " " & sngElapsed     &    ثانية "")

End Sub
IsDate تستخدم دالة IsDate لفحص ما إذا كان المتغير الممرر لها تاريخ أم لا حيث تعيد true إذا كان المتغير تاريخاً و تعيد false إذا لم يكن تاريخاً ، وتستخدم بالصيغة التالية :
IsDate(تعبير)
و يتم تمرير متغير ما لها لفحص إن كان يصلح لأن يكون تاريخاً أم لا وعلى سبيل المثال ترجع دالة IsDate القيمة true في المثال التالي :
IsDate("2/12/1990 ")
بينما ترجع القيمة false في المثال التالي :
IsDate("أبو هاجر ")

تحياتي وتقديري للجميع

أخوكم / أبو هاجر

functions.zip

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

  • 20 years later...
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information