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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. شكرا لك أخي محمد أخي بسام نعم ممكن ، ولكن في الخلفية ، سيكون الحقلين يستخدمون نفس استعلام البحث!! وبالطريقة التي عملتها انا ، يمكنك ان تبحث اولا عن الكلمات التي في "موضوع الخطاب" ثم تترك مسافة ، ثم تبحث في كلمات الحقل "كلمات ارشادية" جعفر
  2. السلام عليكم ورحمة الله وبركاته قمت بالعمل لإثبات انه ممكن ، ولكن الشئ المهم ما قاله أخي أبو خليل: . لهذا ، هذه النتيجة: . وهذا الكود الذي يقوم بالعمل كاملا: 1. استعلام الحاق للجدول table1 ، 2. استعلام تحديث للجدول table2 ، 3. استعلام تحديث للجدول table3 ، Private Sub cmd_append_update_Click() Dim rstFrom As DAO.Recordset Dim rstTo As DAO.Recordset Set rstTo = CurrentDb.OpenRecordset("Select * From table4") 'table1, Append Set rstFrom = CurrentDb.OpenRecordset("Select * From table1") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.AddNew rstTo!a = rstFrom!a rstTo.Update rstFrom.MoveNext Next i 'table2, Update rstTo.MoveFirst Set rstFrom = CurrentDb.OpenRecordset("Select * From table2") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.Edit rstTo!b = rstFrom!b rstTo.Update rstFrom.MoveNext rstTo.MoveNext Next i 'table3, Update rstTo.MoveFirst Set rstFrom = CurrentDb.OpenRecordset("Select * From table3") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.Edit rstTo!c = rstFrom!c rstTo.Update rstFrom.MoveNext rstTo.MoveNext Next i MsgBox "Done" End Sub جعفر mo_esam_sample.zip
  3. السلام عليكم شكرا لك على هذه الملاحظة ، واللي كان لها الفضل في ايجاد حل سهل: . عليه تم اضافة 2000 الى السنوات ، وكان الله رؤوف رحيم . جعفر 310.N2.mdb.zip
  4. لا يمكن حذف البيانات من جميع الجداول باستعمال استعلام واحد ، لذا يجب عمل استعلام حذف مستقل بكل جدول ، وفي الكود تقوم بتشغيل الاستعلامات واحدة خلف الاخرى ، هكذا: لا تعرض رسالة حذف البيانات التحذيرية docmd.setwarnings false الآن نشغل جميع استعلامات الحذف docmd.openquery "qry_1" docmd.openquery "qry_2" docmd.openquery "qry_3" الآن اعرض جميع الرسائل التحذيرية docmd.setwarnings true . . انا اعطيتك الطريقة لعمل هذا الاستعلام للحقل تاريخ الميلاد ، فكل اللي عليك عمله هو تغيير الحقل الى "تاريخ تقديم المادة" مع الحفاظ على المعيار بين التاريخين. جعفر
  5. . لما قلت لي: . فهمت منها انك فهمتها وطبقتها!! وإلا ، كان بإمكانك ان تستوضح أكثر!! على العموم ، مثل ما قلت سابقا ، استعمل طريقة أخي محمود ، وياريت انك تسجل اعجابك بمشاركته . لا الفكرة جدا بسيطة ، فبدل ان تعمل alt+shift يدويا ، يقوم الكود بعمله جعفر
  6. السلام عليكم أخي بسام لأن سؤالك توسع ، فرأيت ان اعمل موضوع منفصل لتعم الفائدة رجاء مراجعة الرابط التالي: http://www.officena.net/ib/topic/65856-هدية-البحث-عن-اي-جزء-من-الكلمة-،-في-اي-عدد-من-الحقول/ جعفر
  7. السلام عليكم ورحمة الله وبركاته الموضوع هذا بدأ بسؤال الرابط التالي: http://www.officena.net/ib/topic/65783-البحث-عن-اي-جزء-من-الكلمة-عنوان-معدل/ ولكن لأني غيرت الكود وجعلته يبحث في اي عدد من الحقول في السجل ، لذا رأيت ان اجعل له موضوعا مستقلا يمكنك البحث عن اي جزء من الكلمة ، واذا اردت البحث عن كلمة اخرى في السجل او جزء منها ، فما عليك الا ان تضع (مسافة او / او *) بين الكلمات ، فسيعتبرها البرنامج على انها كلمة اخرى يجب البحث عنها. الشئ المهم في الكود هو طريقة إضافة حقول جديدة للبحث فيها: هذا اول حقل يتم البحث فيه fld = "[كلمات ارشادية]" لما نريد ان نضيف حقول إضافية للبحث فيها ، يجب ان يكون الكود كالتالي fld = fld & " & ' ' & " & "[موضوع الخطاب]" fld = fld & " & ' ' & " & "[my other field]" وكل ما عليك الآن هو ان تطبع وترى نتيجة بحثك: . ملاحظة مهمة: اذا كان برنامجك على الشبكة ، فلا تضع الكود على "حدث التغيير" (معناه ، كلما اضفت/حذفت حرف ، فارجع الى الجدول وخذ البيانات منه) ، لأنه سيجعل البرنامج جدا بطئ ، وانما استخدم زر البحث. جعفر 309.Search_as_you_Type_Multiple_Fields_jj.mdb.zip
  8. وعليكم السلام أخي محمود في الواقع اذا كان قصد الاخ محمد سعيد ان يغير لغة الكمبيوتر ، ويحتفظ بهذا التغيير لكل البرنامج (وليس للنموذج الذي هو عليه الان فقط) ،فطريقتك هي الاسهل والافضل ، (مع مراعاة إضافة كود محاذاة الحقل لليمين او اليسار عند الكتابة) اما اذا كان القصد للنموذج الحالي فقط ، فكذلك طريقة الاخ محمود الافضل ، مع مراعاة تغيير اللغة عند الخروج من النموذج الحالي ، (مع مراعاة إضافة كود محاذاة الحقل لليمين او اليسار عند الكتابة) طريقتي لا تلعب/تغير إعدادات الكمبيوتر ، وانما تستغل الاعدادات الموجودة في نماذج/حقول الاكسس جعفر
  9. وعليكم السلام الظاهر ان الكود اللي عملته الان صحيح ولكنك لم ترسل اي قيمة بالحقل EmpID ، اي ان الحقل EmpID فارغ ، لها السبب لا يوجد لديك سجل حيث قيمة EmpID تساوي لا شئ!! ولأني لا ارى برنامجك ، ومن خلال الصورة السابقة اللي ارفقتها انت ، ارى انك عملت الكود على حدث زر ، ولم تعمله كما قلت لك: . عندما تنقر على EmpID ، فقيمة EmpID ممكن اخذها من السجل الذي تم النقر عليه ، واما عندما تنقر في اي مكان آخر (زر الامر مثلا) ، فقيمة EmpID غير متوفرة!! جعفر
  10. ممكن تشوف الرابط التالي ، كيف اني جعلت التقرير (وهو عبارة عن رسالة رسمية) بدون مربعات النص والمسافات اللي بينها ، فالبيانات اصبحت جزء من التقرير: http://www.officena.net/ib/topic/63872-مساعدة-بمعاينة-وطباعة-التقرير/?do=findComment&comment=416983 جعفر رجاء فتح سؤال خاص لهذا الموضوع ، والشباب ما بيقصروا معاك ان شاء الله جعفر
  11. تفضل تم تغيير اعدادات النموذج "عقد ايجار" ، حتى يُظهر جميع السجلات (بدل ان يكون لإدخال البيانات فقط) ، تم عمل الاستعلام الالحاقي qry_Contracts_Append ، والذي يعمل نسخة من السجل الحالي في النموذج ، ويغير تاريخ الدخول الى تاريخ اليوم ، الاستعلام الالحاقي يعمل على الزر "عقد جديد" ، والذي يستنسخ العقد الحالي في النموذج ، ويعمل نسخة جديدة منه دون تغيير اي من البيانات ، سوى تاريخ الدخول ، عندك مشكلة اذا اردت تكرار رقم العقد ، فهو "رقم تلقائي" في الجدول ولا يمكن تكراره. جعفر 312.Rent_Renew.accdb.zip
  12. السلام عليكم أخي عمر في الواقع اخي شوقي قد اعطاك الجواب ، وانا جمعته مع بعض هذه النتيجة: . هنا انا استعملت استعلام لأقوم بالحسابات المطلوبة ، واستخدمت هذا الاستعلام كمصدر للتقرير. وستلاحظ اني حولت السنة/الشهر/اليوم الى تاريخ من (1) ، وتاريخ الى (2) ، ثم ارسلت هذين التاريخين الى الوحدة النمطية التي تخص المطلوب (يعني وحدة نمطية للسنين ، واخرى للاشهر وثالثة للايام ، والتي ارفقها الاخي شوقي في مشاركته في الموضوع). وهذا هو الكود: Option Compare Database Function CalcAge(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcAge = vYears & " ÓäÉ, " & vMonths & " ÔåÑ, " & vDays & " íæã" End Function Function CalcYears(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcYears = vYears End Function Function CalcMonths(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcMonths = vMonths End Function Function CalcDays(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcDays = vDays End Function جعفر 310.N1.mdb.zip
  13. أخي الفاضل لو تكرمت تخبرنا اسم النموذج الذي تريد ان تكرر سجله ، وتعطينا اي معلومات اخرى تفيدنا لهذه العملية
  14. اولا العفو ثانيا انا اعتذر ثالثا لو وضعت انا المثال ، فستسألني ان اضعه في برنامجك ، ثم يا أخي انت صاحب السؤال ، تجمّل علينا بالجزئية من برنامجك اللي تريد العمل فيها ، لوسمحت
  15. نعم اختي قومي بعمل استعلام الحاقي ، يأخذ بياناته من النموذج ، على اساس ID الموجود في النموذج مثلا ، يعني الحقي هذا السجل بنفس الجدول (وهنا يفضل ان يكون عندك حقل للترقيم التلقائي ، والذي يجب ان لا يكون في الاستعام الالحاقي). جعفر
  16. الظاهر انك اخطأت في نسخ الكود الى برنامجك!! قارن بين كودك والكود اللي انا وضعته ، وستلاحظ انك التهمت الفواصل الاربعة ، ماشاء الله عليك ، اربعتهم وما لاحظت!! جعفر
  17. وعليكم السلام نفترض ان النموذج الرئيسي اسمه frm_1 ، والنموذج الفرعي فيه اسمه sfrm_1 ، بينما النموذج القاني اسمه frm_2 ، ضع الكود التالي (يجب ان تختار اخد السطربن) على خدث النقر المزدوج على للحقل id في النموذج frm_1 او sfrm_1 : اذا كان id رقم DoCmd.OpenForm "frm_2", , , "[id]= " & Me.id واذا كان id نص DoCmd.OpenForm "frm_2", , , "[id]= '" & Me.id & "'" جعفر
  18. وعليكم السلام اخي شوقي شوف الرابط ، المثال سيفيدك: http://www.officena.net/ib/topic/65783-توضيح-في-الاستعلام/ جعفر
  19. وعليكم السلام نعم تستطيع بكود مشابه: Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then 'English ctl.ReadingOrder = 1 ctl.KeyboardLanguage = 11 'Arabic ctl.ReadingOrder = 2 ctl.KeyboardLanguage = 3 ElseIf ctl.ControlType = acComboBox Then 'English ctl.KeyboardLanguage = 11 'Arabic ctl.KeyboardLanguage = 3 End If Next جعفر
  20. اعمل استعلام ، واربط الجدولين برقم الموظف ، انزل الحقول اللي تريدها ، واحفظ الاستعلام. الان انظر الى الرابط التالي ، وغير في الكود ، بدل اسم الجدول استعمل الاستعلام ، وغير اسم حقل البحث: http://www.officena.net/ib/topic/65783-توضيح-في-الاستعلام/ جعفر
  21. أخي عمر هل تريد: 1. طرح 11 شهر من 8 اشهر ، 2. ام تريد طرح الشهر 11 من الشهر 8؟ طبعا مافي فرق بينهم بالطريقة الاعتيادية ، ولكن الفرق يكون لما تريد تخصم الايام/الاشهر ، الاصغر من الاكبر ، يعني شوف المثال هذا: 5 يوم ، 8 شهر ، 13 سنة - 18 يوم ، 11 شهر ، 5 سنة = 5 +31 (لأننا اخذنا الشهر 8 وحولناه الى ايام ، والشهر 8 فيه 31 يوم) ، 7 + 12 (لأننا اخذنا سنه وحولناها الى 12 شهر) ، 12 سنة - 18 يوم ، 11 شهر ، 5 سنة وتصبح النتيجة (5+31) - 18 ، (7+12) - 11 ، 12 - 5 = 18 يوم ، 8 شهر ، 7 سنة جعفر
×
×
  • اضف...

Important Information