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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. السلام عليكم عفوا اخي احمد ، اسمح لي بإبداء رايي: صحيح ان البرنامج قد يكون ملكا لك ، ولكن البيانات ليست ملكك ، فهي ملك الذي ادخلها ، واذا دمرتها/حذفتها فانك تعتدي على ملكية غيرك !! لو كنت مكانك ، لأقفلت البرنامج بعدم السماح للمستخدم بعمل اي شئ ، سوى تصدير بياناته الى الاكسل مثلا. جعفر
  2. السلام عليكم أخي كريمو المرفق الان يعمل على: 1. بعد إضافة القرض في Cridi ، فان القرض يسجل في tbl_Loans ، 2. يمكنك تعديل هذا القرض وتأجيله ، ونتائجه تسجل في tbl_Loans ، 3. بعد إضافة القرض في Elec ، فان القرض يسجل في tbl_Loans ، 4. يمكنك تعديل هذا القرض وتأجيله ، ونتائجه تسجل في tbl_Loans ، 5. يمكن فتح نموذج سداد المبلغ ، والذي سيفتح سجلات القرض المختار. رجاء التجربة ، ثم التجربة ، وتجربة حذف القرض كذلك. الخطوة الاخيرة (هذا الذي اعتقده ) : حساب Remaining على اساس المبالغ المدفوعة. جعفر 11.5.FrmDiscountReport.mdb.zip
  3. السلام عليكم انا اسمي موجود اشكرك على الموضوع ، وعلى وجود اسمي بين اخواني العمالقة جعفر
  4. قلت لك عيني حتكون عليك وعيني عليك باردة ، ماشاء الله عليك جعفر
  5. أخوي سلمان اذا رجعت لنفس المشكلة اللي صادفتك سابقا ، بس لموضوع آخر ، ورد عليك أخونا الكبير ابوخليل على هذا الرابط: http://www.officena.net/ib/index.php?showtopic=61220 لاحظ الامر regsvr32 جعفر
  6. السلام عليكم أخي كريمو انا عدلت هذه المادة فقط ، فرجاء تجربتها مع باقي الخطوات التي كتبتها لك سابقا ، وموافاتي بالنتيجة جعفر 11.4.FrmDiscountReport.mdb.zip
  7. حياك الله كما قلت في البداية ، انا استعمل هذا الجدول تقريبا في جميع برامجي الرئيسية ، وهو يلبي لي طلب الزبائن ، وخصوصا بالاشهر ، واساس حل الموضوع هو الجدول نفسه جعفر
  8. وعليكم السلام هو الحل كما تفضل به الاخ مارد ولكن ، اذا كان نظام الوندوز عندك انجليزي وارت ان تكتب اسم اليوم او الشهر بالعربي ، فهذا يحتاج الى عمل اضافي انا عندي جدول اسمه tbl_Months وبه اسماء الاشهر الهجرية ، والاشهر الانجليزية بالانجليزي والعربي ، والاشهر العراقية (الشامية) ، واضفت اليه الايام كذلك: وعليه ، عملت كود يقرأ اذا نظام الوندوز ، وعلى اساسه تستطيع ان تطلب اليوم ، كما في هذا النموذج (ادخل / اختر التاريخ ، ثم اضغط على مفتاح TAB على keyboard) ، وعلى اساسه سترى بقية الاسماء باللغة الاخرى: وهذا هو الكود الذي يقوم بكل شئ: Private Sub myDate_AfterUpdate() 'display the dates based on the system setting Me.Date_1 = Format(Me.myDate, "dddd dd/mm/yyyy") Me.Date_2 = Format(Me.myDate, "dddd dd, mmm yyyy") Me.Day_System = Format(Me.myDate, "dddd") Me.Month_System = Format(Me.myDate, "mmmm") 'read the 1st letter of the day, and check if it is Arabic or latin If Left(Asc(Format(Me.myDate, "dddd")), 1) > 127 Then 'the system is Arabic 'get the English info from the table Me.Day_table = DLookup("[Days_English]", "tbl_Months", "[Days_Arabic]='" & Format(Me.myDate, "dddd") & "'") Me.Date_3 = Me.Day_table & Format(Me.myDate, " dd/mm/yyyy") Me.Month_Table = DLookup("[Months_English]", "tbl_Months", "[Months_Georgian]='" & Format(Me.myDate, "mmm") & "'") Me.Date_4 = Me.Day_table & Format(Me.myDate, " dd, ") & Me.Month_Table & Format(Me.myDate, " yyyy") Else 'the system is English 'get the Arabic info from the table Me.Day_table = DLookup("[Days_Arabic]", "tbl_Months", "[Days_English]='" & Format(Me.myDate, "dddd") & "'") Me.Date_3 = Me.Day_table & Format(Me.myDate, " dd/mm/yyyy") Me.Month_Table = DLookup("[Months_Georgian]", "tbl_Months", "[Months_English]='" & Format(Me.myDate, "mmmm") & "'") Me.Date_4 = Me.Day_table & Format(Me.myDate, " dd, ") & Me.Month_Table & Format(Me.myDate, " yyyy") End If End Sub جعفر tbl_Months.zip
  9. وعليكم السلام الامر هو: regsvr32 "C:\WINDOWS\system32\MSINET.OCX " انت نسيت امر التسجيل هنا التفاصيل كاملة: http://www.ctimls.com/Support/KB/How%20To/Register_dll.htm جعفر
  10. متباركين شباب من الآن ورايح ، عيوننا بتكون على مشاركتكم (طبعا هذا ما يعني اني ما كنت متابع مشاركاتكم سابقا) جعفر
  11. السلام عليكم أخي المارد اذا كان الحقل myDate بصيغة تاريخ ، فالمعادلة التالية هي لصيغة ارقام: j = "Day(MyDate) = " & Day(Me.MyDate) واذا اردنا ان نعملها بصيغة تاريخ ، فالمعادلة ستكون ، كما شرحتها انت في موضوع رابط دالة DLookup ، والتي تعتبر مثل Dsum و Dmax ووو: http://www.officena.net/ib/index.php?showtopic=61469 j = "Day(MyDate) = #" & Day(Me.MyDate) & "#" جعفر
  12. يا سلام ، هذا الفن وإلا بلاش
  13. انا دايخ وتعبان ، فاعطيت ما قل ودل ولكن ، لو ان سؤالك كان فيه عملية غير السالب والموجب والجمع ، كنا نضطر للكود بس الحمدلله جت سليمة جعفر
  14. لأن الطريقة الثانية فيها كود طويل وللعلم ، بدل : DoCmd.RunCommand acCmdSaveRecord تقدر تستعمل me.refresh او if me.dirty then me.dirty=false والقصد هو حفظ السجل جعفر
  15. تفضل يا ريس في النموذج: وكود بعد التحديث: Private Sub PSelect_AfterUpdate() DoCmd.RunCommand acCmdSaveRecord End Sub طبعا في طرق اخرى ، بس انا اليوم كسلان جعفر 73.Absence of Employees.mdb.zip
  16. وعليكم السلام أخي كريمو نعم عدت اليوم عصرا من سفري وان شاء الله غدا اواصل من حيث انتهينا ، إلا اذا عندك ملاحظات جديدة جعفر
  17. السلام عليكم ايش رأيك في هذه الطريقة: سحب أكثر من حقل من سجل واحد في الجدول ، وهذا الرابط فيه المثال http://www.officena.net/ib/index.php?showtopic=61152&p=394338 جعفر
  18. مبارك إن شاء الله أبو ياسر :-) و إن شاء الله نرى مشاركاتك في مساعدة الأخوة كذلك :-) جعفر
  19. وعليكم السلام ورحمة الله وبركاته 01- فكرة الترتيب تتم لجميع القروض ويكتب 0.00 في الجدول tbl_Loans للأشهر المعفاة لا ليس لجميع القروض ، وإنما للقرض الذي الذي تم اختياره (السجل الذي تكون عليه في Cridi وتضغط على زر اعادة تقسيم الاقتطاع). بعدما وجدت صعوبة في قرض2 الى قرض 4 ما هي هذه الصعوبة ، رجاء اعطني تفاصيل دقيقة بأمثلة لوسمحت ، لأني اخبرتك: فكل شئ يعتمد على هذا النموذج. 02- مالغاية من أنشاء نموذج فرعي FrmCridi_sub_OLD انا عندما اغير شئ في برنامج ، دائما احتفظ بالاصل ، واطلق عليها OLD ، حتى اعرفه ، ويمكن في النهاية حذفه. 03 - الإستعلام qry_Loans ينقصة الباقي الشهري وهذا هو " لب المطلب " الذي تطرقنا له منذ البداية المسألة سهلة ولكننا لم نصل اليها: 1. عند دفع كل شهر ، فسنكتب في خانة Payment_Made في النموذجfrm_Loans ، القيمة المدفوعة لذلك الشهر (وهذا ينطبق على الموظف الذي يريد ان يدفع اي مبلغ يحب في ذلك الشهر) ، 2. عندها ، كل الذي يجب عمله هو جمع حقل Cridi وحقل Payment_Made في الاستعلام qry_Loans ، ونطرحهم من بعض لنحصل على الباقي الشهري Remaining . 04- النموذج الفرعي FrmCridi_sub2 الدي هو دمج بين Cridi و Elec عند فتحة لا نلاحظ شيئا به بالرغم أني سجلت معلومات ب Elec انا صغرت الحقول لكي يتسع المكان لبقية حقول ElectroM الاضافية ، ولكني لم اصل اليها. (ولكني ضبطته بحيث تستطيع استبداله مكان FrmCridi_Sub ، وسيعمل بالطريقة الصحيحة) ، ولكن ، قد نلغي فكرة دمج النموذجين ، فعندها تستطيع ان تنسخ الكود من النموذج Cridi الى النموذج ElectroM لعمل الازم. 05- زر سداد المبلغ بنموذج Cridi لا يعمل هذا الزر يجب ان يفتح النموذج frm_Loans للقرض/السجل الذي تكون عليه في Cridi ، وانت بعد ذلك تدخل مبلغ السداد للشهر المطلوب (لاحظ 03.1 و 03.2 اعلاه لمعرفة طريقة الحساب). 06- عند تجربة قرض ومن بعد يتم حذفه نلاحظ انه يحدف من الجدول Cridi ولا يحذف من الجدول tbl_Loans اعمل علاقة بين الجدول Cridi والجدول tbl_Loans كما في الصورة المرفقة: آمل ان توفق في إنشاء كود للباقي "Remaining" في الإستعلام qry_Loans رجاء مراجعة 03.1 اعلاه أخي كريمو انت الآن تستطيع ان تملئ الفاراغات التي انا لم اكملها ، فالموضوع الآن اصبح واضحا لطريقة عمل الجدول tbl_Loans ، نعم قد نحتاج حقل خاص لـ Payment_Made_Cridi و Payment_Made_Elec ، ولكن سنعرف هذا الشئ لما نوصل الى Elec ، والذي انت تستطيع ان تعمله ، بواسطة نفس الكود الموجود في Cridi. رجاء ملاحظت اني في اي للتاريخ ، فاني أغير اليوم واجعله" اول الشهر" (لهذا السبب كنت تحصل على خطأ في الكود في النموذج frm_Avoid سابقا). جعفر
  20. حياك الله هاه ، هل استقر رأيك على صورة معينة حياك الله اعتقد سؤالك في الموضوع الاخر يعتبر ملغي الان ، صح؟ جعفر
  21. تعديل بسيط ، اذا لم يتم اخيار اي رقم وتم الغاء الامر: Private Sub Command25_Click() 'On Error Resume Next ' DoCmd.GoToRecord , , acNewRec 'If Me.NewRecord And Me.CurrentRecord > 1 Then ' Me.NUM_ESAL = DLast("[num_esal]", "1") ' End If Num = InputBox("Please Enter the number") If Len(Num & "") = 0 Then Exit Sub Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount DoCmd.GoToRecord , , acFirst For I = 1 To RC rst.Edit rst!NUM_ESAL = Num rst.Update rst.MoveNext Next I End Sub جعفر
  22. تفضل أخي هذا كود الزر: Private Sub Command25_Click() 'On Error Resume Next ' DoCmd.GoToRecord , , acNewRec 'If Me.NewRecord And Me.CurrentRecord > 1 Then ' Me.NUM_ESAL = DLast("[num_esal]", "1") ' End If Num = InputBox("Please Enter the number") Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount DoCmd.GoToRecord , , acFirst For I = 1 To RC rst.Edit rst!NUM_ESAL = Num rst.Update rst.MoveNext Next I End Sub مافي داعي تكتب الرقم ، وطريقة العمل: 1. اختر التاريخ ، 2. اضغط على الزر ، 3. في نافذة تطلب منك الرقم ، ادخل الرقم واضغط ok والسلام جعفر
  23. تفضل وهذا هو الكود: Option Compare Database Private Sub Command18_Click() ' 'get the days, months, years ' Call YMDDif(Date_From, Date_To) 'ما قبل 1/8/1994 ' Me.Basic_Salary_Contributions = Me.Basic_Salary * 0.05 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) 'بعد 1 / 8 / 1994 ' Me.Basic_Salary_Contributions = Me.Basic_Salary * 0.06 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) Me.txt_Years = 0 Me.txt_Months = 0 Me.txt_Days = 0 Me.txt_Years_After = 0 Me.txt_Months_After = 0 Me.txt_Days_After = 0 'Check_Date = CDate(1 / 8 / 1994) Check_Date = DateSerial(1994, 8, 1) 'case 1 If Me.Date_From >= Check_Date Then 'get the days, months, years Call YMDDif(Date_From, Date_To) Me.Basic_Salary_Contributions = Me.Basic_Salary * 0.06 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) GoTo Exit_1: End If 'case 2 If Me.Date_From <= Check_Date And Me.Date_To <= Check_Date Then 'get the days, months, years Call YMDDif(Date_From, Date_To) Me.Basic_Salary_Contributions = Me.Basic_Salary * 0.05 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) GoTo Exit_1: End If 'case 3 If Me.Date_From <= Check_Date Then 'get the days, months, years Call YMDDif(Date_From, Check_Date) Me.Basic_Salary_Contributions = Me.Basic_Salary * 0.05 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) 'get the days, months, years Call YMDDif_After(Check_Date, Date_To) Me.Basic_Salary_Contributions = Basic_Salary_Contributions + (Me.Basic_Salary * 0.06 * _ ((Me.txt_Years_After * 12) + (Me.txt_Months_After) + (Me.txt_Days_After / 30))) End If Exit_1: 'من 2 / 11 / 1996 ' Me.Salary_Additions_Contributions = Me.Salary_Additions * 0.06 * _ ((Me.txt_Years * 12) + (Me.txt_Months) + (Me.txt_Days / 30)) End Sub Public Sub YMDDif(sDate1, sDate2) 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) Me.txt_Days = iDay Me.txt_Months = iMonth Mod 12 Me.txt_Years = iMonth \ 12 'YMDDif = CStr(y) & " Years " & CStr(M) & " months " & CStr(D) & " days" End Sub Public Sub YMDDif_After(sDate1, sDate2) 'sdate1 earliest date sdate2 later Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date iMonth = DateDiff("m", sDate1, sDate2) If Day(sDate1) > Day(sDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, sDate1) iDay = DateDiff("d", dInterim1, sDate2) Me.txt_Days_After = iDay Me.txt_Months_After = iMonth Mod 12 Me.txt_Years_After = iMonth \ 12 'YMDDif = CStr(y) & " Years " & CStr(M) & " months " & CStr(D) & " days" End Sub انا طلبت منك: يعني بغيت لما ادخل تواريخ ، اعرف مو نتائجها ، فعلى اساسه اصلح الكود ، بس للأسف انت ما حطيت شئ!! والملف يجب ان يكون مضغوط علشان ترفعه للمنتدى ، ماعدا الصور جعفر 63.1.مساهمة الراتب.accdb.zip
×
×
  • اضف...

Important Information