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

تقويم أم القرى : كيف ؟؟

مغلقرائج
بدأه حارث في 1 سبتمبر 2001 · 103 رد · 13,887 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الموضوع الذي أطرحه هنا ليس جديدا ، لكني بالبحث في المنتدى لم أجد الجواب الكافي له .

لدي قاعدة بيانات بسيطة على أكسس لبعض المكاتب ، والمشكلة تتمثل في أن أهم ما نريده من هذه القاعدة تقارير شهرية وفصلية عن العمل ، حسب تقويم أم القرى ، والمشكلة التي واجهتني هي أن بعض الأشهر في التقويم الهجري المضمن مع ويندوز ناقصة ، أي 29 يوما فقط ، في حين أنها في تقويم أم القرى كاملة ، أي 30 يوما ، وعليه فعندما أدخل التاريخ 30 من بعض الأشهر حسب تقويم أم القرى لا يقبلها البرنامج ويحولها إلى يوم (1) من الشهر الذي يليه ، وهذا يؤثر تأثيرا كبيرا على صحة المعلومات في التقارير ، فما الحل لهذه المشكلة ؟

سأطرح في البداية ما اقترحه علي بعض الإخوة :

1- أن أجعل التاريخ في ثلاثة حقول : حقل لليوم، وحقل للشهر ، وحقل للسنة . لكن ألا تجعل هذه الطريقة من الفرز والتصفية والبحث أمرا عسيرا أو مستحيلا ؟؟؟ . وهل لها عيوب أخرى ؟؟؟ .

2- أن أضع جدولا يحتوي علىحقلين : حقل نص أدخل فيه التاريخ الهجري ، وحقل تاريخ أدخل فيه ما يقابله من التاريخ الميلادي ، وأكتب فيه مسبقا التاريخين الهجري والميلادي حسب تقويم أم القرى لعدد من السنوات ، وبربط الجدول ببقية الجداول أتمكن من عرض التاريخ الهجري مع إدخال التاريخ الميلادي ، وتسهل عمليات الفرز . لكن ألا يصعب مع هذه الطريقة تمكين المستخدم من عمليات التصفية ؟؟؟ وهل لها عيوب أخرى ؟؟؟

هل هناك طرق أخرى أجدى ؟؟

سؤال أخير : هل يتوفر حاليا برنامج يدخل تقويم أم القرى في الويندوز ؟؟؟؟؟؟

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

#2

الأخ حارث

بعد التحية :

يوجد لدي تقويم أم القرى على أكسس للفترة من 1300هـ إلى 1429هـ

لا مانع لدي من استعماله لمن يرغب بس آمل منكم مساعدتي بتعليمي كيفية إرساله فالحقيقة أنا مستجد على الإنترنت ولا أفهم في هذه الأمور

وشكرا سلفا للجميع

#3

أرسلت لك طريقة إرسال الملفات من الهوتميل على إيميلك بواسطة هذا المنتدى .

علما بأن الإيميل الخاص بي هو :

HARITH77@HOTMAIL.COM

أو

HARITH77@YAHOO.COM

ولك جزيل الشكر ، والله أسأل لك التوفيق والمثوبة .

والموضوع لا زال باقيا : هل هناك حلول لمشكلة تقويم أم القرى ؟؟

#4

الأخ حارث

بعد التحية :

لقد أرسلت لك الملف على ايميلك

آمل منك وضعه بالمنتدى حتى تعم الفائدة

تحياتي

#5

بإمكان الإخوة تحميل الملف من الموقع التالي :

http://mypage.ayna.com/harith77/Umalqura.zip

ملاحظة :

في حال لم يمكنك تحميل الملف بالنقر على الوصلة السابقة انقر علىالوصلة التالية :

http://mypage.ayna.com/harith77/

ثم اختر :

Umalqura.zip

وأرجو أن تعمل هذه الروابط .

وأنا أسأل : هل راجع أحد من رواد هذا المنتدى هذا التقويم وتأكد من دقته ؟

أيضا : كيف يمكن الاستفادة من هذا الملف في قاعدة بيانات تعتمد اعتمادا كاملا على التواريخ الهجرية الموافقة لأم القرى إدخالا وعرضا وفرزا وتصفية وبحثا ؟؟

