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

سؤال عن التاريخ

مغلق
بدأه saeed في 18 أغسطس 2001 · 41 رد · 2,814 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#26

الأخ سعد أو سعيد

أعترف أن الحل الأول خطأ وتطويل أكثر من اللازم ولكن ليس الخبر كالمعاينة .

وكلام الأخ مسافر صحيح في رده الثالث في بداية الردود .

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

طبقت كلام أخي المسافر وجمعة الحقول وطلعت النتيجة ممتازة انظر التالي :

تاريخ: CDate([date_d] & " " & [date_m] & " " & [date_y])

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

Between [Forms]![99]![البداية] And [Forms]![99]![النهاية]

ملاحظة لا تحتاج سوى الى مربعي نص على النموذج واكتب فيهما تاريخ عادي بدون تجزئة .

إذا كنت ما تزال مصراً على وضع ستة مربعات نص فاعمل الآتي في الاستعلام :

اجمع الحقول كما سبق ، وفي المعيار ضع التالي :

Between CDate([Forms]![99]![يوم بداية] & "/" & [Forms]![99]![شهر بداية] & "/" & [Forms]![99]![سنة بداية]) And CDate([Forms]![99]![يوم نهاية] & "/" & [Forms]![99]![شهر نهاية] & "/" & [Forms]![99]![سنة نهاية])

وقد جربته على القاعدة التي أرسلت لي فعمل جيداً .

ولك تحياتي

#27

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

الحقيقة نفسي ابغي ان يكون التاريخ في النموذج ست حقول فممكن

تعدل المطلوب في الملف الذي ارسلته لك وترسله

والله يوفقك ويجزيك عني كل خير

#28

أبشر

خمس دقائق وأرسله إن شاء الله .

ولك تحياتي .

#29

الأخ ابو حمود

مساك الله بالخير

وصلني البريد ولكن لم يشتغل الملف لإن الأكسس عندي 2000

وايضا لم تشتغل على اكسس 97

شكراً

#30

لقد حولتها إلى إصدار 2000 !!

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

SELECT CDate([date_d] & " " & [date_m] & " " & [date_y]) AS تاريخ

WHERE (((CDate([date_d] & " " & [date_m] & " " & [date_y])) Between CDate([Forms]![99]![يوم بداية] & "/" & [Forms]![99]![شهر بداية] & "/" & [Forms]![99]![سنة بداية]) And CDate([Forms]![99]![يوم نهاية] & "/" & [Forms]![99]![شهر نهاية] & "/" & [Forms]![99]![سنة نهاية])))

ORDER BY CDate([date_d] & " " & [date_m] & " " & [date_y]);

ثم افتحه في عرض التصميم وستجد عمود واحد ظلل عليه وانسخه إلى ماتحب من الاستعلامات .

ولك تحياتي .

#31

الأخ سعيد :

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

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

ملاحظة :

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

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

ثم اختر :

ddmmyy.zip أو ddmmyy2.zip أو ddmmyy.mdb

وفي حال لم تعمل الوصلة معك يمكنني إرساله إليك على بريدك إن رغبت في ذلك .

هذا وإن وجدت قصورا في المثال فالمعذرة فأخوك غير متمكن من الأكسس .

بقي أن تضع في النموذج exp أكوادا تجعل حقل اليوم لا يقبل أكثر من 30 وحقل الشهر لا يقبل أكثر من 12 .

أتوقع أن بإمكان الإخوة وضع كود يقوم مقام هذا الاستعلام .

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

وفق الله الجميع

#32

الأخ حارث

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

وفقك الله .

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

Private Sub يوم_بداية_Exit(Cancel As Integer)

If التأكد_من_الأرقام(يوم_بداية) = False Then Cancel = -1

End Sub

Private Function التأكد_من_الأرقام(NameCon As TextBox) As Boolean

Select Case NameCon.Name

Case "يوم بداية", "يوم نهاية"

If NameCon.Value > 30 Then

MsgBox "إن الرقم الذي طلبته غير صحيح ." & vbCrLf _

& "تأكد من الرقم الصحيح وشكرا .", vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "الاتصالات"

التأكد_من_الأرقام = False

Else

التأكد_من_الأرقام = True

End If

End Select

End Function

Private Sub يوم_نهاية_Exit(Cancel As Integer)

If التأكد_من_الأرقام(يوم_نهاية) = False Then Cancel = -1

End Sub

ولك تحياتي

#33

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

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

في حالة طلب ما بين تاريخين (افتتاحي وختامي ) :

أولا : إن كان التاريخان متحدي العام :

1- إن كانا أيضا متحدي الشهر فالمقارنة بين الأيام فقط ، وهو ما ستجده في السطر الأول .

2- إن كانا مختلفي الشهر :

أ- جميع الأشهر التي هي أكبر من شهر التاريخ الافتتاحي وأصغر من شهر التاريخ الختامي مطلوبة (السطر الثاني) .

ب- شهر التاريخ الافتتاحي : مطلوب منه فقط ما كان اليوم فيه أكبر من أو يساوي يوم التاريخ الافتتاحي (السطر الثالث).

ج- شهر التاريخ الختامي : مطلوب منه فقط ما كان اليوم فيه أصغر من أو يساوي يوم التاريخ الختامي (السطر الرابع) .

