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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    182

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

  1. لا اعلم ماذا أقول ، ولكن هذه الصورة أيضاً كفيلة بالإجابة .. اعتقد ان المشكلة لديك في إصدار الآكسيس تم تحميل المرفق من المشاركة نفسها ، والنتيجة أعلاه توضح ما تم تنفيذه . علماً انني استخدم إصدار 2016 - 64 بت
  2. وهذه نتيجة الكود الأصلي في المشاركة الأولى لك ( أساس الموضوع ) :- هل قمت بتحميل المرفق الذي ارفقته لك ؟؟
  3. بناءً على ما فهمت من المطلوب ، هو اضافة سجلات = عدد الاشهر التي تم تأجيلها ، بشرط ان يتم تأجيل الدفعة ( القيمة ) الى الاشهر الجديدة ؛ صحيح ؟ جرب ها التعديل !!! Private Sub cmd_Do_Changes_Click() Dim rst As DAO.Recordset Dim Dat As Date Dim Remarks As String Dim i As Integer Me.Month_From = DateSerial(Year(Me.Month_From), Month(Me.Month_From), 1) If Me.Month_From < Me.DiscountStartDate Then MsgBox "آسف, شهر التأجيل الذي أدخلته أصغر من شهر بداية الإقتطاع" & vbCrLf & _ "يرجى التصحيح وحاول مرة أخرى" Exit Sub ElseIf Me.Month_From > Me.DiscountEndDate Then MsgBox "آسف, شهر التأجيل الذي أدخلته أكبر من شهر نهاية أخر إقتطاع" & vbCrLf & _ "يرجى التصحيح وحاول مرة أخرى" Exit Sub End If If Me.OpenArgs = "frmCridi" Then MySQL = "Select * From tbl_Loans Where Loan_ID = " & Me.Loan_ID & " And Loan_Type='Cridi'" Loan_Type = "Cridi" r = "" Else MySQL = "Select * From tbl_Loans Where Loan_ID = " & Me.Loan_ID & " And Loan_Type='Elec'" Loan_Type = "Elec" r = "" End If Set rst = CurrentDb.OpenRecordset(MySQL) For i = 0 To Me.Number_Of_Months - 1 Dat = Format(DateAdd("m", i, Me.Month_From), "yyyy-mm-dd") rst.FindFirst "[Payment_Month]=#" & Dat & "#" If Not rst.NoMatch Then Remarks = rst!Remarks rst.Edit rst!Loan_Made = 0 rst!Remarks = Remarks & " | " & "تأجيل الإقتطاع إلى تاريخ " & Format(DateAdd("m", i + 1, Me.DiscountEndDate), "DD-MM-YYYY") rst.Update End If rst.AddNew rst!EmployeeID = Me.EmployeeID rst!Loan_ID = Me.Loan_ID rst!Auto_Date = Me.AwardMonth rst!Payment_Month = DateAdd("m", i + 1, Me.DiscountEndDate) rst!Loan_Made = Me.DiscountPerMonth rst!Loan_Type = Loan_Type rst!Remarks = Remarks rst!annee = Year(Date) rst.Update Next i rst.Close: Set rst = Nothing Forms!frmCridi!Frm_sub!DiscountEndDate = DateAdd("m", Me.Number_Of_Months, Forms!frmCridi!Frm_sub!DiscountEndDate) Forms!frmCridi!Frm_sub!Obsérvation = Forms!frmCridi!Frm_sub!Obsérvation & " | " & _ "تأجيل الإقتطاع لمدة " & GetMoisName(i) I2 = Forms!frmCridi!Frm_sub!ID Forms!frmCridi!Frm_sub.Form.Requery Set rst = Forms!frmCridi!Frm_sub.Form.RecordsetClone rst.FindFirst "[ID]=" & I2 Forms!frmCridi!Frm_sub.Form.Bookmark = rst.Bookmark MsgBox ("تم تأجيل الإقتطاع لمدة " & GetMoisName(i)) DoCmd.Close End Sub تأجيل الاقتطاع.zip
  4. دعنا نرى إبداعاتك في هذه الفكرة ، علنا نستفيد من أفكارك 😉
  5. فكرة الكود جميلة ، ولا بأس بها ، سلمت على الفكرة . لي تعقيب واحد على ما أظن من خلال قراءة الكود ... في الجزء التالي :- For Each subFld In fld.SubFolders totalSize = totalSize + GetFolderSize(subFld) Next subFld يتم حجز مساحة في الذاكرة بشكل رهيب جداً ومتكرر بسبب تكرار الإستدعاء = For Each ، وخصوصاً مع المجلدات الكبيرة الحجم !!! وبالتالي سيكون الأداء بطيء جداً عند الإفتراض أن مجلد رئيسي يحتوي 10 مجلدات فرعية - على سبيل المثال - ونريد جلب حجم هذا المجلد ، فأن الكود سيقوم بتخزين الأمر مكرراً 10 مرات في الذاكرة وبالتالي قد ينتج عنه أخطاء إما في جلب البيانات ( حجم المجلد ) أو عدم دقتها ، أو سينتج الخطأ Overflow في نهاية المطاف . كما أنها لا تدعم الإيقاف أو ( ايقاف العملية ) وبالتالي قد تستمر العملية لوقت طويل دون تحكم . وهذه بالنسبة لي الطريقتين التي فهمتهما لاستدعاء الدوال في الكود الذي اقترحته .. 'مثال على مسار مجلد محدد في الكود Sub ExampleGetFolderSize() Dim folderPath As String Dim result As String folderPath = "C:\Intel" result = GetFileInfo( _ inputPath:=folderPath, _ fileType:=ftFolder, _ infoType:=itSizeOnly, _ decimalPlaces:=2 _ ) MsgBox "حجم المجلد: " & result End Sub ' مثال على استخدام مربع حوار لاختيار المجلد Sub ExampleWithFolderPicker() Dim result As String result = GetFileInfo( _ fileType:=ftFolder, _ infoType:=itSizeOnly _ ) If result <> "لم يتم اختيار مجلد" Then MsgBox "حجم المجلد: " & result End If End Sub هذا من وجهة نظري ، ولا أحاول الخروج عن سياق الموضوع .
  6. قد اتطلعت مسبقاً على فكرة مشابهة ذات تفاصيل اكثر في موضوع تم نشره على أحد المنتديات الأجنبية هنا .. وقد كان لي تجربة شخصية في الموضوع التالي أيضاً:- بشكل مختلف قليلاً من خلال عرض حجم قاعدة البيانات الحالية على شكل عداد
  7. للأسف ، تمت الإجابة التي لا مفر منها مسبقاً في هذه المشاركة .. ولكن يبدو أن صديقنا لم يقتنع بها 😇.
  8. ليس عليك اختيار إجابتي كأفضل إجابة ما لم تكن تريدها بهذا الشكل ، ولكن على العموم شكراً لك وللأسف ليس لدي فكرة كالتي تريدها
  9. ارفق ملف قاعدة البيانات للإطلاع عليه يا صديقي
  10. وهذه مشاركة بطريقة أخرى ، مشاركةً مع معلمي الجليل و والدنا العزيز الأستاذ @ابوخليل .. فكرتين ، الأولى هي بجعل الزر يفتح التقرير بشرطين = DoCmd.OpenReport "qrbook", acViewPreview, , , , Me.fsldrase.Column(1) & ";" & Me.drase.Column(1) وأن نجعل الحدث عند التحميل للتقرير = Dim args As Variant If Not IsNull(Me.OpenArgs) Then args = Split(Me.OpenArgs, ";") Me.Tx_Fasl = args(0) Me.Tx_Yer = args(1) End If والفكرة الثانية كما أشار أستاذي في مشاركته تماماً .. ومرفق زرين كل واحد منهما بطريقة نموذج بحث شامل 1.accdb
  11. وعليكم السلام ورحمة الله تعالى وبركاته.. هذا الخطأ دلالة على ان ملف قاعدة البيانات تالف وغير صالح 🥴 ، طيب هل جربت انك تعمل قاعدة بيانات جديدة وتستورد العناصر والمكونات من القاعدة القديمة التالفة الى الجديدة ؟؟ هي مجرد فكرة طبعاً ، أو انك تفتح قاعدة البيانات باستخدام مفتاح Shift وتحاول تعمل ضغط وإصلاح 🤔 ؟؟ مجرد إحتمالات ما لم ترفق ملف القاعدة.
  12. وعليكم السلام ورحمة الله تعالى وبركاته.. تقدر تستخدام حدث "On Key Down" في النموذج للتحقق مما إذا كان المستخدم قد ضغط على Ctrl + T أو Ctrl + D ثم تغيير خصائص التعديل والحذف بناءً على ذلك . بس طبعاً لازم تتأكد أن خاصية Key Preview في النموذج = Yes 😅 وإلا فلن نستفيد من الكود التالي :- Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyT And (Shift And acCtrlMask) <> 0 Then Me.AllowEdits = True MsgBox "تم تفعيل التعديل", vbInformation End If If KeyCode = vbKeyD And (Shift And acCtrlMask) <> 0 Then Me.AllowDeletions = True MsgBox "تم تفعيل الحذف", vbInformation End If End Sub جرب النتيجة النهائية وأخبرنا بها 😇
  13. أصبحنا اثنين 😅 . بالفعل ، نقص المعطيات يجعل من الإجابة غير دقيقة ، أضف إلى ذلك ان التقرير فارغ لا يحتوي اي عناصر حتى نستدل على الهدف المطلوب 🥴 .
  14. لماذا لم تفلح ، البداية إلى الآن جيدة .. لكن كنصائح للتذكير ليس إلا :- 1. ابتعد عن المسميات العربية للحقول والجداول والعناصر في النماذج والتقارير .. إلخ . 2. ابتعد عن المسميات التي تتكون من مقطعين ، بل حاول استخدام أي رمز مسموج للفصل بين الكلمات على سبيل المثال :- خاطئ = ( Tbl Customer ) الصحيح = ( Tbl_Customer ) . 3. لا تستعمل أسماء محجوزة أو ممنوعة من الاستخدام ، على سبيل المثال أن يكون لديك حقل اسمه Date أو Form .... إلخ ، لأنها ستسبب لك الكثير من المشاكل في العمل لاحقاً . اعتقد هذا ما يخطر ببالي حالياً . أما بخصوص تحويلك لفكرة موقع HTML الى آكسيس فهذا سيتطلب منك جهداً لاحقاً ( ليس لإحباطك ) وإنما لتكون الفكرة واضحة أمامك .
  15. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم انت تبحث عن مشرع كامل وليس حل لمشكلة محددة !! ليت باستطاعتي الإفادة والمساعدة ، ولكن عل أحد الأخوة ممن لديه وقت وتفرغ ان يساعد . ولكن لم لا تحاول بالجداول أولاً ؟؟؟؟ فعلى الأغلب ، ستحتاج جداول مثل ( المحافظات ، السلع واسعارها وأنواعها ، التاجر ، العميل ... إلخ ) ابدأ خطوتك البسيطة وأكيد ستجد الكثير من الحلول والمساعدات والأفكار قد هلّت عليك .
  16. وعليكم السلام ورحمة الله وبركاته .. وكالعادة ننوه ونذكر وننصح أخواننا في طلباتهم ومشاركاتهم أن يبتعدوا عن المسميات التي باللغة العربية والتي تحتوي مسافات ( أكثر من كلمة ) ولكن بلا جدوى ، و والله أن النصيحة ليست لي أو لأي شخص يقوم بتقديم حل لأي مشكلة بقدر ما هي ستعود بالفائدة التعليمية وصحة ودقة النتائج العملية لصاحب المشاركة والملف .. على العموم ، قد أعجبتني فكرة الأستاذ @ابو عارف ، فهي بسيطة و تلبي الحاجة المطلوبة بشكل جيد ، ولي رغبة في مشاركته أفكاره بعدة حلول ، أذكر منها حلين في مرفقين اثنين . الأول في الملف المرفق (test (1)) ، في حدث بعد التحديث للكومبوبوكس :- Private Sub اسم_الصنف_AfterUpdate() Dim selectedForm As String Dim currentID As Long selectedForm = Me.اسم_الصنف.Value currentID = Me.ID.Value If Not IsNull(selectedForm) Then DoCmd.OpenForm selectedForm, acNormal, , , , , currentID Else MsgBox "يرجى اختيار قيمة صحيحة!", vbExclamation End If End Sub بحيث يتم تطبيق الفلترة في حدث عند التحميل للنماذج الـ 3 = A,B,C التي ذكرها أخونا الكريم في طلبه :- Private Sub Form_Load() Dim recordID As Long If Not IsNull(Me.OpenArgs) Then recordID = CLng(Me.OpenArgs) Me.Filter = "[ID] = " & recordID Me.FilterOn = True If Not IsNull(Me!نموذج_فرعي_qa) Then Me!نموذج_فرعي_qa.Form.Filter = "[ID] = " & recordID Me!نموذج_فرعي_qa.Form.FilterOn = True End If Else MsgBox "لم يتم تمرير رقم السجل بشكل صحيح", vbExclamation End If End Sub الثاني في الملف المرفق (test (2)) ، في حدث بعد التحديث للكومبوبوكس :- Private Sub اسم_الصنف_AfterUpdate() Dim selectedForm As String Dim currentID As Long selectedForm = Me.اسم_الصنف.Value currentID = Me.ID.Value If Not IsNull(selectedForm) Then DoCmd.OpenForm selectedForm, acNormal, , , , , currentID Else MsgBox "يرجى اختيار قيمة صحيحة", vbExclamation + vbMsgBoxRight End If End Sub وتم نقل الكود لضمان عدم تكراره في النماذج الى وحدة نمطية مع إجراء بعض التعديلات ، بحيث يصبح الكود منفصلاً كالتالي :- Public Sub ApplyRecordFilter(frm As Form, Optional subFormName As String = "", Optional recordID As Variant) If IsNull(recordID) Or recordID = "" Then MsgBox "لم يتم تمرير رقم السجل بشكل صحيح", vbExclamation + vbMsgBoxRight Exit Sub End If frm.Filter = "[ID] = " & recordID frm.FilterOn = True If subFormName <> "" Then On Error Resume Next If Not IsNull(frm.Controls(subFormName)) Then frm.Controls(subFormName).Form.Filter = "[ID] = " & recordID frm.Controls(subFormName).Form.FilterOn = True Else MsgBox "لم يتم العثور على النموذج الفرعي " & subFormName, vbExclamation + vbMsgBoxRight End If On Error GoTo 0 End If End Sub والإستدعاء يكفينا في النماذج الفرعية كالتالي :- Private Sub Form_Load() ApplyRecordFilter Me, "نموذج_فرعي_qa", Me.OpenArgs End Sub قمنا بتمرير قيمة الـ ID إلى النموذج الرئيسي باستخدام OpenArgs لأنها طريقة آمنة وموثوقة بالنسبة لي ، ثم سنطبق الفلتر داخل حدث تحميل النموذج ( On Load ) مباشرة بعد أن يفتح بالكامل وفي الفكرتين لن نحتاج أي روابط بين الحقول ( Link Master Fields & Link Child Fields ) لأننا سنعتمد على الفلتر يدوياً . المرفقات للطريقتين :- test (1).accdb test (2).accdb
  17. بعد تجربة الفكرة ، وبغض النظر عن أنها تحتاج فعلاً لإنترنت كي تتم المقارنة ، هذه تجربتي الفعلية موضحة في الصورة التالية .. هل من تفسير استاذنا الغالي ؟؟ 😊 ايضاً عند عدم الاتصال بالانترنت بقي التاريخ الدولي هو نفسه ، ولا اعلم مصدره ان لم يكن هناك انترنت في الكمبيوتر !!
  18. لا أزايد على الأستاذ @Barna الغالي فيما تفضل به ، ولكن لضمان عرض الرسالة بشكل منطقي وسهل القراءة ، اعتقد اضافة الجزء vbMsgBoxRight لتحويل نص الرسالة من اليمين الى اليسار كقراءة لللغة العربية سيكون أفضل أيضاً
  19. الفراغ الذي دار الحديث حوله اذا كان مربع النص حقل نصي ، إما اذا كان حقل رقمي فلا حاجة لـ Trim باعتقادي 😁 ولا في حد عنده اعتراض هههههههه
  20. ما دام الأمر متوسعاً إلى هذا الحد 😁 ، فهذه فكرتي المتواضعة البسيطة ، وتضم 3 طرق بشكل (مباشر وغير مباشر ) لتحقيق الهدف مديول عام يضم الأساليب الثلاثة كالتالي :- ' الدالة الأولى: حساب تاريخ التقاعد فقط Public Function CalculateRetirementDate(birthDateControl As Object) As Variant Dim birthDate As Date Dim retirementAge As Integer Dim retirementDate As Date Dim inputDate As String If IsNull(birthDateControl.Value) Or birthDateControl.Value = "" Then MsgBox "يرجى إدخال تاريخ ميلاد", vbExclamation + vbMsgBoxRight CalculateRetirementDate = Null Exit Function End If If Not IsDate(birthDateControl.Value) Then MsgBox "تاريخ الميلاد غير صحيح . يرجى إدخال تاريخ بتنسيق صحيح (يوم/شهر/سنة)", vbExclamation + vbMsgBoxRight CalculateRetirementDate = Null Exit Function End If birthDate = CDate(birthDateControl.Value) If birthDate > Date Then MsgBox "تاريخ الميلاد لا يمكن أن يكون في المستقبل", vbExclamation + vbMsgBoxRight CalculateRetirementDate = Null Exit Function End If If Year(birthDate) < 1900 Then MsgBox "تاريخ الميلاد غير منطقي. يرجى إدخال تاريخ صحيح", vbExclamation + vbMsgBoxRight CalculateRetirementDate = Null Exit Function End If Select Case Year(birthDate) Case Is < 1960 retirementAge = 60 Case 1960 To 1964 retirementAge = 61 Case 1965 To 1969 retirementAge = 62 Case 1970 To 1974 retirementAge = 63 Case 1975 To 1979 retirementAge = 64 Case Is >= 1980 retirementAge = 65 Case Else MsgBox "تاريخ الميلاد خارج نطاق الحساب", vbExclamation + vbMsgBoxRight CalculateRetirementDate = Null Exit Function End Select retirementDate = DateAdd("yyyy", retirementAge, birthDate) - 1 CalculateRetirementDate = retirementDate End Function ' الدالة الثانية: حساب تاريخ التقاعد فقط (غير منضم) Public Function GetRetirementDateByBirth(birthDateInput As Object) As Variant Dim inputBirthDate As Date Dim ageAtRetirement As Integer Dim calculatedRetirementDate As Date If IsNull(birthDateInput.Value) Or birthDateInput.Value = "" Then GetRetirementDateByBirth = "لم يتم إدخال تاريخ ميلاد لهذا الموظف" Exit Function End If If IsDate(birthDateInput.Value) Then inputBirthDate = CDate(birthDateInput.Value) Select Case Year(inputBirthDate) Case Is < 1960 ageAtRetirement = 60 Case 1960 To 1964 ageAtRetirement = 61 Case 1965 To 1969 ageAtRetirement = 62 Case 1970 To 1974 ageAtRetirement = 63 Case 1975 To 1979 ageAtRetirement = 64 Case Is >= 1980 ageAtRetirement = 65 Case Else MsgBox "تاريخ الميلاد خارج نطاق الحساب", vbExclamation + vbMsgBoxRight GetRetirementDateByBirth = Null Exit Function End Select calculatedRetirementDate = DateAdd("yyyy", ageAtRetirement, inputBirthDate) - 1 GetRetirementDateByBirth = calculatedRetirementDate Else MsgBox "يرجى إدخال تاريخ ميلاد صحيح", vbExclamation + vbMsgBoxRight GetRetirementDateByBirth = Null End If End Function ' الدالة الثالثة: حساب تاريخ التقاعد مع المدة المتبقية Public Function CalculateRetirementInfo(birthDateField As Object) As String Dim employeeBirthDate As Date Dim retirementAge As Integer Dim retirementDate As Date Dim timeRemaining As String Dim currentDate As Date currentDate = Date If IsNull(birthDateField.Value) Or birthDateField.Value = "" Then CalculateRetirementInfo = "لم يتم إدخال تاريخ ميلاد لهذا الموظف" Exit Function End If If IsDate(birthDateField.Value) Then employeeBirthDate = CDate(birthDateField.Value) Select Case Year(employeeBirthDate) Case Is < 1960 retirementAge = 60 Case 1960 To 1964 retirementAge = 61 Case 1965 To 1969 retirementAge = 62 Case 1970 To 1974 retirementAge = 63 Case 1975 To 1979 retirementAge = 64 Case Is >= 1980 retirementAge = 65 Case Else CalculateRetirementInfo = "تاريخ الميلاد خارج نطاق الحساب" Exit Function End Select retirementDate = DateAdd("yyyy", retirementAge, employeeBirthDate) - 1 timeRemaining = GetTimeRemaining(currentDate, retirementDate) CalculateRetirementInfo = "تاريخ سن التقاعد في : " & Format(retirementDate, "dd/mm/yyyy") & " ، وبقي عليه " & timeRemaining Else CalculateRetirementInfo = "تاريخ الميلاد غير صحيح" End If End Function ' دالة مساعدة: حساب الفرق بين تاريخين Public Function GetTimeRemaining(startDate As Date, endDate As Date) As String Dim yearsDiff As Integer Dim monthsDiff As Integer Dim daysDiff As Integer Dim yearsText As String Dim monthsText As String Dim daysText As String yearsDiff = DateDiff("yyyy", startDate, endDate) If DateAdd("yyyy", yearsDiff, startDate) > endDate Then yearsDiff = yearsDiff - 1 End If monthsDiff = DateDiff("m", DateAdd("yyyy", yearsDiff, startDate), endDate) If DateAdd("m", monthsDiff, DateAdd("yyyy", yearsDiff, startDate)) > endDate Then monthsDiff = monthsDiff - 1 End If daysDiff = DateDiff("d", DateAdd("m", monthsDiff, DateAdd("yyyy", yearsDiff, startDate)), endDate) Select Case yearsDiff Case 1, 2 yearsText = "سنة" Case 3 To 10 yearsText = "سنوات" Case Else yearsText = "سنة" End Select Select Case monthsDiff Case 1, 2 monthsText = "شهر" Case 3 To 10 monthsText = "أشهر" Case Else monthsText = "شهر" End Select Select Case daysDiff Case 1, 2 daysText = "يوم" Case 3 To 10 daysText = "أيام" Case Else daysText = "يوم" End Select GetTimeRemaining = yearsDiff & " " & yearsText & " و " & monthsDiff & " " & monthsText & " و " & daysDiff & " " & daysText End Function والفكرة الأولى لحدث بعد التحديث لمربع نص تاريخ الميلاد = الفكرة الأولى تتحقق بشكل مباشر من خلال حدث بعد التحديث دون دالة في وحدة نمطية Private Sub TEmp_BirthDate_AfterUpdate() Dim birthDate As Date Dim retirementAge As Integer Dim retirementDate As Date If IsDate(Me.TEmp_BirthDate) Then birthDate = Me.TEmp_BirthDate Select Case Year(birthDate) Case Is < 1959 retirementAge = 60 Case 1959 To 1961 retirementAge = 61 Case 1962 To 1964 retirementAge = 62 Case 1965 To 1967 retirementAge = 63 Case 1968 To 1970 retirementAge = 64 Case Is >= 1971 retirementAge = 65 Case Else MsgBox "تاريخ الميلاد خارج نطاق الحساب", vbExclamation + vbMsgBoxRight Exit Sub End Select retirementDate = DateAdd("yyyy", retirementAge, birthDate) - 1 Me.M2 = retirementDate Else MsgBox "يرجى إدخال تاريخ ميلاد صحيح", vbExclamation End If End Sub والفكرة الثانية لحدث بعد التحديث لمربع نص تاريخ الميلاد = 'الفكرة الثانية تتحقق بشكل مباشر من خلال حدث بعد التحديث باستخدام دالة في وحدة نمطية Private Sub TEmp_BirthDate_AfterUpdate() Dim retirementDate As Variant retirementDate = CalculateRetirementDate(Me.TEmp_BirthDate) If Not IsNull(retirementDate) Then Me.M2 = retirementDate End If End Sub الفكرة الثالثة والرابعة من خلال مصدر بيانات مربع النص لمربع سن التقاعد أو المعاش = =GetRetirementDateByBirth([TEmp_BirthDate]) أو لإظهار التفاصيل للمدة المتبقية مع تاريخ سن التقاعد أو المعاش = =CalculateRetirementInfo([TEmp_BirthDate]) سن التقاعد.accdb
  21. وعليكم السلام ورحمة الله وبركاته .. كمعلومة من أحد الإصدقاء لي في مصر الشقيقة ,, هل قانون التأمينات الجديد لعام 2019 بيحدد سن المعاش تدريجياً حسب سنة الميلاد بالشكل التالي :- مواليد قبل 1/1/1959 : سن التقاعد 60 سنة ، مواليد من 1959 إلى 1961 : سن التقاعد 61 سنة ، مواليد من 1962 إلى 1964 : سن التقاعد 62 سنة ، مواليد من 1965 إلى 1967 : سن التقاعد 63 سنة ، مواليد من 1968 إلى 1970 : سن التقاعد 64 سنة ، مواليد 1971 وما بعدها : سن التقاعد 65 سنة ؟؟؟؟؟؟؟
  22. وعليكم السلام ورحمة الله وبركاته ,, أخي جو لم كل هذا ، تستطيع استخدام التنسيق الشرطي لتغيير لون خلفية مربع النص Pname ( اسم المريض ) فقط ، بدلاً من تحميل النموذج المستمر الفرعي حملاً زائداً مع وجود تنسيقات شرطية أخرى لمربعات النص الأخرى ( إن وُجد ) .. أضف إلى ذلك ، لضمان تغيير لون خلفية مربع النص دون مشاكل ، يجب ان تختار لون خلفية لمربع النص الي قمت بتحديد تنسيقات شرطية له ، بحيث اذا كان مربع النص لونه شفاف فإن التنسيق الشرطي لتغيير لون الخلفية لن يعمل ( وجهة نظري ) .
×
×
  • اضف...

Important Information