هذا والموضوع الأصلي لا زال مطروحا : ما هي الحلول العملية لمشكلة تقويم أم القرى ؟؟

#6

الاخ حارث

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

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

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

#7

الأخ بوب

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

أشرف

#8

لقد قمت بعمل مثال واود عرضه هنا لكن لااعرف اتمنى ان تخدموني بذلك

في المثال 2 text الاول تستطيع منه ادخال التاريخ بالهجري ويغيره الى ميلادي في الاخر ويحفظ التاريخ في الميلادي وعند العرض يتغير الى هجري جربوه وان لم تعرفو استطيع الشرح وانت اشرف ان لم تستطع استطيع عمل ذلك لك

وشكرا

#9

الأخ بوب عابد :

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

لكن : ألن يواجه المستخدم في هذه الطريقة شيئا من المشاكل في عمليات التصفية والفرز والبحث ؟

هذا وإن أمكنك إرسال المثال على إيميلي (harith77@hotmail.com)فخيرا تفعل ، وإن رغبت في أن أعرضه كما فعلت بالملف السابق الإشارة إليه (وإن كان لا يعمل عند الجميع) فلا مانع لدي .

وجزاك الله كل خير مسبقا

#10

لدي دالتين بخصوص التحويل بين الهجري والميلادي نقلتها من احد المواقع ولا أدري إن كانت هي التي نشرها أبو لمى أم لا :

Private m_iHijri As Integer

'------------------------------------------------------------

' من ميلادي إلى هجري

'------------------------------------------------------------

Public Function StDteGregOfStDteHijri(ByVal stDateHijri As String) As String

On Error Resume Next

Dim dte As Date

If Len(stDateHijri) > 0 Then

VBA.Calendar = vbCalHijri

dte = CDate(stDateHijri)

VBA.Calendar = vbCalGreg

StDteGregOfStDteHijri = CStr(dte)

End If

If Err.Number <> 0 Then StDteGregOfStDteHijri = stDateHijri

End Function

'------------------------------------------------------------

' من هجري إلى ميلادي

'------------------------------------------------------------

Public Function StDteHijriOfStDteGreg(ByVal stDateGreg As String) As String

On Error Resume Next

Dim dte As Date

If Len(stDateGreg) > 0 Then

dte = CDate(stDateGreg)

VBA.Calendar = vbCalHijri

StDteHijriOfStDteGreg = CStr(dte)

VBA.Calendar = vbCalGreg

End If

If Err.Number <> 0 Then StDteHijriOfStDteGreg = stDateGreg

End Function

وبخصوص طريقة أبو عابد فقد جربتها تخزين تاريخ ميلادي مباشرة في الحقل علماً أن تاريخ القاعدة هجري فقام بإدخال التاريخ إلا أنه عند كتابة 31/3/2000 رفض وأعطى رسالة أنه تاريخ غير صالح ، وأعتقد أنه يقوم بتخزين التاريخ على أنه تاريخ هجري وإذا أراد أحد التأكد فليسجل أحد الأشهر (لا أعرف الأشهر الميلادية) من السنة الماضية كان فيه 31 فإذا رفض فهذا معناه أن التاريخ المسجل هو هجري وليس ميلادي وليخبرنا بالنتيجة .

عموما ليست المشكلة في تخزين التاريخ بل قبول البرنامج لأيام غير مسجلة في تقويم الوندوز وكحل مبدئي قابل للنقاش اجعل حقل التاريخ حقل رقمي وخزن التاريخ كحقل رقمي وبهذا تحل مشكلتك مثال :

1/12/1422

اجعل الكود يحولها للتالي :

01121422

(إذا نقص اليوم عن خانتين فيجب جعل الثانية صفروكذلك الأمر بالنسبة للشهر واربع خانات للسنة)

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

آمل من الأخوة المشاركة وأبداء الآراء .

ولكم تحياتي

#11

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

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

ويكون التاريخ الهجري كهذا 06-07-1422هـ

