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

سؤال بخصوص التحكم فى عدم تفعيل زر بناء على قيمة من قائمة قيم


ابو جودي

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

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

اساتذتى الافاضل فى المرفق التالى اريد عدم تفعيل الزر   A   وتفعيل الزر  B  عندما يكون تاريخ اليوم يساوى احد القيم الموجودة ضمن التواريخ فى قائمة القيم


فى النموذج frm_prinr  فكرت فى عمل فرز لقائمة القيم بناء على قيمة تاريخ اليوم من النموذج
واستخدمت الكود الاتى فى حدث عند الفتح 
 

If day_date = HolidayDate_list.Column(1) Then
cmd_a.Enabled = False
cmd_b.Enabled = True
Else
End If
Me.Requery

ولكن لم اوفق فى فكرتى 

والنموذج  frm_prinr 2  لم أقم بأى شئ 

هل من حيلة للوصول للنتيجة المطلوبة ؟

جزاكم الله خيرا :fff:

TEST.rar

رابط هذا التعليق
شارك

اهلا وسهلا اباجودي

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

2 ساعات مضت, ابا جودى said:

اساتذتى الافاضل فى المرفق التالى اريد عدم تفعيل الزر   A   وتفعيل الزر  B  عندما يكون تاريخ اليوم يساوى احد القيم الموجودة ضمن التواريخ فى قائمة القيم
فى النموذج frm_prinr  

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

2. لماذا جعلت الاستعلام ياخذ تاريخ اليوم من المربع من النموذج ولم تستخدم الدالة date()  كشرط في الاستعلام وليس اشارة لقيم مربع بالنموذج قيمته بالاصل ما هي الا تاريخ اليوم . هنا ممكن ان يكون المربع يعرض تاريخ اليوم ولكن ساستخدم الدالة في الاستعلام كذلك 

تحياتي

  • Like 1
رابط هذا التعليق
شارك

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

بعد إذنك أستاذنا الكريم رمهان

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

Dim i As Integer
For i = 1 To DCount("*", "tbl_Holidays")
If Me.d1 = Me.day_date Then
Me.cmd_a.Enabled = False
Me.cmd_b.Enabled = True
End If
DoCmd.GoToRecord , , acNext
Next i

 

TEST.rar

تم تعديل بواسطه صالح حمادي
  • Like 1
رابط هذا التعليق
شارك

في 10/30/2016 at 13:09, رمهان said:

اهلا وسهلا اباجودي

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

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

2. لماذا جعلت الاستعلام ياخذ تاريخ اليوم من المربع من النموذج ولم تستخدم الدالة date()  كشرط في الاستعلام وليس اشارة لقيم مربع بالنموذج قيمته بالاصل ما هي الا تاريخ اليوم . هنا ممكن ان يكون المربع يعرض تاريخ اليوم ولكن ساستخدم الدالة في الاستعلام كذلك 

تحياتي

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

في 10/30/2016 at 13:28, رمهان said:

وجرب


Private Sub Form_Open(Cancel As Integer)
cmd_a.Enabled = HolidayDate_list.ListCount = 0
End Sub

 

وكده تمام التمام
اسال الله تعالى ان يزيدكم علما وينفعكم بما علمكم غفر الله لكم ولوالديكم

في 10/30/2016 at 14:03, رمهان said:

Private Sub Form_Open(Cancel As Integer)
cmd_a.Enabled = Not IsDate(DLookup("HolidayDate", "tbl_Holidays", "HolidayDate=date()"))
End Sub

 

وبصراحة انا فىى بادئ الامر لم اكن اريد ادراج قائمة الققيم فى النموذج وفكرت فى دالة  DLookup  ولكن وقفت  امامى مشكلة كيف اربط التاريخ الحالى بتاريخ الاجازة وسبحان الله تعالى 
حضرتك من تلقاء نفسك تذع الحل 
وفيت وكفيت استاذى الحبيب :fff::fff::fff::wink2:
غفر الله لك ولوالديك ولمن تحب ان شاء الله
اسال الله تعالى ان يبارك لك فى علمك وعملك وان يزيدكم من فضله وان يجعل كل اعمالكم خالصة لوجهه تعالى

