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

دالة للتنبيه لمشكلة تقويم أم القرى

مغلق
بدأه عبدالله سليمان2 في 26 أغسطس 2004 · 0 رد · 636 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

ما أود طرحه هنا هو دالة تقوم بتنبيه المستخدم عند إدخاله لتاريخ نهاية شهر هجري في تقويم أم القرى مثلاً ( 30-12-1424هـ ) وهذا التاريخ غير مكتمل في التقويم الهجري المستخدم في الاكسس ، فتقوم هذه الدالة بتنبيه المستخدم لهذه المشكلة ، وأنه سوف يتم تعديل التاريخ المدخل بنقص يوم واحد بدلاً من زيادة يوم واحد .

ولايخفى أن هذا الحل لا يصلح لقواعد البيانات التي تعتمد على التاريخ بشكل جذري ( وأكثر قواعد البيانات هكذا ) .

ومع هذا فإن بعض قواعد البيانات لايهم فيها فرق يوم في التاريخ مع بقاء التاريخ في نفس الشهر .

وإلى الدالة التي أرجو أن تستفيدوا منها ، كما استفدنا من هذا المنتدى ومن أعضائه ومشرفيه الكرام .

ضع الكود التالي في حدث بعد التحديث لأي مربع نص للتاريخ في قاعدة البيانات

Private Sub تاريخ_العقد_AfterUpdate()
Calendar = vbCalHijri


تاريخ_العقد = (تدقيق_التاريخ(تاريخ_العقد.Text))

End Sub

ثم ضع الدالة التالية في وحدة نمطية خاصة (Module)

Public Function تدقيق_التاريخ(da As String)
Dim rsalh
Calendar = vbCalHijri

rsalh = "أنت أدخلت تاريخ" & Chr(13) & da & Chr(13) & _
 "وهذا الشهر غير كامل في التقويم الهجري الذي يختلف عن تقويم أم القرى" _
& Chr(13) & "لهذا سوف يتم تعديله إلى تاريخ " & _
Chr(13) & DateAdd("d", -1, da)

If Left(da, 2) = 30 And Day(da) = 1 Then
MsgBox rsalh, vbMsgBoxRight
تدقيق_التاريخ = DateAdd("d", -1, da)

ElseIf Right(da, 2) = 30 And Day(da) = 1 Then
MsgBox rsalh, vbMsgBoxRight
تدقيق_التاريخ = DateAdd("d", -1, da)

Else
تدقيق_التاريخ = CDate(da)

End If

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

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

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

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

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

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