طبعاً أنا لا أحتاج إلى أن أتعامل مع حقل التاريخ بالفرز وغيره في هذا البرنامج ويكفي أن أطلب الشهر فقط فأحصل عليه مرتباً حسب حقل آخر أما عند الحاجه إلى الفرز فيحتاج الموضوع طبعاً لدي إلى تفكير وحل وإن شاء الله ما فيه شي مستحيل

ما رأيكم في الفكره ؟؟؟؟؟؟؟؟؟

وما عندي مانع من إرسالها إذا طلبتوها وعندي فراغ

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#12

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

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

لكن كيف يمكن بهذه الطريقة التعامل مع التاريخ الحالي سواء من حيث الإدخال أو معايير التصفية . فمثلا كثير من الاستعلامات التي نصممها تتضمن التاريخ الحالي في أكوادها .

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

#13

نسيت أشكرك يا أخ حارث على طرح الموضوع وأشكر جميع الإخوه

وأبلغك أن الوصلات لا تعمل لدي أرجو إرسال الملف على البريد الإلكتروني الخاص بي

alh_a_m@yahoo.com

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#14

الاخ حارث والشباب لقد ارسلت لك الحارث المثال اتمنى ان تنزلها هنا للشباب للفائده العامه مشكورا

وهذا الكود الذي استخدمته للتغير مابين الهجري والميلادي:

هذا وضعته ليقوم بالعمليه العكسيه بحيث يعرض في كل مره الميلادي بدل الهجري:

Private Sub Form_Current()

If IsNull(Date) = False Then

Text3 = Hijri(Date)

Else

Text3 = ""

End If

End Sub

وهذا بعدما يدخل التاريخ الهجري يقوم بتغيره الى ميلادي:

Private Sub Text3_AfterUpdate()

On Error GoTo ER6

Dim str, str2 As String

If IsNull(Text3.Value) = False Then

str = Text3.Value

str2 = Gregori(str)

Date.Value = str2

Else

Date.Value = ""

End If

Exit_Text3_AfterUpdate:

Exit Sub

ER6:

MsgBox Err.Description

Resume Exit_Text3_AfterUpdate

End Sub

وطبعا هاتين الدوال التي تقوم بالتحويل طبعا بتكون في العام

Function ConvertDateString( _

ByRef StringIn As String, _

ByRef OldCalendar As Integer, _

ByVal NewCalendar As Integer, _

ByRef NewFormat As String) As String

Dim SavedCal As Integer

Dim d As Date

Dim s As String

'// Save VBA Calendar setting to restore when finished

SavedCal = Calendar

'// Convert date to new calendar and format

Calendar = OldCalendar ' Change to StringIn calendar

d = CDate(StringIn) ' Convert from String to Date

Calendar = NewCalendar ' Change to calendar of new string

s = CStr(d) ' Convert to short format String

ConvertDateString = Format(s, NewFormat) 'Reformat

'// Restore VBA Calendar setting

Calendar = SavedCal

End Function

'***************************************

'change from melady to hijry

Function Hijri(Gregp As Variant) As String

Dim GregorianDate As String

Dim HijriDate As String

Dim HijriFormat As String

Dim Greg As String

Greg = CStr(Gregp)

GregorianDate = Greg ' Gregorian string to convert

HijriFormat = "Short Date" ' Format for Hijri date

'// Convert to Hijri date 7/8/1414 and return in Long Date format

HijriDate = ConvertDateString( _

GregorianDate, _

vbCalGreg, _

vbCalHijri, _

HijriFormat)

Hijri = HijriDate

End Function

'****************************************

'change from higry to melady

Function Gregori(HijriDatP As Variant) As String

Dim GregorianDate As String

Dim HijriDate As String

Dim HijriFormat As String

Dim HijriDat As String

HijriDat = CStr(HijriDatP)

GregorianDate = HijriDat ' Gregorian string to convert

HijriFormat = "Short Date" ' Format for Hijri date

'// Convert to Hijri date 7/8/1414 and return in Long Date format

HijriDate = ConvertDateString( _

GregorianDate, _

vbCalHijri, _

vbCalGreg, _

HijriFormat)

Gregori = HijriDate

End Function

#15

بخصوص الدالتين فلا أدري هل تعرض التاريخ موافق لأم القرى أم لا وإن كان ظني أنها مرتبطه بالتقويم الخاص بالوندوز .

