
Barna
الخبراء-
Posts
1075 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
24
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Barna
-
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هذه فكرة فقط ... انت من يحدد ماذا تريد وغير ملزم لك . حسب برنامجك ويمكن الغائها نهائيا -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هذا طبيعي لانه تم الاقتطاع صحيح راجع الجدول هل تم الاقتطاع لهذه الاشهر -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
طيب جرب المرفق التالي بعد مسح الاقتطاعات BAR_2.mdb -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
السلام عليكم ورحمة الله وبركاته اخي الكريم @طاهر اوفيسنا اسف اولا لعدم دخولي المنتدى لانشغالي في تصميم برنامج لأحد الأشخاص ثانيا ممكن توضيح ماذا تريد أو ما هي المشكلة التي في الكود هل تريد ان يعمل الكود في كل مرة يتم فيها فتح النموذج أم فقط في شهري 3 و 7 فقط -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
طيب جرب المرفق بعد مسح بيانات الانخراطات والقروض ............. BAR_2.mdb -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هذه بارك الله فيك نتيجة التجارب العديدة .... امسح المسج الاخير .... -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
جرب المرفق التالي BAR_1.mdb قم بمسح الاقتطاعات السابقة -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هذا الكود المطلوب نسخه مكان كود الشرط الثاني لديك -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
-
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
المشكلة في التحقق كان الكود يتحقق من كل سجلات المنخرط سواءا كانت مدفوعات او انخراط ' التحقق من المدفوعات السابقة مع تصفية `wada3 = "تم الإنخراط"` If Month(Now()) = 3 Then PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _ " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 1, 1) & "# AND #" & DateSerial(SelectedYear, 2, 28) & "# AND [wada3]='تم الإنخراط'"), 0) Else PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _ " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 4, 1) & "# AND #" & DateSerial(SelectedYear, 6, 30) & "# AND [wada3]='تم الإنخراط'"), 0) End If -
التعديل الاخير لكود الاقتطاع لم يلبي الرغبات 100%
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
اهلا بك ...... جرب هذا .... If Month(Now()) = 3 Or Month(Now()) = 7 Then Dim db As DAO.Database Dim rstE As DAO.Recordset, rst As DAO.Recordset Dim myCriteria As String, TheSum As Double, PaymentCheck As Variant Dim SelectedYear As Integer Set db = CurrentDb ' استخراج السنة من التكست بوكس SelectedYear = Year(Now()) ' تحديد معايير الموظفين myCriteria = "[detach] IN ('موظف', 'عامل متعاقد توقيت كامل', 'عامل متعاقد توقيت جزئي', 'حارس متعاقد توقيت جزئي', 'عون نظافه وتطهير')" ' فتح سجل الموظفين المطابقين للمعايير Set rstE = db.OpenRecordset("SELECT * FROM Employee WHERE " & myCriteria, dbOpenDynaset) If Not rstE.EOF Then rstE.MoveFirst Do Until rstE.EOF ' التحقق من المدفوعات السابقة مع تصفية `wada3 = "تم الإنخراط"` If Month(Now()) = 3 Then PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _ " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 1, 1) & "# AND #" & DateSerial(SelectedYear, 2, 28) & "# AND [wada3]='تم الإنخراط'"), 0) Else PaymentCheck = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID=" & rstE!EmployeeID & _ " AND [Payment_Month] BETWEEN #" & DateSerial(SelectedYear, 4, 1) & "# AND #" & DateSerial(SelectedYear, 6, 30) & "# AND [wada3]='تم الإنخراط'"), 0) End If ' إذا كان الموظف قد دفع بالفعل 3000 أو أكثر، انتقل إلى الموظف التالي If PaymentCheck >= 3000 Then GoTo NextEmployee ' فتح سجل القروض وإضافة اقتطاع جديد إذا لم يكن موجودًا Set rst = db.OpenRecordset("tbl_Loans", dbOpenDynaset) rst.FindFirst "[Loan_Type]='Inkhirat' AND [EmployeeID]=" & rstE!EmployeeID & " AND [Payment_Month]=#" & Format(CDate(Me.txtMonth), "mm/dd/yyyy") & "#" If rst.NoMatch Then rst.AddNew rst!EmployeeID = rstE!EmployeeID rst!Loan_ID = 0 'rst!Payment_Month = DateSerial(Year(CDate(Me.txtMonth)), Month(CDate(Me.txtMonth)), 1) 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(CDate(Me.txtMonth)) & "/" & Month(CDate(Me.txtMonth)) rst!annee = SelectedYear rst!sadad = rst!Payment_Made rst!wada3 = IIf(rst!sadad > 0, "تم الإنخراط", "لم يتم الإنخراط") rst.Update TheSum = TheSum + Nz(rst!Payment_Made, 0) End If rst.Close NextEmployee: rstE.MoveNext Loop rstE.Close: Set rstE = Nothing db.Close: Set db = Nothing ' تنسيق وعرض المجموع TheSum = Format(TheSum, "#,##0.00") MsgBox "تم توزيع الإقتطاعات" & vbCrLf & vbCrLf & "مجموع الإقتطاعات = " & TheSum, , "إقتطاعات شهر " & FrenchMonth(Month(CDate(Me.txtDate))) & SelectedYear End If -
جرب هذا Function record(Criteria As String) Dim rs As DAO.Recordset Dim db As DAO.Database Dim condition As String ' قم بتعيين قاعدة البيانات الحالية Set db = CurrentDb Set rs = db.OpenRecordset("SELECT * FROM customers") ' تحديد الشرط condition = "City = '" & Criteria & "'" rs.FindFirst condition Do While Not rs.NoMatch ' إضافة العنصر إلى القائمة List1.AddItem rs!FirstName ' ابحث عن العنصر التالي rs.FindNext condition Loop ' إغلاق السجل rs.Close Set rs = Nothing Set db = Nothing End Function Private Sub Command0_Click() Dim City As String ' تعيين القيمة للمدينة City = "aa" ' استدعاء الدالة record City End Sub
-
هل هذه هي الرسالة الظاهرة لديك ؟؟ اذا كانت الاجابة نعم !!! فانت تحتاج الى تغيير اسم المشروع لديك .... لفعل ذلك انظر الصورة التالية ...... غير اسم Database باي اسم اخر .... فقط
-
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
نعم صحيح -
معليش ... ملاحظة اخي خالد .... لماذا هذا الكم من الكشوف ؟؟ هل كل كشف يختلف من حيث التصميم عن الاخر ..؟؟ ام البيانات هي ققط المختلفة ؟؟ لماذا لم تستخدم عملية الفلترة لاظهار البيانات في نفس الكشف ؟؟
-
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
طيب الحمد لله .... جرب كدة المشكلة السابقة واعلمنا بالنتيجة BAR_A.mdb -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
عند توفر جهاز حاسب .. انظر فيها طيب جرب بقية الاحتمالات ... واعلمنا بها النظر بها جميعا ان شاء الله تعالى -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
لم افهم عليك ... لاني اخاطبك بالهاتف -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هذا الجدول فقط للمنحة المحددة بفترات يعني مثلا كل سنة ... كل سنتين ... مرة واحدة المنح الأخرى وايضا المنح المسجلة هنا كما هي في جداولها الاساسية لا تغيرها انت كل ماهو عليك إعادة كتابة المنح التى تريد إعطاء محدودية لها في الجدول الجديد فقط افتح المرفق وتمعن في الجداول القديمة والجدول الجديد لديك ... سوف تفهم ما حدث -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
طيب لاحظ الشرح التالي ::::::::::::::::::::::::::::: اولا:: الجدول tbl_MenhaRules يجب كتابة اسم المنحة ورقم المنحة ونوع المنحة كما هو موجود بالجداول الموجودة لديك دون تغيير ( اوكد دون تغير لا في الرقم ولا في الاسم ولا في نوع المنحة) كما في الصورة ثانيا:::: المنح التي يكتب في هذا الجدول فقط التى عليها شروط ( 1 تعني سنه - 2 تعني سنتان وهكذا - اما التي تصرف مرة واحدة فسجلها 100 ) ثالثا::: بقية المنح لا تسجل ابدا في هذا الجدول ( يعني في النهاية سوف يون لديك عدد سجلات بسيطة في هذا الجدول الجديد tbl_MenhaRules ) رابعا :::: طبق على المثال المرفق واعلمنا بالنتيجة BAR_A.mdb -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
هل انت بصدد تعديل شامل على البرنامج ام ماذا؟؟ لاننا لا نريد تعديل الاكواد لكثرتها فقط نريد انشاء جدول واحد جديد فقط اقوم لإنشاء الجدول واعدل في المرفق السابق .... انتظرني -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
فكرتي كانت جدول واحد يضاف مثل الصورة ونسجل فيه ما نريد عشان لا نكرر الاكواد لكل جدل ... انظر الصورة لو كانت المنح كلها في جدول واحد كان افضل ... لان برنامجك في كثرة جداول -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
حياك الله ..... بسبب التصميم لديك كل نوع منحة في جدول ( المفترض تون بيانات استحقاق المنح كلها في جدول واحد بدل تعدد الجداول ) وبسبب ان برنامجك اعتقد مصمم وتعمل عليه حاليا .... اقترح عليك او فكرت بانشاء جدول صغير تحسبا للتعديلات مثل ممكن في يوم من الايام تريد نعديل منحة معينة بحيث تصبح النظارات الطبية كل سنه مثلا او يصبح الحج كل 10 سنوات او حتى تضيف منح اخرى للشرط .... اقتراحي عمل جدول صغير ونسجل فيه كل المنح المشروطة .... مثلا انظر الصورة ...... 100 تعني مره واحدة في العمر -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
قد يكون هذا الفانك أقل عدد اسطر من السابق جربة واعلمنا بالنتيجة ................... Public Function CheckInkhirat(ByRef ID As Integer) As String On Error GoTo err_CheckInkhirat Dim yearNow As Integer, totalPaid As Currency, totalPaidLastYear As Currency Dim paymentMarch As Boolean, paymentJuly As Boolean Dim t As Integer, t1 As Integer Dim result_haj As Variant, latestDate As Variant Dim todayDate As Date, yearsDifference As Long ' تحديد السنة If Month(Date) < 3 Then yearNow = Year(Date) - 1 t = 1 Else yearNow = Year(Date) t = 2 End If ' الحصول على تاريخ اليوم todayDate = Date ' إجمالي المبلغ المدفوع totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Loan_ID = 0"), 0) ' تحقق من نوع الامتياز Select Case [Forms]![FrmMenah]![Etar] Case "المنح العائلية" result_haj = DLookup("[Menha_Date]", "[Mena7]", "[EmployeeID] =" & ID & " And [Menha_ID] =" & [Forms]![FrmMenah]![Frm_sub].[Form]![CmdMenha] & " And [Menha_ID] =11") Case "التعويضات الطبية" result_haj = Null If [Forms]![FrmMenah]![Frm_sub].[Form]![cmdSanitaire] = 2 Then latestDate = Nz(DMax("[Sanitaire_Date]", "[Sanitaire]", "[EmployeeID] =" & [Forms]![FrmMenah]![EmployeeID] & " And [Nom_Beneficiaire] ='" & [Forms]![FrmMenah]![Frm_sub].[Form]![Nom_Beneficiaire] & "'"), #10/1/2000#) yearsDifference = DateDiff("yyyy", latestDate, todayDate) t1 = IIf(yearsDifference < 2, 1, 2) End If End Select ' التحقق من دفع المبلغ في مارس ويوليو paymentMarch = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 3"), 0) = 1500 paymentJuly = Nz(DLookup("Payment_Made", "tbl_Loans", "EmployeeID = " & ID & " AND Year(Auto_Date) = " & yearNow & " AND Month(Auto_Date) = 7"), 0) = 1500 ' بناء الرسالة بناءً على الشروط If totalPaid = 3000 Then Dim message As String message = "عزيزي المنخرط(ة)، يمكنك الاستفادة من " If t = 1 Then message = message & "الامتيازات لأنك دفعت مبلغ الانخراط الخاص بالسنة الماضية كاملاً." ElseIf t = 2 Then message = message & "جميع الامتيازات لأنك دفعت مبلغ الانخراط كاملاً" If paymentMarch And paymentJuly Then message = message & " على دفعتين." Else message = message & "." End If End If If Not IsNull(result_haj) Then message = message & vbNewLine & "ولكن قد استفت من منحة الحج لعام " & vbNewLine & result_haj ElseIf IsNull(result_haj) And t1 = 1 Then message = message & vbNewLine & "ولكن قد استفت من منحة النظارات الطبية بتاريخ " & vbNewLine & latestDate End If CheckInkhirat = message Else CheckInkhirat = "عزيزي المنخرط(ة)، لا يمكنك الاستفادة من الامتيازات لأنك لم تدفع مبلغ الانخراط." End If Exit Function err_CheckInkhirat: MsgBox "خطأ رقم " & Err.Number & ": " & Err.Description, vbCritical, "خطأ" CheckInkhirat = "حدث خطأ أثناء التحقق من بيانات الانخراط." End Function -
الموافقة على منح تعويض بشرط مرة واحدة خلال 02 سنة للشخص الواجد
Barna replied to طاهر اوفيسنا's topic in قسم الأكسيس Access
احاول تعديل الفانك واختصاره بطريقة ما .... جاري العمل على ذلك