ثانيا : إن كان التاريخان مختلفي العام :

1- جميع السنوات التي هي أكبر من سنة التاريخ الافتتاحي وأصغر من سنة التاريخ الختامي مطلوبة(السطر الخامس) .

2- سنة التاريخ الافتتاحي : مطلوب منها :

أ- جميع الأشهر التي هي أكبر من شهر التاريخ الافتتاحي (السطر السادس)

ب- شهر التاريخ الافتتاحي : مطلوب منه ما كان اليوم فيه أكبر من أو يساوي يوم التاريخ الافتتاحي (السطر السابع).

3- سنة التاريخ الختامي : مطلوب منها :

أ- جميع الأشهر التي هي أصغر من شهر التاريخ الختامي (السطر الثامن)

ب- شهر التاريخ الختامي : مطلوب منه ما كان اليوم فيه أصغر من أو يساوي يوم التاريخ الختامي (السطر التاسع).

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

وربما كان هناك تبسيط لهذه المعايير ، كما أن الخطأ في الفكرة وارد جدا .

وفق الله الجميع .

#34

الأخ حارث

الرجاء مراجعة بريدك

الأخ ابوحمو

سامحني على تعبك معي

فضلاً

هل تعدل الملف الموجود لديك بالطريقة التي ذكرها الأخ حارث

كما ارجو ملاحظة هذا التاريخ

من 1/1/1422

الى 1/2/1422

لإنها لم تتم العملية بطريقة صحيحة عند تحديد التاريخ السابق

حتى بعد تعديل الملف الذي ارسلته لم تنجح

لكم الشكر

#35

الأخ سعيد

السلام عليكم

لقد جربت الاستعلام الذي ذكره الأخ حارث على البيانات الموجودة في القاعدة معه وقد نجح ثم جربته على القاعدة التي أرسلت لي ونجح كذلك وجربته على التاريخ 1/1/1422 الى 1/2/1422 وأعاد لي بيانات شهر محرم بالكامل من 1 إلى 29 فتوكل على الله واشتغل به وادع لحارث ، وغير فيه أسماء الحقول وأسم النموذج وكل ما يلزم .

الأخ حارث

أشكرك على توضيحك وجزاك الله خير ونفع الله إخوانك بك .

ولكم تحياتي

#36

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

بعد التحية :

أرجع وأكرر لماذا لا تسخدموا الدالة التي اقترحتها

هل هي صعبة لتلك الدرجة بحيث يصعب استخدامها ؟

أو هل هي عدم ثقة ؟!!

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

ثم كتابة الشرط الموضح أيضا في Criteria كالتالي :

Between Hijri( Forms![FormName]![DayFm] , Forms![FormName]![MonthFm] , Forms![FormName]![YearFm]) and Hijri( Forms![FormName]![DayTo] , Forms![FormName]![MonthTo] , Forms![FormName]![YearTo] )

تحياتي

#37

الأخ أبو هادي

السلام عليكم

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

هذه رغبته ماذا نفعل به .

مع الشكر لك على جهدك وحرصك والله يوفقك .

ولك تحياتي وتحيات ابو سعد أو سعيد إذا سمح وأظنه يبي يسمح .

#38

الأخ ابوحمود

الأخ حارث

الأخ ابوهادي

اسعدتم مساءً

يعلم الله انني عاجز عن شكركم جميعاً وتفاعلكم الرائع مع مشكلتي

الحمد لله حلت المشكلة بطريقة الأخ حارث

دعائي لكم بالتوفيق والأجر والمثوبة

#39

على الرغم من أن الموضوع ليس لي إنما يسعدني التعاون هذا كله من أجل المصلحة العامة للجميع

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

أفادكم الله جميعا وأتمنى أن تدوم المحبة والتعاون بين الجميع

آسف للإطالة ولكن هذا ما أردت أن أنوه عنه

أشرف خليل

#40

الأخ أبو هادي :

حاولت تطبيق ما ذكرته في دمج الحقول الثلاثة في حقل واحد في استعلام مع كون نموذج البحث يحتوي على ستة حقول فكانت النتيجة كالآتي :

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

في حال لم تعمل الوصلة انقر الوصلة التالية :

http://mypage.ayna.com/harith77 واختر

hdydate.zip

أرجو الاطلاع على الملف وهل هذه الطريقة صحيحة وهي المقصودة أم لا ؟

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

#41

الأخ حارث

بعد التحية :

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

تحياتي

Sub Test3()

stDocName = "bbq10"

If Not IsDateUm(dda, mma, yya) Then

MsgBox "تاريخ البداية خاطئ .. أعد المحاولة"

DoCmd.GoToControl "dda"

Exit Sub

End If

If Not IsDateUm(ddb, mmb, yyb) Then

MsgBox "تاريخ النهاية خاطئ .. أعد المحاولة"

DoCmd.GoToControl "ddb"

Exit Sub

End If

If Hijri(dda, mma, yya) > Hijri(ddb, mmb, yyb) Then

MsgBox "يجب أن يكون تاريخ النهاية أكبر من تاريخ البداية"

DoCmd.GoToControl "dda"

Exit Sub

End If

DoCmd.OpenQuery stDocName, acNormal, acEdit

End Sub

#42

الأخ حارث

بعد التحية :

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

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

ولك خالص تحياتي

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

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