وأما التعامل بطريقة الأرقام مع الحقول فالأمر بسيط استخدم قناع إدخال وإليك مثال :

00-00-0000

سيظهر التاريخ بهذا الشكل

01-01-1422

وبإمكانك أن تغير الشرطات - إلى / ليظهر كأنه تاريخ بتنسيق تاريخ قصير .

وأما التصفيه فمثلها مثل أي تصفية أخرى عند الرغبة مثلا في التصفية بتاريخ 1/1/1422 ستختار 14220101

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

وهذا كود يتأكد من عدم تجاوز الأرقام عدد الأيام في الشهر أو عدد الأشهر في السنة في حدث عند الخروج :

Private Sub الرقم_Exit(Cancel As Integer)

If Mid(Me![الرقم], 1, 2) > 30 Then

MsgBox "الشهر 30 أو 29 يوماً ."

Me![الرقم] = ""

Cancel = -1

Exit Sub

End If

If Mid(Me![الرقم], 3, 2) > 12 Then

MsgBox "لا يمكن تجاوز 12 شهر"

Me![الرقم] = ""

Cancel = -1

End If

End Sub

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

ثم هل أحد عنده فكرة عن الطريقة الحسابية للتقاويم هل هي صعبة وكيف يتم حساب عدد الأيام في الشهر ؟

ولكم تحياتي

#16

مثال الأخ بوب عابد في الوصلة التالية (وأرجو أن تعمل ) :

http://mypage.ayna.com/harith77/hijri2.zip

وفي الوصلة التالية المثال بدون ضغط :

http://mypage.ayna.com/harith77/hijri3.mdb

وإذا لم تعمل فعليكم بتكرار المحاولة عددا من المرات كما يمكنكم فتح الصفحة :

http://mypage.ayna.com/harith77

ثم اختيار

hijri2.zip

أو

hijri3.mdb

أرجو أن تعمل هذه الروابط ، وأعتذر عن التأخير للانشغال .

أخوكم حارث

#17

الاخ حارث

هل كان المثال جيد لك وهل قام بالازم ام تريد مساعده

#18

السادة الكرام

بعد التحية :

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

هذه دالة للتأكد من صحة ادخال تاريخ أم القرى

Function IsDateUm(dd, mm As Byte, yy As Integer) As Boolean

Dim Greg As Date

Dim Hijri As String

Dim d, m As Byte

Dim y As Integer

Greg = Um2Greg(dd, mm, yy)

d = Day(Greg)

m = Month(Greg)

y = Year(Greg)

Hijri = Greg2Um(d, m, y)

d = Val(Left(Hijri, 2))

m = Val(Mid(Hijri, 4, 2))

y = Val(Right(Hijri, 4))

IsDateUm = d = dd And m = mm And y = yy

End Function

ويكون استخدامه كالآتي :

ٍIf not IsDateUm(30,1,1420) then

msgbox "ادخال خاطئ"

End if

تحياتي

#19

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

لدى الكود ولكن لم أعرف وضعه فى المكان الصحيح

فلكم كل الشكر

أشرف خليل

#20

الأخ بوب عابد ، الأخ أبو هادي ، الإخوة جميعا :

آسف على تأخري في الرد ، حيث كنت منشغلا ببعض الأمور ، كما لم أحصل على تقويم أم القرى إلا هذا اليوم .

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

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

للحصول على تقويم أم القرى للأعوام 1420-1430 يمكنكم تحميلها من موقع مدينة الملك عبدالعزيز في الوصلة التالية :

http://www.kacst.edu.sa/ar/default.asp

أو تحميلها من الوصلة التالية كملفي إكسيل2000 في مجلد مضغوط :

http://mypage.ayna.com/harith77/Year1422-1423.zip

ملاحظة : في حالة لم يمكنك التحميل من الوصلة السابقة افتح الصفحة :

http://mypage.ayna.com/harith77

ثم اختر :Year1422-1423.zip وأرجو أن تعمل الروابط

أخوكم حارث

#21

الأخ ابو عابد

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

ارجو من الأخوة ممن لديه معرفة في مشكلتي أن يوافيني بحل سريع حيث أنني لم استطع إيجاد حل لها .

ولك تحياتي

