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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. هذا لا علاقة له بالاوفيس ، وانما بإعدادات لغة Unicode الوندوز : جعفر
  2. قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف. المنتدى مليء بعدة امثلة لطلبك، فقط استخدم خاصية البحث فيه.
  3. انا اعتذر منك ، فقد انت تشوف انه واضح من وجهة نظرك ، لأنك تشوف كل شيء امامك ، وقد يكون واضح لشخص غيري ، ولكنه غير واضح بالنسبة لي ، لهذا السبب تشوف اني كنت اتكلم عن اغلاق برنامج ، واعطيتك رابط له. على العموم ، اكرر اعتذاري ، وبالتوفيق ان شاء الله 🙂 جعفر
  4. السلام عليكم 🙂 اعمل زر في النموذج الرئيسي علشان يتحكم في النموذج الفرعي ليذهب للسجل التالي ، وضع عليه هذا الكود : اسم النموذج الفرعي.SetFocus DoCmd.GoToRecord , , acNext جعفر
  5. حياك الله 🙂 ومبارك لك جهودك للمضي قُدما ، بدون استسلام 🙂 انا كذلك لا الجئ الى المكتبات لنفس السبب 🙂 جعفر
  6. وعليكم السلام اخوي خلف 🙂 من زمان ما سمعنا منك ، ان شاء الله تكون في صحة وعافية 🙂 من اللي قرأته ، ومن تجربة سابقة ، مو كل الاوامر متاحة للتحكم في الاكسل من الاكسس ، اذا استعملت : Dim xlApp As Object فيجب ان لا تستعمل هذه الطريقة ، وانما بدلا عنها ، تستخدم المكتبة : Microsoft Excel x.xx object Library ولكن ، هناك دائما اوامر وطرق اخرى للوصول الى مبتغاك ، والمشكلة عندك في الجزء الاخير من السطر : end(xlup).row لذا انصحك تبحث في الانترنت عن هذه الجزئية فقط ، وايجاد البديل 🙂 جعفر
  7. شكرا على التوضيح 🙂 جعفر
  8. واقتراح : الوحدة النمطية بحاجة الى الحقول اللي فيها ارقام فقط مثل zey_en_1 ، وليست بحاجة الى الحقول اللي فيها نعم لا مثل es_en_1 ، فإذا الحقول zey فيها قيمة ، فهي زيادة ، واذا مافيها قيمة ، فهي لا 🙂 جعفر
  9. تفضل ، بتغيير في الوحدة النمطية ، بحيث الزائد صار له متغير مختلف عن الـ لا 🙂 . Option Compare Database 'حساب مستوى الدرجة Function zyd_1(a, b, c, d, e, f) As String 'a = المجموعة النوعية Dim A_1, E_1, D_1, A_2, E_2, D_2 As String 'اللغة العربية If a > 0 Then A_1 = "زيادة في اللغة العربية " & a & " درجة" ElseIf d = "لا" Then A_2 = " لم يزد في اللغة العربية " End If 'اللغة الأجنبية If b > 0 Then E_1 = "زيادة في اللغة الأجنبية " & b & " درجة" ElseIf e = "لا" Then E_2 = " لم يزد في اللغة الأجنبية " End If 'الدراسات If c > 0 Then D_1 = "زيادة في الدراسات " & c & " درجة" ElseIf f = "لا" Then D_2 = " لم يزد في الدراسات " End If 'الدمج 'الزيادة zyd_1 = "" If Len(A_1) > 0 Then zyd_1 = A_1 End If If Len(E_1) > 0 Then zyd_1 = zyd_1 & " و " & E_1 End If If Len(D_1) > 0 Then zyd_1 = zyd_1 & " و " & D_1 End If 'لم تزد If Len(A_2) > 0 Then zyd_1 = zyd_1 & " و " & A_2 End If If Len(E_2) > 0 Then zyd_1 = zyd_1 & " و " & E_2 End If If Len(D_2) > 0 Then zyd_1 = zyd_1 & " و " & D_2 End If 'اذا في واو في بداية الجملة فلا تقرأها If Left(zyd_1, 3) = " و " Then zyd_1 = Mid(zyd_1, 4) End If End Function جعفر 1162.1.tzalom.mdb.zip
  10. وعليكم السلام 🙂 تفضل : . وهذه الوحدة النمطية بعد التعديل : Option Compare Database 'حساب مستوى الدرجة Function zyd_1(a, b, c, d, e, f) As String 'a = المجموعة النوعية Dim A_1, E_1, D_1 As String 'اللغة العربية If a > 0 Then A_1 = "زيادة في اللغة العربية " & a & " درجة" ElseIf d = "لا" Then A_1 = " لم يزد في اللغة العربية " End If 'اللغة الأجنبية If b > 0 Then E_1 = "زيادة في اللغة الأجنبية " & b & " درجة" ElseIf e = "لا" Then E_1 = " لم يزد في اللغة الأجنبية " End If 'الدراسات If c > 0 Then D_1 = "زيادة في الدراسات " & c & " درجة" ElseIf f = "لا" Then D_1 = " لم يزد في الدراسات " End If 'الدمج zyd_1 = "" If Len(A_1) > 0 Then zyd_1 = A_1 End If If Len(E_1) > 0 Then zyd_1 = zyd_1 & " و " & E_1 End If If Len(D_1) > 0 Then zyd_1 = zyd_1 & " و " & D_1 End If 'اذا في واو في بداية الجملة فلا تقرأها If Left(zyd_1, 3) = " و " Then zyd_1 = Mid(zyd_1, 4) End If End Function جعفر 1162.tzalom.mdb.zip
  11. اخي الفاضل بمجرد ان تفتح الالة الحاسبة وتستعمل الكود ، صحيح ما يشتغل ، ولكنك لو تتبعت الخطوات اللي اعطيتك ونظرت في قائمة مدير المهام ، لرأيت بأن مايكروسوفت غيروا اسم الالة الحاسبة في الوندوز الجديد ، والملف الجديد مو تنفيذي (يعني ماهو بصيغة exe) لذلك فلا يمكن اغلاقه بهذه الطريقة !! جرب الكود على اي من البرامج الاخرى ، فهو شغال ، وجربته قبل شوي مع برنامجين مختلفين !! هل تقصد ان النيترو يشتغل داخل نموذج في برنامج الاكسس ؟ اذا كان كذلك ، فيجب اغلاق النموذج او تغيير ملف الملف المفتوح وفتح ملف آخر ، ثم حذف الملف المطلوب. اخي الفاضل ، ياريت يكون عندك توضيح وبالتفصيل ، لأنه بعد حوالي شهر من وضعك للسؤال فهمت الآن (وان شاء الله فهمي صحيح!!) ان النيترو تفتحه في نموذج في برنامج الاكسس !! جعفر
  12. في الواقع ما كنت مرتاح من المسافات بين السنوات ، وخصوصا المسافات بين الدرجات ، فتوصلت الى التالي : التقرير rpt_4 مصدر بياناته هو الاستعلام qry_4 والذي هو نسخة من qry_3 ، ولكننا ننادي وحدة نمطية تختلف قليلا عن سابقتها ، فهنا نستعمل لغة HTML : 1. الاستعلام qry_4 ، ونرسل البيانات المطلوبة الى الوحدة النمطية Year_Report_HTML . 2. وهذه هي الوحدة النمطية : Public Function Year_Report_HTML(lbl_str As String, id As Long) As String On Error GoTo err_Year_Report_HTML 'On Error Resume Next DoCmd.DeleteObject acQuery, "NewQueryDef" On Error GoTo err_Year_Report_HTML Dim rst As DAO.Recordset Dim lbl, str, mySQL As String mySQL = "Select * From qry_1 Where [Table2_id]=" & id & " Order By Table2_id desc" Set rst = CurrentDb.OpenRecordset(mySQL) Do While Not rst.EOF 'lbl = lbl & rst!Yearr & " " '2 spaces 'str = str & " " & rst!Report & " " '1 space and 8 spaces lbl = lbl & "<font color=black>" & rst!Yearr & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & "</font>" str = str & "<font color=white>" & ChrW(&H2588) & "</font><font color=black>" & rst!Report & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & ChrW(&H2588) & "</font>" rst.MoveNext Loop If lbl_str = "lbl" Then Year_Report_HTML = lbl Else Year_Report_HTML = str End If Exit_Year_Report_HTML: rst.Close: Set rst = Nothing Exit Function err_Year_Report_HTML: If Err.Number = 3061 Then 'too few parameters, expected 1 or more 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", mySQL) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm Set rst = qdf.OpenRecordset(dbOpenDynaset) DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next ElseIf Err.Number = 7874 Then 'could not find QueryDef Resume Next ElseIf Err.Number = 2486 Then 'could not delete QueryDef Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . ونلاحظ اننا نعطلي لون اسود للسنوات والدرجات ، ولكننا نعطي اللون الابيض "للمسافة" ، يعني فقط اطبع هذا التقرير على ورق ابيض ، حتى لا ترى "المسافات" : . 3. الحقلين الذين في الاستعلام ، نراهم هنا . وهذه اعدادات الحقلين حتى يأخذوا لغة HTML . والنتيجة : . جعفر 1161.tt.accdb.zip
  13. الله يطول في عمرك اخوي ، هذا كان مثال ، والمثال يُغلق البرنامج calc.exe وهو الآله الحاسبه !! لذلك ، بدل هذا الاسم ، يجب ان تعرف اسم برنامجك ، ثم تستعمل اسم برنامجم بدل الاسم الموجود بالخط الاحمر ، ولمعرفة ايش اسم برنامج النيترو ، انظر الى هذا المثال (انا ما عندي نيترو علشان اعرف الاسم) : من شريط المهام اسفل الشاشة ، انقر بالفأرة اليمين ، فترى النافذة التالية : . فاذا اردنا معرفة اسم برنامج irfanView (المؤشر عليه بالسهم) (انت لازم تؤشر على اسم برنامج النيترو) ، وتنقر عيه بالفأرة اليمين ، ثم الاعدادات : . فنرى اسم البرنامج . استخدم اسم النيترو بدل الاسم باللون الاحمر في الكود ، ثم جرب برنامجك 🙂 جعفر
  14. وعليكم السلام 🙂 الاستعلام الضمني الذي عملته انت كمصدر بيانات للتقرير Table1 هو اساس العمل ، فأخذت نسخه منه وعملته كاستعلام مستقل اسمه qry_1 ، والذي به معايير السنوات 🙂 اصبح لدينا : 1. مصدر بيانات تقريرك Table1 هو الاستعلام qry_1 ، 2. جعلت الاستعلام qry_1 مصدر بيانات للاستعلام الجدولي qry_2 ، والاستعلام qry_2 مصدر بيانات التقرير rpt_2 ، 3. صحيح ان التقرير rpt_2 شغال تمام ، ولكنه يحتوي على السنوات (2017 و 2018 و 2019) التي تم استعمالها كمعيار للاستعلام qry_1 ، مما يعني ان التقرير يجب تعديله يدويا كلما تغيرت السنوات !! على هذا الاساس ، اشتغلت على الاستعلام qry_3 واللي مصدر بياناته qry_1 ، ولكني استعملت وحدة نمطية لتعطيني السنوات ، حقل للسنوات lbl (وندمج فيه جميع السنوات) وحقل للدرجة str (وندمج فيه جميع الدرجات) ، ونستعمل "المسافات" لنفرز المسافات بينها ، التقرير rpt_3 مصدر بياناته هو الاستعلام qry_3 . جعفر 1161.tt.accdb.zip
  15. اعرف ان السؤال التالي سيكون ، وهل هناك طريقة علشان ما يكون هناك مسافات فارغة مكان الحقول المخفاة !! والجواب بعمل تقرير فرعي ، هكذا : . . جعفر 1159.1.Certificates.accdb.zip
  16. السلام عليكم 🙂 استعمل هذا الكود في التقرير Documents1 : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) '1 If Me.annaul_1 = -1 Then Me.annaul_1.Visible = False: Me.based1.Visible = False: Me.rang1.Visible = False: Me.rang2.Visible = False Else Me.annaul_1.Visible = True: Me.based1.Visible = True: Me.rang1.Visible = True: Me.rang2.Visible = True End If '2 If Me.annaul_2 = -1 Then Me.annaul_2.Visible = False: Me.based2.Visible = False: Me.rang3.Visible = False: Me.rang4.Visible = False Else Me.annaul_2.Visible = True: Me.based2.Visible = True: Me.rang3.Visible = True: Me.rang4.Visible = True End If '3 If Me.annual_3 = -1 Then Me.annual_3.Visible = False: Me.based3.Visible = False: Me.rang5.Visible = False: Me.rang6.Visible = False Else Me.annual_3.Visible = True: Me.based3.Visible = True: Me.rang5.Visible = True: Me.rang6.Visible = True End If '4 If Me.annual_4 = -1 Then Me.annual_4.Visible = False: Me.based4.Visible = False: Me.rang7.Visible = False: Me.rang8.Visible = False Else Me.annual_4.Visible = True: Me.based4.Visible = True: Me.rang7.Visible = True: Me.rang8.Visible = True End If '5 If Me.annual_5 = -1 Then Me.annual_5.Visible = False: Me.based5.Visible = False: Me.rang9.Visible = False: Me.rang10.Visible = False Else Me.annual_5.Visible = True: Me.based5.Visible = True: Me.rang9.Visible = True: Me.rang10.Visible = True End If '6 If Me.annual_6 = -1 Then Me.annual_6.Visible = False: Me.till.Visible = False: Me.rang11.Visible = False: Me.rang12.Visible = False Else Me.annual_6.Visible = True: Me.till.Visible = True: Me.rang11.Visible = True: Me.rang12.Visible = True End If End Sub . كما ان الاستعلام مصدر بيانات التقرير يجب ان يُصبح: . فيصبح التقرير: . جعفر 1159.Certificates.accdb.zip
  17. السلام عليكم 🙂 لو وضعت مثال من اول مشاركة ، ولوضح الامر 🙂 كذلك ، اذا فهمتك صح : اعمل هذا التغيير في الاستعلام هكذا: فستكون النتيجة: . جعفر
  18. هي موجودة في قاعدة البيانات ، ولكن مخفية 🙂 جعفر
  19. السلام عليكم 🙂 مع ان هذا الخيار ممكن استعماله ، ولكن ، للأسف الشديد ، هناك الكثير من المبرمجين يستعملون حقل الترقيم التلقائي كأحد الحقول التي يعتمد عليها البرنامج في التسلسل/الترقيم ، ومرتبط بجداول اخرى ، بينما يجب ان يكون حقل الترقيم التلقائي لإستخدام البرنامج (للفهرسة والوصول للسجلات) وليس لاستخدام المبرمج (لإستعماله في تسلسل/ترقيم الارقام او العملاء) . وعليه ، فإذا كان البرنامج يستعمل هذا النوع ، فإن حقل الترقيم التلقائي لن يحتفظ بالارقام الاصلية في البرنامج ، واستعلام الالحاق سيخلق ترقيم جديد ، مما سيجعل البرنامج لا يقوم بعمله بصورة صحيحة !! جعفر
  20. حياك الله اخوي ابوخليل 🙂 بسبب انك عامل مجموعات في البرنامج ، والبرنامج يشتغل عليه ، والمسميات اللي تشوفها هي عبارة عن مسميات المجموعات ، وعليه ، المجموعات 1 و 2 و 3 ، وزعهم يدويا على الباصات (عن طريق البرنامج طبعا) ، ومو لازم يملؤا الباصات ، وبعديت اعمل توزيع تلقائي ، فيضيف لك بقية العدد للباص ، ويكمل باقي الباصات 🙂 اما رقم 4 ، فما شاء الله تخصصك 🙂 جعفر
  21. شكرا جزيلا اخوي كاسر 🙂 الظاهر بالغلط لعبت في اعدادات الاكسس ، وما كانت تطلع لي رسائل التحذير !! بالاضافة الى حلك ، ولكني افضل إخفاء هذه الرسائل بإستعمال : DoCmd.SetWarnings False DoCmd.RunSQL mySQL DoCmd.SetWarnings True و DoCmd.SetWarnings False DoCmd.RunSQL ("Delete * From tbl_Groups") DoCmd.OpenQuery "qry_Append_Tsjeel" DoCmd.OpenQuery "qry_Append_sub_Tsjeel" DoCmd.SetWarnings True وقد تم تحديث الملف المرفق في مشاركتي السابقة ، شكرا لك 🙂 جعفر
  22. السلام عليكم 🙂 واصبح البرنامج مستعد يأخذ اي عدد 🙂 وبواجهة جديدة : . . جعفر 1158.2.mdb.zip
  23. السلام عليكم 🙂 اذا تسمحي اخوي ابو خليل ، واخوي محمد ابوعبدالله 🙂 مشاركتي لا تؤدي العمل بضغطة زر ، وانما تقدر تستفيد منها لتوزيع الغرف لاحقا ايضا 🙂 الاختيار ليس تلقائي ، ولكنه يسهل العمل كثيرا 🙂 ومن تجربتي مع الحجاج ، بعض الاوقات في مجموعة تحب ان تكون مع مجموعة اخرى في الباص ، فطريقتي سوف تسهل عليك 🙂 العمل كله بيكون في الجدول tbl_Groups ، والعمل بالمجموعات ، لذا : 1 و 2. استعلامات الحاقية ، فقط لاخذ بيانات الجدولين tbl_Tsjeel والجدول tblSub_Tsjeel الى الجدول tbl_Groups . 4. نموذج العمل هو frm_Main تختار من قائمة "في انتظار التوزيع" (وفي الواقع الاختيار عن طريق userid) ، العدد الذي تريده ، وفي الاسفل بتشوف عدد اختياراتك ، ومجموع الاشخاص اللذين اخترتهم ، تختار الى اي باص تريد ان تلحقهم ، باختيار رقم الباص ، ثم النقر على الزر الاول (السهم من القائمة الى الباصات) ، وتلقائيا تشوف النتائج ، واذا اردت ارجاع اي مجموعة ، فالاختيار يكون من قائمة الباص ، وتنقر على الزر بالاسفل (السهم من الباصات الى القائمة) ، وتلقائيا تشوف النتيجة 🙂 . هي لعبة اكثر منها عمل 🙂 جعفر 1158.haj.mdb.zip
×
×
  • اضف...

Important Information