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

jjafferr

أوفيسنا
  • Posts

    9,871
  • تاريخ الانضمام

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

  • Days Won

    403

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

  1. اخي الفاضل moho58 🙂 بعد متابعتي للمشاركات اعلاه ، وملاحظات اخي سامي الحداد ، فنصيحتي لك : رجاء اعادة صيغة سؤالك ، واعطنا امثلة عن اللي تريد حسب بيانات مرفقك ، يعني اكتب: - في النموذج abc ، - في الحقل qwe ، - لما اختار asd في الحقل qwe ، تظهر النتائج 1... و 2... و 3... - ولما اختار 2... ، يجب ان يظهر في الحقل zxc قيمة yhn وووو ويا ريت تدعم طلبك بالصور حسب الحاجة ، وتستطيع استعمال الاكسل او الوورد او برنامج الصور للشرح. رجاء اخذ من وقتك لعمل هذا ، وبعدها افتح موضوع جديد بجميع هذه التفاصيل ، حتى تكون فرصتك اكبر في استحواذ عدد اكبر من الاعضاء والخبراء 🙂 يُغلق هذا الموضوع
  2. وعليكم السلام 🙂 اخي الفاضل ، الكود عندك صحيح وما فيه اي مشكلة 😁 بس رجاء الانتباه الى ان نموذجك معمول لإدخال البيانات ، وليس لمعاينة البيانات السابقة : وانت لا ترى نتائج الكود ، لأن السجل ينتقل الى السجل التالي ، لهذا اعمل التغيير التالي في اعدادات نموذجك ، حتى ترى رقم السجل الذي انت عليه : .
  3. سيدي الفاضل ، الطريقة هذه لا تعمل التصفية ولا علاقة لها بالتصفية اصلا !! وهناك الكثير من الطرق ، منها : DoCmd.OpenReport "betweendates", acViewReport, , "days =#" & Me.start & "#" . ولكن ، انسى كل ما قلته اعلاه ، فمصدر بيانات تقريرك يعمل بنفس الطريقة التي عملتها لك في مشاركتي السابقة 😁
  4. نعم، البيانات موجودة في المرفق، ولكن ليس مثال عن طلبك 🙂 استغنيت عن فلتر النموذج ، ووضعت معيار التصفية في الاستعلام مصدر بيانات النموذج ، هكذا : . وعملت نفس المعيار في الاستعلام مصدر بيانات التقرير. 1575.1.exemple.accdb.zip
  5. السلام عليكم في دوال التغيير ، لا تعمل لها تنسيق عن طريق الامر Format ، فعندها يتحول متغير التاريخ الى نص ، والسبب هو انك قد تحتاج الى استعمال هذه الدالة مرة اخرى بتنسيق آخر. لذا قم بعمل التنسيق بعد جلب البيانات من الدالة. وامر CDate ليس مضمونا ان يحول النص الى تاريخ ، والامر الاصح هو DateSerial ، حتى لا يختلط الشهر باليوم . هكذا اصبحت دالة ToHijri : Option Compare Database Option Explicit Private CorctAdjustDay As Integer Private SavedCal As Integer Private d As Date Private s As String 'التحويل من التاريخ الميلادى للهجرى Public Function ToHijri(ByRef myData As String) 'إحضار القيمة العددية لفرق الأيام من جدول إعداد ضبط التاريخ الهجرى CorctAdjustDay = DLookup("[AdjustDay]", "tblAdjustHjriDate") 'ضبط التاريخ الميلادى بالزيادة أوالنقصان 'حسب القيمة العددية والتى تساوى التاريخ الهجرى 'myData = Trim(Format(DateAdd("d", CorctAdjustDay, myData), "dd/mm/yyyy")) myData = Trim(DateAdd("d", CorctAdjustDay, myData)) 'التحويل من التاريخ الميلادى للهجرى SavedCal = Calendar VBA.Calendar = 0 'd = CDate(myData) d = myData 'Hijri VBA.Calendar = 1 s = CStr(d) 'ToHijri = Format(s, "dd/mm/yyyy") ToHijri = s VBA.Calendar = SavedCal 'يتم استدعاء الموديول بالشكل التالى 'txt Hijri date = ToHijri(txt Milady date) End Function . وهكذا نناديها (لاحظ التنسيق يتم بعد مناداة الدالة) ، وهنا استخدم جدول tbl_Months لنحصل على الاسماء باللغة العربية : Private Sub Report_Load() On Error Resume Next DoCmd.ShowToolbar "Ribbon", acToolbarNo Dim Arabic_Month As String 'Georgian Arabic_Month = DLookup("[Months_Georgian]", "tbl_Months", "[Months_English]='" & Format(Date, "mmmm") & "'") Me.H_TEXT = ConArNum(Format(Date, "dd ")) & _ Arabic_Month & _ ConArNum(Format(Date, " yyyy م")) 'Hijri Me.txtHijriDate = ToHijri(Date) Arabic_Month = DLookup("[Months_Hijri]", "tbl_Months", "[Months_Number]=" & Month(Me.txtHijriDate)) Me.txtHijriDate = ConArNum(Format(Me.txtHijriDate, "dd ")) & _ Arabic_Month & _ ConArNum(Format(Me.txtHijriDate, " yyyy هـ")) End Sub . الدالة ConArNum هي لتحويل الارقام العربية الى ارقام هندية (نعم الارقام التي نستخدمها هي ارقام هندية) : Public Function ConArNum(ByVal strStringToConvert As String) As String ' 'https://www.vbforums.com/showthread.php?584388-Arabic-Numbers-display-on-one-machine-but-not-another&p=3609151&viewfull=1#post3609151 ' ' Convert the Arabic number to Indian ' On Error GoTo ErrorHandler strStringToConvert = Replace$(strStringToConvert, "0", ChrW$(1632)) strStringToConvert = Replace$(strStringToConvert, "1", ChrW$(1633)) strStringToConvert = Replace$(strStringToConvert, "2", ChrW$(1634)) strStringToConvert = Replace$(strStringToConvert, "3", ChrW$(1635)) strStringToConvert = Replace$(strStringToConvert, "4", ChrW$(1636)) strStringToConvert = Replace$(strStringToConvert, "5", ChrW$(1637)) strStringToConvert = Replace$(strStringToConvert, "6", ChrW$(1638)) strStringToConvert = Replace$(strStringToConvert, "7", ChrW$(1639)) strStringToConvert = Replace$(strStringToConvert, "8", ChrW$(1640)) strStringToConvert = Replace$(strStringToConvert, "9", ChrW$(1641)) ConArNum = strStringToConvert Exit Function ErrorHandler: ConArNum = vbNullString End Function . اما جدول tbl_Months ، وتستطيع قراءة طريقة استعماله وفوائده من هنا: https://www.officena.net/ib/topic/81063-كتابة-التاريخ-بصيغة-لا-تتغير-بتغير-اعدادات-الوندوز/ . والنتيجة النهائية هي : 1574.الارقام.accdb.zip
  6. وعليكم السلام 🙂 ما شاء الله على شغلك ، متعوب عليه 🙂 الله يطول في عمرك اخوي ابو امين ، خذها قاعدة ، اذا لم يتم الرد على موضوع ليس بذلك الصعوبة ، خلال يوم واحد وهناك اكثر من 80 عضو قرأه ، فمعناه ان الاعضاء ما فهموه !! رجاء اخبرنا وين المشكلة ، واعطنا مثال عن كيف تريد ان يكون الجواب (سواء بصورة او بالاكسل او ... ) ، وكلما شرحك كان اكثر ، كلما سهلت على الجميع سرعة الرد على سؤالك 🙂
  7. السلام عليكم 🙂 الطريقة الوحيدة التي اعرفها ، هي عمل صورة ببرنامج خارجي ، وتدير الصورة بالزاوية التي تريدها ، ثم تلصقها في التقرير
  8. وعليكم السلام 🙂 1. الخطأ في هذا السطر فانت طلبت التركيز ينتقل الحقل xtdAmt ، بينما لا يوجد حقل في النموذج الفرعي بهذا الاسم. 2. انت عملت المعادلة التالية ، والتي تعمل بطريقة صحيحة ، ولكن قيمة المتغير xtdAmt = صفر ، لهذا السبب لا تتغير قيمته ظاهرا ، بينما قد تم اضافة صفر الى 100 واصبحت القيمة = 100 : 'update Customer Current Balance Forms!arEnterPayments!cmCurBalA = Forms!arEnterPayments!cmCurBalA + tdAmt
  9. وعليكم السلام في موضوعك السابق ، اشرت لك على الرابك الذي به الاوامر الصحيحة : وبما انك مُصر على استعمال الكود الذي لديك ، اليك المشكلة : الاكسس يحفظ السجلات تلقائيا عند خروجك من السجل ، وانت تقول له برمجيا اذا كان هناك اي شيء في السجل تم تغييره (If Frm.Dirty Then) ، فاعطني الرسالة اعلاه
  10. السلام عليكم اخي بلال 🙂 رجاء اعطنا معلومات كافية لمعرفة المشكلة ، والحل الذي تريده !! انا على سبيل المثال ، لا افهم الطلب "على الطاير" مثل ما يقولون ، وانا متأكد بوجود الكثير مثلي ، فساعدنا علشان نساعدك 🙂 ليس في هذا الموضوع فقط ، وانما في جميع مواضيعك لوسمحت 🙂 جعفر
  11. السلام عليكم 🙂 عمل جميل اخوي ابوخليل ، والحاجة اليه ماسة ، وان شاء الله اقوم بتجربته 🙂 جعفر
  12. وعليكم السلام 🙂 ظاهرا هناك مشكلة في Unicode الوندوز وتعريف اللغة العربية ، ولإصلاح هذا ، اتبع خطوات الاربط التالي
  13. مثا ما اشرت به في مشاركتي : 1. الاستعلام مصدر بيانات النموذج . ثم في النموذج . 1572.solaf.accdb.zip
  14. انا اخبرتك السبب في الرابط التالي ، وفي آخر مشاركة فيه طريقة الحل هذا الجزء من الكود ، ليس فيها اسم الجدول : =IIf(DCount("*","Serial_Sadad=" & [Serial_Sadad] & "And PartStatus='تم الدفع'")
  15. هذه المشاركة تكملة للموضوع اعلاه
  16. سؤال: هل هذه الاسئلة ثابتة ، او انها تتغير ؟
  17. اترك النموذج جانبا ، وحاول تعمل تعديل بيانات في استعلام التجميع مباشرة ، ولن تستطيع 😁 استعلام التجميع لا يسمح بالتعديل/الاضافة.
  18. الحمدلله 🙂 انا احلت الاستعلام qry_Section_Gender_Count على التقاعد ، واستعملت الاستعلام qry_Section_Gender_Count_2 بدلا عنه في التقارير.
  19. وعليكم السلام 🙂 قام الاخ موسى بكتاية اكواد فريق الانتقال (GotoRecord) كاملا هنا :
  20. السلام عليكم 🙂 اطال الله في عمرك اخي الكريم ، انت خلطت الحابل بالنابل !! في معادلاتك التالية ، انت استخدمت كلمة "أنثى" ، بينما في الجدول هي "انثى" (لاحظ حرف الالف) : 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
  21. اخي الفاضل نزار ، انا لم اذكر النماذح ولم اتعامل معها ، فعملي كان في الاستعلام 100% اعطني دقيقة لتعمل الذي تريده تفضل ، تم تغيير مصدر بيانات النموذج الى الاستعلام 1570.2.test.accdb.zip
  22. القاعدة الخلفية (الجداول) : لا يهم اي نسخة من الاوفيس/الاكسس تم تنصيبها ، فالملف الذي به الجداول يعمل على النواتين ، ويجب ان يكون بصيغة accdb او mdb (طبعا تستطيع تغيير الصيغة لاحقا للتمويه ، الى bak مثلا) ، القاعدة الامامية (نماذج) : بما ان برنامجك يعمل على النواتين الآن ، فإذا تركته بصيغة accdb ، فانه سيعمل على جميع نسخ الاكسس (2007 او اكبر) ، وسواء نواة 32بت او 64بت ، اما اذا اردت ان تقفل البرنامج وتحوله الى صيغة accde : - يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 32بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 32بت ، - يجب ان تستعمل حاسبة منصّب عليها اوفيس/اكسس 64بت ، ومنها تعمل نسخة مقفولة بصيغة accde ، وهذه النسخة يمكنك استخدامها فقط على الحواسيب التي عليها اوفيس/اكسس 64بت. وبغض النظر ، سواء عندك نسخة accde لنواة 32بت او 64بت ، فالنسختين تعملان مع الجداول ، ويمكنك ربط نسخة النواة 32بت وربطها مع الجداول ، وعلى حاسبات اخرى عليها نسخة نواة 64بت وكذلك ربطها بالجداول ، داخل نفس الشبكة.
  23. واذا عندك صفوف غير "الصف الخامس جميع الدرجات" ، فيمكننا تعديل الدالة ، بحيث تستخدمها لجميع الصفوف : والدالة: 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
  24. الحاسبة التي تم تنصيب اكسس 32بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 32بت ، والحاسبة التي تم تنصيب اكسس 64بت عليها ، استعمل قاعدة بياناتك التي قفلتها بنواة 64بت. لا يمكنك الخلط بينهم
×
×
  • اضف...

Important Information