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

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

قام بنشر (معدل)

اخي الفاضل طالب علم انا الم اجرب عمل ذالك ولاكن سوف احاول عمل ذالك 

وانشاء الله الشباب عمالقة الاكسس يساعدونا في ذالك

 

أشكرك جزيلا علي تواصلك الكريم ، ونأمل التكملة من الأخوة بالمنتدي

 

بس يا ريت تشرحلي عمل التنبيه خطوة خطو  ( المنفذ منكم) 

 

كل مشاركة اطلب هذا الطلب ولكن لا يوجد رد( لو سمح وقتك أكون ممنون)

 

لكي تتضح لنا الفكرة

 

وجزاك الله خيرا

تم تعديل بواسطه طالب علم 1
قام بنشر

اخي الفاضل هذا الكود كامل سوف اشرحه لك 

intStore = DCount("[num_Contract]", "[Qry]", "[Date_End] <=Date()+3 AND [check1] =0 ") 
   
If intStore = 0 Then
Exit Sub
Else
If MsgBox("يوجد شخص أو أكثر قاربت عقودهم على الانتهاء" & vbCrLf & _
"هل تريد رؤيتهم", _
vbExclamation
+ vbYesNo, _
"العقود المنتهية") = vbYes Then
DoCmd.Close acForm, "Indx", acSaveYes 
DoCmd.OpenForm "FrmView", acNormal
 
Else
 Exit Sub
 End If

قام بنشر

num_Contract / اسم صاحب الهوية مثلا الموجود داخل الجدول  ممكن تغيير علي حسب الاسم الموجود عندك في الجدول.

Qry / هذا اسم الاستعلام الي مبني عليه نموذج  FrmView الي بيظهر فيه بيانات الهويات المنتهية .

Date_End / هذا  تاريخ انهاء الهوية  الموجود الجدول ممكن تغيير علي حسب الاسم الموجود عندك في الجدول.

check1 / مربع نص مضاف في الجدول  قيمته نعم لا / مثلا تريد عدم التنبيه عن سجل معين تجعل قيمة السجل نعم لا يظهر في التنبيه.

Indx / هذا اسم النموذج الرئيسي لديك الي هنضع فيه الكود علشان لما نفح النموذج تظهر لنا الرساله  الي هي / يوجد شخص أو أكثر هويتهم عقودهم على الانتهاء هلي تود رؤيتهم   اذا ضغط نعم سوف يظهر لك نموذج FrmView / الي هو به بيانات صاحب  الصوية  الي هو  مصدر بياناته   استعلام Qry.

ارجو ان اكون ماقصرت في شرحي  وبالتوفيق 

قام بنشر (معدل)

أخي العزيز حسين 

 

أشكرك جزيلا ، وجعله في ميزان حساناتك ، وربنا يجزيك خير ، وطبعا ما قصرت

 

 

وفي انتظار اخواننا عمالقة الأكسس لحل مشكلة

 

- التنبيه للتاريخ الميلادي والهجري معا في نموذج تنبيه واحد ، مع معالجة التاريخ الهجري

 

UP

تم تعديل بواسطه طالب علم 1
قام بنشر

أخي العزيز حسين 

 

أشكرك شكرا جزيلا ، وطبعا فكرة جميلة لفتحهم تباعا

 

بس مشكلة التاريخ الهجري لم تحل 

 

- نحن في 2015 ميلادي ، 1436 هجري ، ولو لاحظت ان جدول الهويات به عشر اسماء مهما غيرت في تاريخ الأنتهاء للأشخاص

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

 

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

قام بنشر

الأكسس لايقبل ادخال تاريخين بتقويمين مختلفين في نفس الوقت

قاعدة البيانات اما تكون هجري أو ميلادي

فاذا تم الاعتماد على أن يكون التقويم ميلادي مثلا , فتكون تنسيقات التاريخ الميلادي حقل من نوع تاريخ

أما التاريخ الهجري فلا يعترف عليه الأكسس هنا على أنه تاريخ , لذلك يتم تنسيقه من نوع , نص , و ليس تاريخ

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

في مثالكم هذا , يتم عمل ما يلي :

1- تعديل تنسيق الحقول الهجرية الى نص بدلا من تاريخ

2- يتم انشاء الدالة التالية في وحدة نمطية جديدة

 

Function DHijri(dtGegDate As Date) As String




' returns a date in Hijri format for a given western date
VBA.Calendar = vbCalHijri
DHijri = dtGegDate
VBA.Calendar = vbCalGreg
End Function

3- يتم تحويل قيمة الحقل الميلادي الى هجري باستخدام المعادلة التالية

hij: Format(CDate(DHijri(expr1)),"yyyy-mm-dd")

وذلك على فرض أن expr1   هو حقل التاريخ الميلادي المراد تحويله الى هجري

 

قام بنشر

اخي  العزيز رضوان

 

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

مع العلم ان ادخال خانة انتهاء الجواز بالتاريخ الهجري ن، وخانة ادخال ادخال الهوية تدخل بالهجري

 

والمطلوب التنبيه بالإنتهاء عليهم الأثنين قبل الإنتهاء ولبكن 60 يوما قبلا

 

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

قام بنشر

أفضل طريقة للتعلم هي العمل بذاتك

و تأكد أنك لن تنساها

قم بتعديل الجداول حسب المقترح الأخير من حيث :

1- اختيار التقويم المعتمد / هجري / أو ميلادي

2-تعديل تنسيق الحقول

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

و بالله التوفيق

قام بنشر (معدل)

أفضل طريقة للتعلم هي العمل بذاتك

و تأكد أنك لن تنساها

قم بتعديل الجداول حسب المقترح الأخير من حيث :

1- اختيار التقويم المعتمد / هجري / أو ميلادي

2-تعديل تنسيق الحقول

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

و بالله التوفيق

أخي الغزيز رضوان

نشكرك علي ردك

 

لكن انا طبقت علي المرفق ولكن ليس المطلوب

 

حيث لو ادحلت بالتاريخ الميلادي ويجول لهجري في خانة اخري ، فإدا ادخلها بالميلادي لا داعي للمعادلات

 

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

حقل الهوية يتم ادخاله بالهجري لوجوده بالهوية بالهجري ويصعب البحث علي ما يعادله بالميلادي لوضعه

فما اريده ادخاله بالهجري ويظهر بالتنبيه اعتمادا علي تاريخ اليوم بالهجري مع التنبيه الأخر الميلادي

 

- اعتقد اننا لو قلبنا الكود لكي يحول التاريخ الهجري المدخل الي ميلادي ويكون التنبيه علي الناتج بالميلادي بالأستعلام، ما رأيك؟

tast3.rar

تم تعديل بواسطه طالب علم 1
  • 2 weeks later...
قام بنشر

لا , اذا كنت تريد استخدام التاريخ الميلادي و تحول التاريخ الهجري المخزن نصيا الى تاريخ ميلادي

استخدم الدالة التالية بدلا من الأولى

 

Function Dgrig(dtHijDate As String) As Date
Dim td As Date
' returns a date in Hijri format for a given western date
VBA.Calendar = vbCalHijri
td = Format(CDate(dtHijDate), "yyyy-mm-dd")
VBA.Calendar = vbCalGreg
Dgrig = td


End Function

و بدل القيمة في الاستعلام حسب الاسم الجديد للدالة

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information