#22

الاخ ابو حمود ماعرفت وش المشكله ياليت توضح اكثر

#24

تنظيما للحوار وتحديدا للموضوع سأحاول هنا إيراد أبرز الأفكار التي طرحها الإخوة هنا أو في مواقع أخرى لحل مشكلة عدم اعتماد الويندوز تقويم أم القرى ، وذلك فيما يلي (ومعذرة إن أطلت) :

أولا : الحل الأول : عدم استخدام التاريخ في قاعدة البيانات ، وذلك بأن يدخل التاريخ الهجري كنص أو كرقم ويخزن كذلك ، ولهذا طريقتان رئيستان (حسب ما يظهر لي ) :

الطريقة الأولى : إدخال التاريخ الهجري كنص أو كرقم ، ويشكل عليه عملية الفرز والتصفية ، فبمقارنة التاريخين 1422-06-15 و 1419-01-22 سنجد أن الأكبر هو الثاني بخلاف الصحيح وذلك بناء على أن المدخل رقم أو نص وليس بتاريخ.

والحل هو بأحد أمرين :

1- إدخال الرقم أو النص معكوسا أي بالشكل التالي : 15-06-1422 ، وذلك بأن يدخله المستخدم كذلك ، أي يدخل العام ثم الشهر ثم اليوم ، وهذا طبعا أمر غير مستحب

2- أن يدخل المستخدم التاريخ بالطريقة المعتادة 1422-06-15 ويقلب مباشرة بواسطة كود ويخزن معكوسا ، أي بالشكل 15-06-1422 .

3- إدخال الرقم أو النص وتخزينه كما هو أي بالشكل التالي : 1422-06-15 ، لكن يستخدم كود أو استعلام يقلبه ثم يفرزه قبل عرض البيانات، ولرؤية مثال على استعلام يقوم بهذا انظر المثال على الوصلة التالية :

http://mypage.ayna.com/harith77/hijrydate.zip

الطريقة الثانية : إدخال التاريخ في ثلاثة حقول : حقل لليوم وحقل للشهر وحقل للسنة ، وليس في هذه الطريقة مشكلة من حيث الفرز أو البحث ، وإن كانت غير محبذة ، على أنه ينبغي عند استخدام هذه الطريقة وضع قناع إدخال لكل من اليوم والشهر "00" والسنة "0000" ، وضبط خاصية الجدولة التلقائية في مربع نص كل من اليوم والشهر على نعم ، لكي ينتقل المستخدم من حقل اليوم ومن حقل الشهر بمجرد إدخال رقمين دون أن يحتاج إلى ضغط مفتاح تاب Tab ، فيصبح كأنه يدخل التاريخ في حقل واحد .

انظر في الفرز والبحث على هذه الطريقة الوصلة التالية :

http://arabteam.nicmatic.com/vb/showthread...3?threadid=3242

ومن عيوب الحل الأول بطرقه بشكل عام : عدم إمكانية استخدام خاصية التاريخ الحالي Now() . فما هو الحل ؟؟

ثانيا : الحل الثاني :

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

ثالثا : الحل الثالث :

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

وأجد أن هذا الحل إن أمكن أفضل الحلول ، خاصة إذا تم تلافي عيوب الحل الأول ، وهو أضمن لدقة البيانات وصحتها .

وهذا كله حتى تقوم ميكروسوفت باعتماد تقويم أم القرى في الويندوز ، وهو ما لا يظهر أنه سيتم قريبا .

هذه تصوراتي حول الموضوع ، وأريد من الإخوة التعليق تصحيحا وإضافة ، والله يوفق الجميع

#25

الأخ حارث

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

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

وما ذكرته من عدم إمكانية استخدام خاصية التاريخ الحالي Now() في الحقول الرقمية لغرض فرز الحقول حسب تاريخ ثم حسب الوقت فهو عيب حقيقي وقد يتلافى بجعل الفرز على حقل الرقم التسلسلي مع حقل التاريخ الرقمي وتحتاج الى التأكد .

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

وأوافقك أن الحل الثالث هو الحل الأفضل كما يظهر .

أقدم شكري على هذا الملخص المفيد ونفع الله بك .

ولك تحياتي

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

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