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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. انا اخبرتك السبب في الرابط التالي ، وفي آخر مشاركة فيه طريقة الحل هذا الجزء من الكود ، ليس فيها اسم الجدول : =IIf(DCount("*","Serial_Sadad=" & [Serial_Sadad] & "And PartStatus='تم الدفع'")
  2. هذه المشاركة تكملة للموضوع اعلاه
  3. سؤال: هل هذه الاسئلة ثابتة ، او انها تتغير ؟
  4. اترك النموذج جانبا ، وحاول تعمل تعديل بيانات في استعلام التجميع مباشرة ، ولن تستطيع 😁 استعلام التجميع لا يسمح بالتعديل/الاضافة.
  5. الحمدلله 🙂 انا احلت الاستعلام qry_Section_Gender_Count على التقاعد ، واستعملت الاستعلام qry_Section_Gender_Count_2 بدلا عنه في التقارير.
  6. وعليكم السلام 🙂 قام الاخ موسى بكتاية اكواد فريق الانتقال (GotoRecord) كاملا هنا :
  7. السلام عليكم 🙂 اطال الله في عمرك اخي الكريم ، انت خلطت الحابل بالنابل !! في معادلاتك التالية ، انت استخدمت كلمة "أنثى" ، بينما في الجدول هي "انثى" (لاحظ حرف الالف) : NF: DCount("Gender","tbl_Employees","[Gender]='أنثى' AND [system]='نصف داخلي' AND [Section] ='" & [Section] & "'") DF: DCount("Gender","tbl_Employees","[Gender]='أنثى' AND [system]='داخلي' AND [Section] ='" & [Section] & "'") . وفي هذا السطر ، لديك مسافة زائدة في نهاية كلمة 'نصف داخلي ' NH: DCount("Gender","tbl_Employees","[Gender]='ذكر' AND [system]='نصف داخلي ' AND [Section] ='" & [Section] & "'") وعلى هذا الاساس ، قام الاكسس بإعطائك النتائج الخطأ 🙂 على العموم ، مثل ما المثل يقول: رُب ضارة نافعة ، لأننا نتفادى استعمال DCount و DLookup واخواتهم في استعلام ، حيث انها تعمل بطئ في الاستعلام (طبعا لما تكون عندك آلاف السجلات) ، وعليه ، عملت لك استعلام آخر: . وجعلته مصدر بيانات التقرير : . جعفر 1571.base2023.accdb.zip
  8. اخي الفاضل نزار ، انا لم اذكر النماذح ولم اتعامل معها ، فعملي كان في الاستعلام 100% اعطني دقيقة لتعمل الذي تريده تفضل ، تم تغيير مصدر بيانات النموذج الى الاستعلام 1570.2.test.accdb.zip
  9. القاعدة الخلفية (الجداول) : لا يهم اي نسخة من الاوفيس/الاكسس تم تنصيبها ، فالملف الذي به الجداول يعمل على النواتين ، ويجب ان يكون بصيغة accdb او mdb (طبعا تستطيع تغيير الصيغة لاحقا للتمويه ، الى bak مثلا) ، القاعدة الامامية (نماذج) : بما ان برنامجك يعمل على النواتين الآن ، فإذا تركته بصيغة accdb ، فانه سيعمل على جميع نسخ الاكسس (2007 او اكبر) ، وسواء نواة 32بت او 64بت ، اما اذا اردت ان تقفل البرنامج وتحوله الى صيغة accde : - يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 32بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 32بت ، - يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 64بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 64بت. وبغض النظر ، سواء عندك نسخة accde لنواة 32بت او 64بت ، فالنسختين تعملان مع الجداول ، ويمكنك ربط نسخة النواة 32بت وربطها مع الجداول ، وعلى حاسبات اخرى عليها نسخة نواة 64بت وكذلك ربطها بالجداول ، داخل نفس الشبكة.
  10. واذا عندك صفوف غير "الصف الخامس جميع الدرجات" ، فيمكننا تعديل الدالة ، بحيث تستخدمها لجميع الصفوف : والدالة: Option Compare Database Option Explicit Dim rst As DAO.Recordset ' Function Pass(ID As Long, Clss As String) As String On Error GoTo err_Pass 'Clss= Class = اسم جدول الصفوف مثل: الصف الخامس جميع الدرجات 'ID = المعرف = معرف السجل 'IIf([الاسلامية الدرجة بعد الاكمال]>=49.5 And [العربية الدرجة بعد الاكمال]>=49.5 And [الانكليزية الدرجة بعد الاكمال]>=49.5 And [الرياضيات الدرجة بعد الاكمال]>=49.5 And [الحاسوب الدرجة بعد الاكمال]>=49.5 And [الفيزياء الدرجة بعد الاكمال]>=49.5 And [الكيمياء الدرجة بعد الاكمال]>=49.5 And [الاحياء الدرجة بعد الاكمال]>=49.5 And [علم الارض الدرجة بعد الاكمال];"ناجح ";"راسب") Set rst = CurrentDb.OpenRecordset("SELECT * FROM [" & Clss & "] WHERE [المعرف]=" & ID) If Len(rst![الاسلامية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![العربية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الانكليزية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الرياضيات الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الحاسوب الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الفيزياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الكيمياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الاحياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![علم الارض الدرجة بعد الاكمال] & "") = 0 Then Pass = "" ElseIf rst![الاسلامية الدرجة بعد الاكمال] >= 49.5 And _ rst![العربية الدرجة بعد الاكمال] >= 49.5 And _ rst![الانكليزية الدرجة بعد الاكمال] >= 49.5 And _ rst![الرياضيات الدرجة بعد الاكمال] >= 49.5 And _ rst![الحاسوب الدرجة بعد الاكمال] >= 49.5 And _ rst![الفيزياء الدرجة بعد الاكمال] >= 49.5 And _ rst![الكيمياء الدرجة بعد الاكمال] >= 49.5 And _ rst![الاحياء الدرجة بعد الاكمال] >= 49.5 And _ rst![علم الارض الدرجة بعد الاكمال] >= 49.5 Then Pass = "ناجح" Else Pass = "راسب" End If Exit_Pass: rst.Close: Set rst = Nothing Exit Function err_Pass: If Err.Number = 1 Then Else MsgBox Err.Number & vbCrLf & Err.Description Resume Exit_Pass End If 'a = [المعرف] 'a = [تسلسل] 'a = [اسم الطالب الرباعي] 'a = [الصف] 'a = [الشعبة] 'a = [التولد] 'a = [رقم القيد] 'a = [رقم الصفحة] 'a = [اسم الام] 'a = [سنوات الرسوب] 'a = [آخر مدرسة] 'a = [الملاحظات] 'a = [اسلامية معدل النصف الاول] 'a = [اسلامية درجة نصف السنة] 'a = [اسلامية معدل النصف الثاني] 'a = [اسلامية درجة السعي السنوي] 'a = [اسلامية درجة امتحان آخر السنة] 'a = [اسلامية الدرجة النهائية] 'a = [الاسلامية درجة الاكمال] 'a = [الاسلامية الدرجة بعد الاكمال] 'a = [اسلامية] 'a = [العربية] 'a = [الكردية] 'a = [الانكليزية] 'a = [الرياضيات] 'a = [الحاسوب] 'a = [الفيزياء] 'a = [الكيمياء] 'a = [الاحياء] 'a = [علم الارض] 'a = [العام الدراسي] 'a = [نتيجة الدور الاول] 'a = [نتيجة الدور الثاني] 'a = [نتيجة الطالب] 'a = [مواد الاكمال] 'a = [رفـع بقرار بالمواد الدراسية] 'a = [الدرجة المضافة] 'a = [من] 'a = [الى] 'a = [باقي القرار] 'a = [مواد الاعفاء] 'a = [نوع الاعفاء] End Function 1570.1.test.accdb.zip
  11. الحاسبة التي تم تنصيب اكسس 32بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 32بت ، والحاسبة التي تم تنصيب اكسس 64بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 64بت. لا يمكنك الخلط بينهم
  12. يجب ان تكون عندك نسختين ، واحدة لنواة 32بت ، واخرى لنواة 64بت 🙂
  13. عملت استعلام ، يرسل رقم المعرف الى الدالة Pass في وحدة نمطية ، ويحصل على النتيجة منها : . وهذه الدالة (تركت لك بقية حقول الجدول ، قد تستفيد منها لاحقا) : Option Compare Database Option Explicit Dim rst As DAO.Recordset ' Function Pass(ID As Long) As String On Error GoTo err_Pass 'IIf([الاسلامية الدرجة بعد الاكمال]>=49.5 And [العربية الدرجة بعد الاكمال]>=49.5 And [الانكليزية الدرجة بعد الاكمال]>=49.5 And [الرياضيات الدرجة بعد الاكمال]>=49.5 And [الحاسوب الدرجة بعد الاكمال]>=49.5 And [الفيزياء الدرجة بعد الاكمال]>=49.5 And [الكيمياء الدرجة بعد الاكمال]>=49.5 And [الاحياء الدرجة بعد الاكمال]>=49.5 And [علم الارض الدرجة بعد الاكمال];"ناجح ";"راسب") Set rst = CurrentDb.OpenRecordset("SELECT * FROM [الصف الخامس جميع الدرجات] WHERE [المعرف]=" & ID) If Len(rst![الاسلامية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![العربية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الانكليزية الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الرياضيات الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الحاسوب الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الفيزياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الكيمياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![الاحياء الدرجة بعد الاكمال] & "") = 0 Or _ Len(rst![علم الارض الدرجة بعد الاكمال] & "") = 0 Then Pass = "" ElseIf rst![الاسلامية الدرجة بعد الاكمال] >= 49.5 And _ rst![العربية الدرجة بعد الاكمال] >= 49.5 And _ rst![الانكليزية الدرجة بعد الاكمال] >= 49.5 And _ rst![الرياضيات الدرجة بعد الاكمال] >= 49.5 And _ rst![الحاسوب الدرجة بعد الاكمال] >= 49.5 And _ rst![الفيزياء الدرجة بعد الاكمال] >= 49.5 And _ rst![الكيمياء الدرجة بعد الاكمال] >= 49.5 And _ rst![الاحياء الدرجة بعد الاكمال] >= 49.5 And _ rst![علم الارض الدرجة بعد الاكمال] >= 49.5 Then Pass = "ناجح" Else Pass = "راسب" End If Exit_Pass: rst.Close: Set rst = Nothing Exit Function err_Pass: If Err.Number = 1 Then Else MsgBox Err.Number & vbCrLf & Err.Description Resume Exit_Pass End If 'a = [المعرف] 'a = [تسلسل] 'a = [اسم الطالب الرباعي] 'a = [الصف] 'a = [الشعبة] 'a = [التولد] 'a = [رقم القيد] 'a = [رقم الصفحة] 'a = [اسم الام] 'a = [سنوات الرسوب] 'a = [آخر مدرسة] 'a = [الملاحظات] 'a = [اسلامية معدل النصف الاول] 'a = [اسلامية درجة نصف السنة] 'a = [اسلامية معدل النصف الثاني] 'a = [اسلامية درجة السعي السنوي] 'a = [اسلامية درجة امتحان آخر السنة] 'a = [اسلامية الدرجة النهائية] 'a = [الاسلامية درجة الاكمال] 'a = [الاسلامية الدرجة بعد الاكمال] 'a = [اسلامية] 'a = [العربية] 'a = [الكردية] 'a = [الانكليزية] 'a = [الرياضيات] 'a = [الحاسوب] 'a = [الفيزياء] 'a = [الكيمياء] 'a = [الاحياء] 'a = [علم الارض] 'a = [العام الدراسي] 'a = [نتيجة الدور الاول] 'a = [نتيجة الدور الثاني] 'a = [نتيجة الطالب] 'a = [مواد الاكمال] 'a = [رفـع بقرار بالمواد الدراسية] 'a = [الدرجة المضافة] 'a = [من] 'a = [الى] 'a = [باقي القرار] 'a = [مواد الاعفاء] 'a = [نوع الاعفاء] End Function والنتيجة من البيانات التي في الجدول: 1570.test.accdb.zip
  14. تقدر تعمل وحدة نمطية ، ولكن الافضل ان نرى البيانات
  15. وعليكم السلام 🙂 اذن ، اذا لم يوجد رقم ، تريده لا يتكتب شيء ، فيمكننا استعمال الامر IsNumeric([Grade]) (هل حقل Grade رقم) ، جرب هذا الكود : iif(IsNumeric([Grade]);""; iif([Grade]<50; "راسب"; "ناجح"))
  16. وعليكم السلام 🙂 اي شرح؟ وكم حجم قاعدة بياناتك؟ وما نوع بياناتك، تستعملها كلها ، ام بها بيانات للارشفة؟
  17. دكتور حلبي ، الظاهر اننا مو فاهمين بعض !! هذا هو المرفق مرة اخرى. العمل تم على الكائنات التي عليها الاسهم ، فانقلها الى برنامجك ، اما بقية الكائنات ، فلم اعمل عليها اي تغيير 1565.تفعيل خانة الاختيار.accdb.zip
  18. انت قلت ان النتائج صحيحة من استعلام ابو البشر ، فما بحثت عن هذه النقطة 😁 القصد كان السرعة 🙂 خليني ارجع للبرنامج واشوف المطلوب ان شاء الله
  19. 1. اعمل للبرنامج "ضغط واصلاح" 2. افتح الاستعلام qry_alldata_Excel_2 المفروض يكون اسرع بكثير من الطريقة السابقة 🙂 as.zip
  20. وعليكم السلام 🙂 الرسالة تقول ان هناك اكثر من شخص يقوم بالتعديل على قاعدة البيانات في نفس الوقت ، ولحل هذه المشكلة ، افتح الاكسس "حصرا" لك: - افتح برنامج الاكسس (وليس قاعدة البيانات) ، - اختر قاعدة البيانات ، - استخدم السهم على زر "فتح" ، واختار من القائمة المنسدلة "افتح حصرا" . الموقع التالي يعطيك الطريقة بالصور ، حسب نسخة قاعدة بياناتك : https://www.cocosenor.com/articles/office/how-to-open-access-database-exclusively.html جعفر
  21. وعليكم السلام 🙂 تفضل ، هذه طريقة العمل : وتابع الموضوع الى آخر مشاركة 🙂
×
×
  • اضف...

Important Information