في 10/30/2016 at 15:27, صالح حمادي said:

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

بعد إذنك أستاذنا الكريم رمهان

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


Dim i As Integer
For i = 1 To DCount("*", "tbl_Holidays")
If Me.d1 = Me.day_date Then
Me.cmd_a.Enabled = False
Me.cmd_b.Enabled = True
End If
DoCmd.GoToRecord , , acNext
Next i

 

TEST.rar

الاستاذ صالح حمادى
اخى الحبيب اعجبنى جدا جدا جدا استخدام  For i  :clapping:
شكرا اخى الحبيب على حضوركم الرائع ومشاركتكم الرائعة :fff::fff::fff:
اسال الله تعالى ان يغفر لكم والديكم ولمن تحبون 
واسال الله تعالى ان يزيدكم علما ويرزقكم البركة وينفعكم بما علمكم ويجعل كل اعمالكم خالصة لوجهه الكريم

جزاكــــــــ:fff::fff::fff:ـــــــــــم الله خيــــــــــــ:wub::wub::wub:ــــــــــــــرا

  • Like 2
رابط هذا التعليق
شارك

حتى تكتمل الفائدة وتعم على كل اخوانى واحبائى

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

فى الايام من الاحد الى الخميس   موعد الحضور  النهائى  8:15  صباحا  بدء موعد الانصراف  2:00  ظهرا    وبدء انصراف المستمرين بالعمل 4:30  عصرا

وفى ايام العطلات الرسمية والاسبوعية  الحضور من الساعة  9:00  صباحا   وبدء موعد الانصراف  2:00  ظهرا
 

وفى رمضان الحضور من الساعة  8:00    وحتى  بدء موعد الانصراف من الساعة  1:00


ناهيكم عن اختلاف المواعيد التى قد يتم استدعاء الاشخاص للعمل فيها من بعد الانصراف وليس لها اى مقاييس فى الحضور والانصراف

طبعا كثرت التقارير نظرا لاختلاف الاوقات

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

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

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


عند ربط البرنامج بتاريخ اليوم تلقائيا سنغير هذا المعيار

[Forms]![frm_prinr0]![day_date]

الى 

Date()

داخل الكود الاتى 
 

Private Sub Form_Open(Cancel As Integer)
On Error Resume Next

Me.Requery
    If day_name = "الجمعه" Or day_name = "السبت" Or IsDate(DLookup("HolidayDate", "tbl_Holidays", "HolidayDate=[Forms]![frm_prinr]![day_date]")) Then
    cmd_b.Enabled = True
    ElseIf rmdan = "رمضان" Then
    cmd_c.Enabled = True
    Else
    cmd_a.Enabled = True
    End If
End Sub

 

فيصبح الكود
 

Private Sub Form_Open(Cancel As Integer)
On Error Resume Next

Me.Requery
    If day_name = "الجمعه" Or day_name = "السبت" Or IsDate(DLookup("HolidayDate", "tbl_Holidays", "HolidayDate=date()")) Then
    cmd_b.Enabled = True
    ElseIf rmdan = "رمضان" Then
    cmd_c.Enabled = True
    Else
    cmd_a.Enabled = True
    End If
End Sub

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

TxtTDateHijri = day_date
Private Sub Form_Current()
On Error Resume Next

Calendar = vbCalHijri
TxtTDateHijri = day_date
rmdan = Format(TxtTDateHijri, "mmmm")
TxtTDateHijri = Format(TxtTDateHijri, "DD/MMMM/YYYY") & "هـ"
Calendar = vbCalGreg

If Not IsNull(HolidayType) Then
    HolidayType.Visible = True
Else
End If

    If rmdan = "رمضان" Then
        rmdan.Visible = True
    Else
    End If
End Sub


الى 

TxtTDateHijri = date()

اعتذر على الاطالة ولكن هذه الفكرة ان شاء الله ستقلل الاخطاء البشرية فى اثناء معالجة البيانات وطباعتها ان لمن تكن ستنهى على الاخطاء نهائيا

كل الشكر والتقدير والعرفان بالامتنان لكل اساتذتى الكرام فى هذا الصرح الشامخ :fff::fff:

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

امين امين امين








 

print attendance☺.rar

تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

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