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

البحث بالتاريخ الهجري

بدأه طمطم في 14 فبراير 2010 · 6 رد · 598 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السلام عليكم

لدي برنامج وفيه نموذج للبحث حسب التاريخ من ... الى

والبحث يتم عبر الكود التالي :

Dim strWhere As String

Dim lngLen As Long

Const conJetDate = "\#mm\/dd\/yyyy\#"

If Not IsNull(Me.txtStartDate) Then

strWhere = strWhere & "([DateTranc] >= " & Format(Me.txtStartDate, conJetDate) & ") AND "

End If

If Not IsNull(Me.txtEndDate) Then

strWhere = strWhere & "([DateTranc] < " & Format(Me.txtEndDate + 1, conJetDate) & ") AND "

End If

lngLen = Len(strWhere) - 5

If lngLen <= 0 Then

MsgBox "ادخل قيمة لإجراء البحث", vbInformation, "Nothing to do."

Else

strWhere = Left$(strWhere, lngLen)

Me.Filter = strWhere

Me.FilterOn = True

End If

وفي حالة التاريخ الميلادي يتم البحث بصورة طبيعية لكن مع التاريخ الهجري لا يعطي نتيجة

هل هناك خطأما

وفقكم الله جميعا الى كل خير

ملاحظة

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

والله الموفق

( اللهم علمنا ما ينفعنا وانفعنا بما علمتنا )

#2

جرب تعديل هذا السطر

strWhere = strWhere & "([DateTranc] <= " & Format(Me.txtEndDate, conJetDate) & ") AND "

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3

شكرا لك اخي الكريم

لكن ما هو التعديل الذي قصدته

( اللهم علمنا ما ينفعنا وانفعنا بما علمتنا )

#4

السلام عليكم

يا طمطم انت وأنا في الهوى سوا

عجيب !! دخلت المنتدى من أجل هذه المشكلة ، ولكني احمل معي مثالي :

فعن نفسي ونيابة عن اخي طمطم

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

نأمل من الاخوان المساعدة جزاكم الله خيرا .

Search.rar

#5

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

جرب التعديل التالي في الكود:

Private Sub Command22_Click()
    Dim strWhere As String                  'The criteria string.
    Dim lngLen As Long                      'Length of the criteria string to append to.
    Dim numbers As Long


 Calendar = vbCalGreg

    Const conJetDate = "\#mm\/dd\/yyyy\#"   'The format expected for dates in a JET query string.
              If Not IsNull(Me.txtStartDate) Then
        strWhere = strWhere & "([date1] >= " & Format(Me.txtStartDate, conJetDate) & ") AND "
    End If
        If Not IsNull(Me.txtEndDate) Then   'Less than the next day.
        strWhere = strWhere & "([date1] < " & Format(Me.txtEndDate + 1, conJetDate) & ") AND "
    End If
           lngLen = Len(strWhere) - 5
    If lngLen <= 0 Then     'Nah: there was nothing in the string.
        MsgBox "No criteria", vbInformation, "Nothing to do."
    Else                    'Yep: there is something there, so remove the " AND " at the end.
        strWhere = Left$(strWhere, lngLen)
              Me.Filter = strWhere
        Me.FilterOn = True
    End If
End Sub

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

والله أعلم...

تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 14 فبراير 2010 في 20:42

#6

مشكور اخي أحمد يسر الله دربك ورزقك من حيث لا تحتسب

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

وهنا يتبادر سؤال :

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

#7

الف شكر لكل من شارك في هذا الموضوع

وبالفعل نجح ما ذكره الاخ احمد مبارك

واضافة الى الموضوع

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

 If CmbCalendar1 = 0 Then

MsgBox "نظام التقويم المستخدم ميلادي"

Else

MsgBox "نظام التقويم المستخدم هجري"

End If

حيث القيمة صفر خاصة بالميلادي

والقيمة 1- خاصة بالهجري

والله الموفق

تم تعديل هذه المشاركة بواسطة طمطم في 15 فبراير 2010 في 02:06

( اللهم علمنا ما ينفعنا وانفعنا بما علمتنا )

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