اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

Foksh

الخبراء
  • Posts

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

  • تاريخ اخر زياره

  • Days Won

    117

كل منشورات العضو Foksh

  1. موضوع مكرر بهذا الرابط مع العلم أن الفكرة جداً بسيطة في التنفيذ .. جرب هذه الفكرة ss (1).accdb
  2. فكرة جميلة ، ما شاء الله عليك 🙏 . إذا أردت المساعدة ، فأبشر بها يا صديقي 🤗 .
  3. أخي الكريم ، لماذا أشعر بأنك تبخل بالتوضيح بشرح ما يحصل معك وما تحاول الوصول اليه ؟؟؟؟؟ وتقتصر ردودك على صورة وعلى عدم الإجابة عن جميع الأسئلة التي نطرحها محاولةً منا لفهم الذي يحصل معك !!!!!!!!!!! أخر محاولاتي في فهم ما تريد ما لم تقم بالتوضيح أكثر في مواضيعك وطلباتك Private Sub cmd_Pay_installments_Click() On Error GoTo err_cmd_Pay_installments_Click Dim rst As DAO.Recordset Dim rstE As DAO.Recordset Dim myCriteria As String Dim TheSum As Double Dim Rc As Long Dim i As Long Dim a1 As Long Dim a2 As Long Dim PaymentMonth As Long PaymentMonth = CLng(DateSerial(Year(Me.txtMonth), Month(Me.txtMonth), 1)) Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans Where [Payment_Month]=#" & Format(Me.txtMonth, "MM/DD/YYYY") & "#") rst.MoveLast: rst.MoveFirst Rc = rst.RecordCount a1 = 0 a2 = 0 If Rc = 0 Then MsgBox " لا توجد إقتطاعات لشهر " & Format(Me.txtMonth, "mmmm") & " " & Year(Me.txtMonth), vbInformation Exit Sub End If If Len(rst!Payment_Made & "") = 0 And Not IsNull(rst!Loan_Made) Then Select Case MsgBox("هل تريد أن يتم توزيع الإقتطاعات لشهر " & Me.txtMonth, vbYesNo + vbQuestion + vbDefaultButton1) Case vbYes For i = 1 To Rc rst.Edit If rst!Nr >= 6 Then rst!Payment_Made = 0# Else If rst!Loan_Type = "Cridi" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If If rst!Loan_Type = "Elec" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If End If If rst!sadad.Value = True Then rst!wada3 = "تم التسديد" Else rst!wada3 = "لم يتم التسديد" End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rst.MoveNext Next i If Month(Now()) = 3 Or Month(Now()) = 7 Then Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans") myCriteria = "[Nr] < 6" Set rstE = CurrentDb.OpenRecordset("Select * From Employee Where " & myCriteria) rstE.MoveLast: rstE.MoveFirst Rc = rstE.RecordCount For i = 1 To Rc rst.FindFirst "[Loan_Type]='Inkhirat' And [EmployeeID]=" & rstE!EmployeeID & " And [Payment_Month]=#" & Format(Me.txtMonth, "MM/DD/YYYY") & "#" If rst.NoMatch Then rst.AddNew a2 = 1 rst!EmployeeID = rstE!EmployeeID rst!Loan_ID = 0 rst!Payment_Month = DateSerial(Year(Me.txtMonth), Month(Me.txtMonth), 1) rst!Payment_Made = DLookup("Other_Value", "TblOther", "ID=1") rst!Loan_Type = "Inkhirat" rst!Nr = GetNumDetach(rst!EmployeeID) rst!Remarks = "إقتطاع من الراتب لإنخراط شهر " & Year(Me.txtMonth) & "/" & Month(Me.txtMonth) rst!annee = Year(Date) If rst!Loan_Type = "Inkhirat" Then rst!sadad = rst!Payment_Made If rst!sadad.Value = True Then rst!wada3 = "تم الإنخراط" Else rst!wada3 = "لم يتم الإنخراط" End If End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rstE.MoveNext Next i rstE.Close: Set rstE = Nothing End If TheSum = Format(TheSum, "#,##0.00") MsgBox " " & "تم توزيع الإقتطاعات" & vbLf & vbLf & "مجموع الإقتطاعات = " & TheSum, , "إقتطاعات شهر" & FrenchMonth(Month(Date)) & Year(Date) I_am_Done: Case vbNo MsgBox "لم يتم توزيع الإقتطاعات" End Select rst.Close: Set rst = Nothing End If Exit Sub err_cmd_Pay_installments_Click: If Err.Number = 3021 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub
  4. صديقي العزيز ، التقرير لعرض البيانات وليس لإضافة بيانات وقيم في مربعات النص ، تستطيع الاستدعاء في حدث عند التحميل للتقرير 😅 .
  5. جرب فكرتي في المرفق التالي ss (1).accdb
  6. وعليكم السلام ورحمة الله وبركاته .. أخي العزيز @saffar ، من باب النصيحة وأنت تبارك الله عضو مميز ومتمنياً لك اعلى المراكز في حياتك ، حاول الإبتعاد عن المسميات المحجوزة لآكسيس مثل حقل التاريخ Date في جدولك ، فهذا سيربكك في جميع أعمالك وليس فقط في الأكواد .. على العموم قمت بإنشاء استعلام ونموذج بسيطين بحيث من خلال النموذج Form1 اختر الموظف ورقم الشهر وسيتم ادراج تاريخ أول يوم وآخر يوم في هذا الشهر .. ثم انقر زر افتح الاستعلام والذي من خلاله تستطيع انشاء تقريرك حسبما تريد وحسب حاجتك ورغبتك .. attend.mdb
  7. أخي العزيز ، طلبك غير واضح وغير مفهوم .. الرقم 35 سيتم توزيعه بناءً على ماذا ؟؟؟ وما الشروط لتقسيمه ؟؟؟ والمربعات أ ، ب ، ج ، د ، هـ = لا يزيد عن 10 <<<< ماذا تعني !!!!!! نرجو منك التوضيح لفهم المطلوب
  8. لم افهم آلية العمل على برنامجك ، ولكن من خلال ما فهمت من تتبع مسار الكود / جرب هذا التعديل . فأنت تعرف مداخل ومخارج مشروعك وكيفية العمل عليه Private Sub cmd_Pay_installments_Click() On Error GoTo err_cmd_Pay_installments_Click Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans Where [Payment_Month]=CDATE('" & Me.txtMonth & "')") rst.MoveLast: rst.MoveFirst Rc = rst.RecordCount a1 = 0 a2 = 0 If Rc = 0 Then: MsgBox " لا توجد إقتطاعات لشهر " & Format(Me.txtMonth, "mmmm") & " " & Year(Me.txtMonth), vbInformation: Exit Sub If Len(rst!Payment_Made & "") = 0 And Not IsNull(rst!Loan_Made) Then Select Case MsgBox("هل تريد أن يتم توزيع الإقتطاعات لشهر " & Me.txtMonth, vbYesNo + vbQuestion + vbDefaultButton1) Case vbYes For i = 1 To Rc rst.Edit If rst!Nr >= 6 Then rst!Payment_Made = 0# Else If rst!Loan_Type = "Cridi" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If If rst!Loan_Type = "Elec" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If End If If rst!sadad.Value = True Then rst!wada3 = "تم التسديد" Else rst!wada3 = "لم يتم التسديد" End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rst.MoveNext Next i If Month(Now()) = 3 Or Month(Now()) = 7 Then Dim rstE As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans") myCriteria = "[Nr] < 6" Set rstE = CurrentDb.OpenRecordset("Select * From Employee Where " & myCriteria) rstE.MoveLast: rstE.MoveFirst Rc = rstE.RecordCount For i = 1 To Rc rst.FindFirst "[Loan_Type]='Inkhirat' And [EmployeeID]=" & rstE!EmployeeID & " And [Payment_Month]=#" & Me.txtMonth & "#" If rst.NoMatch Then rst.AddNew a2 = 1 rst!EmployeeID = rstE!EmployeeID rst!Loan_ID = 0 rst!Payment_Month = DateSerial(Year(Me.txtMonth), Month(Me.txtMonth), 1) rst!Payment_Made = DLookup("Other_Value", "TblOther", "ID=1") rst!Loan_Type = "Inkhirat" rst!Nr = GetNumDetach(rst!EmployeeID) rst!Remarks = "إقتطاع من الراتب لإنخراط شهر " & Year(Me.txtMonth) & "/" & Month(Me.txtMonth) rst!annee = Year(Date) If rst!Loan_Type = "Inkhirat" Then rst!sadad = rst!Payment_Made If rst!sadad.Value = True Then rst!wada3 = "تم الإنخراط" Else rst!wada3 = "لم يتم الإنخراط" End If End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rstE.MoveNext Next i rstE.Close: Set rstE = Nothing End If TheSum = Format(TheSum, "#,##0.00") MsgBox " " & "تم توزيع الإقتطاعات" & vbLf & vbLf & "مجموع الإقتطاعات = " & TheSum, , "إقتطاعات شهر" & FrenchMonth(Month(Date)) & Year(Date) I_am_Done: Case vbNo MsgBox "لم يتم توزيع الإقتطاعات" End Select rst.Close: Set rst = Nothing End If Exit Sub err_cmd_Pay_installments_Click: If Err.Number = 3021 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub مع العلم أنني لم أجد الزر cmd_Pay_installments في النموذج .. على العموم ، جرب الكود وأخبرني بالنتيجة ..
  9. سامحك الله أستاذ @ناقل ، لك حرية الاستخدام كما تريد ،، ويسعدني رؤية تعديلاتك التي تفكر فيها .. جل ما نقدمه جميعاً هنا هو لوجه الله تعالى أولاً ، ثم لنستفيد منه جميعاً .
  10. ممتاز ، بما أن الجزء الأول قد تم حله ,, الجزء الثاني جرب هذا التعديل .. If Month(Now()) = 3 Or Month(Now()) = 7 Then Dim rstE As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Loans") myCriteria = "[Nr] < 6" Set rstE = CurrentDb.OpenRecordset("Select * From Employee Where " & myCriteria) rstE.MoveLast: rstE.MoveFirst Rc = rstE.RecordCount For i = 1 To Rc rst.FindFirst "[Loan_Type]='Inkhirat' And [EmployeeID]=" & rstE!EmployeeID & " And [Payment_Month]=#" & Me.txtMonth & "#" If rst.NoMatch Then rst.AddNew a2 = 1 rst!EmployeeID = rstE!EmployeeID rst!Loan_ID = 0 rst!Payment_Month = DateSerial(Year(Me.txtMonth), Month(Me.txtMonth), 1) rst!Payment_Made = DLookup("Other_Value", "TblOther", "ID=1") rst!Loan_Type = "Inkhirat" rst!Nr = GetNumDetach(rst!EmployeeID) rst!Remarks = "إقتطاع من الراتب لإنخراط شهر " & Year(Me.txtMonth) & "/" & Month(Me.txtMonth) rst!annee = Year(Date) If rst!Loan_Type = "Inkhirat" Then rst!sadad = rst!Payment_Made If rst!sadad.Value = True Then rst!wada3 = "تم الإنخراط" Else rst!wada3 = "لم يتم الإنخراط" End If End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rstE.MoveNext Next i rstE.Close: Set rstE = Nothing End If TheSum = Format(TheSum, "#,##0.00") MsgBox " " & "تم توزيع الإقتطاعات" & vbLf & vbLf & "مجموع الإقتطاعات = " & TheSum, , "إقتطاعات شهر" & FrenchMonth(Month(Date)) & Year(Date) I_am_Done: Case vbNo MsgBox "لم يتم توزيع الإقتطاعات" End Select rst.Close: Set rst = Nothing End If Exit Sub err_cmd_Pay_installments_Click: If Err.Number = 3021 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub
  11. وعليكم السلام ورحمة الله وبركاته.. رغم عدم وضعك لمرفق مساعد ، ولتلافي الخطأ جرب التعديل التالي:- Select Case MsgBox("هل تريد أن يتم توزيع الإقتطاعات لشهر " & Me.txtMonth, vbYesNo + vbQuestion + vbDefaultButton1) Case vbYes For i = 1 To Rc rst.Edit If rst!Nr >= 6 Then rst!Payment_Made = 0.00 Else If rst!Loan_Type = "Cridi" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If If rst!Loan_Type = "Elec" Then rst!Payment_Made = rst!Loan_Made rst!sadad = rst!Loan_Made rst!Loan_Remise = 0 End If End If If rst!sadad.Value = True Then rst!wada3 = "تم التسديد" Else rst!wada3 = "لم يتم التسديد" End If TheSum = TheSum + Nz(rst!Payment_Made, 0) rst.Update rst.MoveNext Next i End Select بهذه الطريقة، سيتم استثناء الأفراد الذين لديهم Nr >= 6 وتعيين Payment_Made إلى 0.00 لهم، بينما يتم تطبيق القواعد الأصلية على الباقي.
  12. وفيكم اخي الكريم .. شكراً لمرورك العطر
  13. باعتقادي لم تكن بحاجة لهذه الخطوة ،كنت أشارك مع الأساتذة دون الإطلاع على المرفق ، وأنصحك بالإبتعاد عن الأسماء المحجوزة لآكسيس مثل Image كتسمية لعنصر من عناصر النموذج .. الحمد لله على حل مشكلتك
  14. Private Sub Command5_Click() If Me.Image.Picture <> Application.CurrentProject.Path & "\Pictures\" & Me.FirstName & ".jpg" Then Me.Note1 = Null End If End Sub
  15. لم انتبه لردك استاذ @Eng.Qassim الا بعد اضافة ردي 🤦🏻‍♂️
  16. مشاركة ، بعد إذن الأساتذة.. Private Sub YourSubName() On Error GoTo ErrorHandler If IsNull(Me.Image.Picture) Or Me.Image.Picture = "" Then Me.Novel = Null Else Me.Note2 = Null End If Exit Sub ErrorHandler: MsgBox "An error occurred: " & Err.Description, vbCritical, "Error" End Sub
  17. أولاً أخي الكريم ،، اختيار أفضل إجابة تختارها للحل ، وليس لصاحب الموضوع
  18. للتوضيح ، يبدو أنني لم أفسر بشكل أوضح أخي الكريم .. بعد تسجيلك للدخول باسم الموظف سيتم انشاء المجلد عندما تختار اضافة مرفقات PDF ..
  19. بارك الله فيكم معلمنا @ابوخليل إن كنت تقصد الدوائر التي باللون الأصفر والأخضر ( التي تمثل الساعة ) ، فهي أزرار وليست مربعات تسمية أو نص
  20. هل هذا ما تقصده ؟؟ جرب سجل الدخول بأي اسم مستشفى ، ستلاحظ انشاء مجلد خاص باسم المستشفى بجانب قاعدة .. inv4.accdb
  21. دائماً ترفع معنوياتي بمداخلاتك وما شاء الله عليك مهندسنا الغالي ,, سلمت على هديتك ومشاركتك الجميلة
×
×
  • اضف...

Important Information