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

ابوخليل

أوفيسنا
  • Posts

    12792
  • تاريخ الانضمام

  • Days Won

    237

كل منشورات العضو ابوخليل

  1. سيصبح الكود هكذا =DMax("date_catch";"TBCatch";"id_reader=" & [id_reader] & " And typy_cach='" & "catch" & "'")
  2. = dmax("date_catch";"TBCatch";"id_reader=" & id_reader) LLL2.accdb
  3. >=#01/01/2021# And <#30/12/2021# جميلة مداخلتك اخوي ازهر واستخدام خاصية التحقق من الصحة ولكن يوجد متطلبات اخرى مصاحبة لهذا الشرط 1- في السنة القادمة سيضطر المبرمج الى التعديل على هذا الشرط 2- وهو الأهم فيما لو اراد المستخدم تجاوز الشرط والتعامل مع اي تاريخ
  4. عليكم السلام سنعتمد السنة المالية حتى نحصل على الأقوى والأسرع الصق هذه الوظيفتين في وحدة نمطية عامة Public Function ctrlThisDate() As String ctrlThisDate = DLookup("FiscalYear", "Odb_TableControl", "FiscalYear='" & Year(Date) & "'") End Function Public Function chkThisDate() As Boolean chkThisDate = DLookup("Adhere_Current_Year", "Odb_TableControl", "FiscalYear='" & Year(Date) & "'") End Function ثم الصق هذا الكود في حدث قبل التحديث لأي حقل تاريخ وغير ما يلزم والتغيير فقط بتعديل اسم الحقل Private Sub TextTO_BeforeUpdate(Cancel As Integer) If IsNull(TextTO) Then Exit Sub If chkThisDate() Then If Year([TextTO]) <> ctrlThisDate() Then MsgBox " التاريخ خارج نطاق السنة الحالية" DoCmd.CancelEvent End If End If End Sub لاحظ انه يجب عليك التأشير على خانة التقييد ان اردته يعمل ،، والعكس صحيح DatabaseA2.rar
  5. اهلا اخونا العزيز واستاذنا القدير أبو بسمله .. نعم صحيح غفلت عنها ، زادك الله علما اما بالنسبة الى استبدال الاستعلام بالجملة البرمجية فهي جميلة ايضا ، وتحتاج الى تعديل طفيف لتصبح : j = Nz(DSum("amount", "salary", "emp_name=" & emp_name & " And Year([dated])=" & Year(Date) & " And Month([dated])=" & Month(Date)), 0) والسبب ان الحدث هو قبل التحديث والتاريخ ستتم كتابته بعد ادراج المبلغ على اعتبار ان المبالغ المدفوعة ستكون داخلة ضمن نطاق الشهر الحالي وهذا اعتقد انه منطقي وهو الذي يحدث على ارض الواقع جرب على مثالك امسح جميع المبالغ والسجلات في النموذج الفرعي ثم ادخل مبلغ 1000 ثم جرب وأدخل 1001 سيظهر خطأ ، الا لو جعلنا التاريخ افتراضي (تاريخ اليوم) ثم استبدل كودك بالكود اعلاه وجرب
  6. حسب طلبك الذي الغيته : ان اردت القيمة عند فتح النموذج تكون ظاهرة في مربع التحرير فاستبدل الكود Private Sub Form_Load() Me.FS.RowSource = wrCombVal End Sub بهذا Private Sub Form_Load() Me.FS.RowSource = wrCombVal Me.FS.SetFocus Me.FS.Text = wrCombVal End Sub
  7. Private Sub amount_BeforeUpdate(Cancel As Integer) If IsNull(Me.amount) Then Exit Sub Dim i, j As Integer i = DLookup("salary", "emp", "id=" & emp_name) j = DSum("amount", "qryAmountInMonth", "emp_name=" & emp_name) If j + Me.amount > i Then Undo MsgBox "المبلغ يتجاوز المرتب الشهري" Exit Sub End If End Sub delete2.accdb
  8. الاعلان عن متغير عام Public wrCombVal As String هذا المتغير يأخذ قيمته عند النقر على الزر في اي نموذج من النماذج الثلاث جعل مربع التحرير يأخذ قيمة المتغير wrCombVal عند فتح النموذج Private Sub Form_Load() Me.FS.RowSource = wrCombVal End Sub تفضل FFF2.accdb
  9. المفترض الكود يتعامل مع الجداول بغض النظر عن النموذج الرئيسي او حتى الفرعي بمعنى تعمل حدث قبل التحديث للحقل في النموذج الفرعي فإذا كانت القيمة صحيحة يتم القبول والتحديث والا يتم الغاء القيمة كيف ؟ الكود هذا يشتمل على : 1- سطر يجلب راتب الموظف من الجدول الرئيس 2- سطر يجلب من الجدول الفرعي مجموع ما تم دفعه للموظف خلال هذا الشهر 3- سطر يجمع ما تم دفعه سابقا + القيمة المدرجة في الحقل 4- تتم المقارنة بين القيمتين 1 و 3
  10. السلام عليكم مداخلة معكم احبتي .. خاطرة بصوت مرتفع : مؤكد في تطبيق الفكرة .. انك ستأخذ بعين الاعتبار أن العملية سيتم تطبيقها على مستوى كل شهر باعتبار احتمال تكرار هذه الدفعات خلال السنة بمعنى ان الاحتراز هذا يتم خلال الشهر الحالي في هذه الحالة انت بحاجة الى استعلام مصدره الجدول الفرعي يظهر فيه الدفعات خلال هذا الشهر وبناء على هذا الاستعلام يتم المقارنة بين مجموع الدفعات والمرتب المستحق
  11. حلك هذا يعطيك الشهر للتاريخ الحالي الصحيح حسب سؤالك هو : Year([اسم الحقل])
  12. odate = Dlookup("your filedDate name","your table name") بدلا من odate = #3/28/2021# باعتبار your filedDate name هو اسم حقل التاريخ في الجدول و your table name هو اسم الجدول
  13. الطرق للحل متعددة منها دمج الحقلين داخل الاستعلام لو ارفقت مثالا بسيطا يتم التطبيق عليه .. اتوقع ستحصل على اكثر من طريقة للحل
  14. لم ننتبه للرسالة التي ارفقتها سابقا الخلل عندك في نظامك اضبط اعدادات اللغة في وندوز الى العربية .. ستحتاج الى اعادة تشغيل النظام
  15. السبب استخدامك للحروف العربية في الكود مع الابقاء على المسافات الخالية مثال2.accdb
  16. جرب : اعمل قاعدة بيانات جديدة على 2016 ثم اجلب اليها الكائنات من المثال السابق .
  17. المنتدى مليء بمثل هذه المواضيع فقط ابحث ستجد الكثير هذا مثال
  18. الملاحظة المهمة في المثال الاصل العلاقة الغير مفهومة بين الجدولين لذا قمت بحذف الجدول ، حتى يتم اعادته على الوجه الصحيح
  19. يا لطيف هذا ليس مثالا .. بل انظر اختصرت لك المثال .. وسؤالي ما طريقتك في استخراج توقيع الحضور وتوقيع الانصراف خلال الجلسة الواحدة (اليوم الواحد) ؟ in_out_time2.mdb
  20. عليكم السلام مع ان تصميم الجدول سيء ويوجد عليه كثير من الملاحظات ولكني احببت ان اضع هنا حل في تطبيق فكرة السؤال ، وذلك لدلالة العنوان فقمت بتغيير المسميات الى حروف لاتينية حتى تتمكن وغيرك ممن يمر من هنا قراءة الجملة البرمجية بصورة صحيحة ولو تم تضمين المسميات العربية لما تمكن احد من قراءة الكود بالصورة الصحيحة ، حيث ستختلط المسميات يمينا ويسارا فنصيحتي الا تستخدم الحروف العربية عند تصميم الجداول وتجنب المسافات الخالية بين الكلمات الحل وحدة نمطية ترجع بآخر قيمة من الرصيد بالاعتماد على اعلى رقم في مفتاح الجدول ثم نضع هذه الدالة في القيمة الافتراضية لحقل الباقي من التمويل Public Function rsdsabq() Dim i As Integer i = DMax("id", "tbl_tmweel") rsdsabq = DLookup("raseed", "tbl_tmweel", "id=" & i) End Function الرصيد.accdb
  21. المثال تضعه انت بناء على التصميم الذي عملته وعموما المسألة يسيرة جدا : اطرح التاريخ الأول من التاريخ الثاني
  22. الطريقة ان تجعل : تنسيق حقل / حقلي الحضور والانصراف تاريخ كامل ( General Date ) وطبعا سيكون الحضور في يوم والانصراف في اليوم الذي يليه ولكن يمكنك من احتساب الوقت الفعلي الصحيح
  23. خاصية المجاميع هذه تمت اضافتها للجداول في الاصدارات الجديدة من اكسس اعتقد في 2010 وما بعده انظر الصورة
  24. اعمل حقل في تذييل النموذج ثم في عرض التصميم الصق فيه هذه العبارة =Count("*") عدد السجلات.accdb
×
×
  • اضف...

Important Information