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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم 🙂 شكرا لكم جميعا 🙂 اخي اباجودي ، شكر خاص لك على هذا الدلال والدلع ، ومش عرف ان بتجيب الكلمات دي منين 🙂 عملت تعديل في المرفق ، واصبح الآن يأخذ اطوال مختلفة من السجلات 🙂 جعفر
  2. اعتقد عرفت مكان الخلاف 🙂 حسب نتائج الملف المرفق ، الدائن اكبر من المدين ، لهذا السبب النتيجة يجب ان تكون دائن ، بينما النتيجة عندنا في الدائرة الحمراء مدين ، وهذا الخطأ الذي تتكلم عنه : . ولكنك اردت المعادلة بهذه الطريقة : . فالظاهر انك عكست اول طلبين ، فعليه الكود يجب ان يكون : . وعليه تكون النتيجة: . إلا اذ في شيء آخر ما فهمته انا !! جعفر 1292.1784258757_.accdb.zip
  3. وعليكم السلام 🙂 الاستعلام qry_1 يأخذ جميع بيانات الجداول (مثل بقية استعلاماتك ، ولكن بدون اي معيار) ، والاستعلام qry_Group ، فيقسم البيانات الى مجموعات ، ثم يحسب مجموع قيمة مبلغ كل قسم ، ولا يحسب ترتيب مجموع الدائن والمدين والصافي ، لأننا نقوم بجمعه في هذا الاستعلام (أ. لأني ما ادري كيف قمت انت بعمل حسبة الدائن والمدين والصافي ، ب. لأن احد هذه القيم لم تكن في الجدول ، فقمت بعملية الحسبة احتياطا 🙂 ) . وتقدر تضع معيار التاريخ ، ورقم الملف في هذا الاستعلام ، وباقي العمل يقوم به التقرير ، وفيه مجموع الدائن والمدين والصافي 🙂 جعفر
  4. وعليكم السلام 🙂 تفضلي 🙂 . . والاستعلام: SELECT numbers.textnumbers, Mid([textnumbers],1,InStr([textnumbers],"/")-1) AS L, Mid([textnumbers],InStr([textnumbers],"/")+1) AS R FROM numbers; جعفر
  5. وعليكم السلام بشمهندس 🙂 عملت لك برنامج خاص 🙂 جعفر
  6. السلام عليكم 🙂 عندنا تقرير بهذه الطريقة : . ونريد نعملة بهذه الطريقة : . نعمل التقرير ، ثم نعمل مجاميع لأي من الحقول ، ثم نعمل حقل ليحسب عدد السجلات للمجموعة : . ويجب عمل برواز الحقول شفاف : ---------------------------------------------------------------------- التعديل - 1 ، 27/11/2020 تصحيح البرنامج ، على فرضية اطوال السجلات مختلفة وتحتوي على اكثر من سطر ثم نرسل هذه البيانات للوحدة النمطية Box_Lines التي تقوم بعمل البرواز : نرسل اسم الحقل المطلوب عمل المربع الكبير حوله ، ولون الخط ، ولون البرواز ، وعدد سجلات المجموعة : Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) 'No way to adjust the field Height, so we Draw a Box around the new Height Call apply_Max_Height("rpt", 0, "save", RGB(221, 217, 195)) 'Expand the field to be the size of the combined Records 'Call Box_Lines(fld , Text Fore color, Border Color, Group_Record_Count) 'Call Box_Lines(Me.Name, "save", vbBlack , vbBlack , Me.save_Footer) Call Box_Lines(Me.Name, "save", RGB(16, 37, 63), RGB(221, 217, 195), Me.save_Footer) End Sub . واستخدمت الوحدة النمطية لأخونا العود ابو خليل من هنا ، لضبط اطوال جميع السجلات الى الاطول : طلب كود تنسيق نمو حقول التقرير - قسم الأكسيس Access - أوفيسنا (officena.net) وتقوم الوحدة النمطية Box_Lines بعمل المطلوب ، بعمل حقل واحد (للجقل المطلوب) : Option Compare Database Option Explicit Dim str_Text As String Dim int_Counter As Integer Public fildMaxHeight As Integer Dim ctl As Control ' Public Function Box_Lines(rpt_Name As String, fld_Name As String, rgb_Fore As Long, rgb_Border As Long, Group_Record_Count As Integer) Dim L As Single Dim T As Single Dim W As Single Dim H As Single Set ctl = Reports(rpt_Name)(fld_Name) 'make it simple to understand L = ctl.Left W = ctl.Width T = ctl.Top H = ctl.Height 'take the highst Height If fildMaxHeight > H Then H = fildMaxHeight End If 'this is to know when a new Group starts If ctl <> str_Text Then str_Text = ctl int_Counter = 1 End If ctl.BorderColor = vbWhite ctl.ForeColor = vbWhite Reports(rpt_Name).Line (L, T)-(L, W), rgb_Border 'Left Line Reports(rpt_Name).Line (W, T)-(W, H), rgb_Border 'Right Line 'COULDN'T GET IT TO WORK ' If int_Counter = Group_Record_Count Then 'Last Record ' Reports(rpt_Name).Line (L, H)-(W, H), rgb_Border 'Bottom Line ' End If If int_Counter = 1 Then 'First Record ctl.ForeColor = rgb_Fore 'Text ForeColor Reports(rpt_Name).Line (L, T)-(W, T), rgb_Border 'Top Line End If int_Counter = int_Counter + 1 End Function Public Function find_Max_Height(rpt_Name As String, Section_Number As Integer) fildMaxHeight = 0 For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls If ctl.Height > fildMaxHeight Then fildMaxHeight = ctl.Height End If Next End Function Public Function apply_Max_Height(rpt_Name As String, Section_Number As Integer, Exclude_fld_Name As String, rgb_Border As Long) fildMaxHeight = 0 'get the max Height For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls If ctl.Height > fildMaxHeight Then fildMaxHeight = ctl.Height End If Next 'Draw lines around the fields For Each ctl In Reports(rpt_Name).Section(Section_Number).Controls If ctl.Name <> Exclude_fld_Name Then Reports(rpt_Name).Line (ctl.Left, ctl.Top)-Step(ctl.Width, fildMaxHeight), vbWhite, BF Reports(rpt_Name).Line (ctl.Left, ctl.Top)-Step(ctl.Width, fildMaxHeight), rgb_Border, B End If Next End Function . -------------------------------------------------------------------- النسخة اعلاه فيها خطأ ، فرجاء استعمال النسخة الاحدث ، والتي نستطيع فيها العمل على اكثر من حقل : جعفر 1293.1.Report_Draw_BoxLine.mdb.zip
  7. اعمل استعلام تحديث للحقل A ، واعمل المعايير المطلوبه للاستعلام ، في التحديث ، استعمل: not [A] جعفر
  8. وعليكم السلام 🙂 اذا كان اسم الحقل A ، استعمل : me.A = not me.A جعفر
  9. عُذرا ، هذا الاختلاف يصير لما تنصيب الاكسس يكون انجليزي و عربي !! بدل الفاصلة ، استخدم الفاصلة المنقوطة 🙂 . . كون الحقل Rslt يستعمل نتيجة الطرح بين حقلين ، واللي يأخذ قيمته من حقلين آخرين ، فخلينا نقطع الوسيط ونتواصل مع الاصل ، ولكن ، وبما انك تضيف بيانات في النموذج الفرعي ، فالحدث عند التحميل سيعطيك نتيجة الجمع لما تفتح النموذج لأول مرة فقط !! جعفر
  10. تفضل 🙂 . =IIf([Rslt]=0,"لا يوجد رصيد",IIf([Rslt]>0,"مدين","دائن")) جعفر
  11. تفضل 🙂 التقرير مبني على اساس الاستعلام qry_Group ، والذي يمكنك وضع المعايير فيه ، هكذا التقرير قي وضع التصميم : . وعلى حسب العرض المتوفر ، نعمل عدد الاعمدة : . والنتيجة : . جعفر 1290.السجل.accdb.zip
  12. السلام عليكم 🙂 وهذه طريقة اخرى ، دون المساس بـ Registry الكمبيوتر جعفر
  13. وعليكم السلام 🙂 رجاء اعطنا مثال ، بارقام من برنامجك ، وطريقة النتيجة التي تريدها ، سواء باستخدام اكسل او وورد او صورة ، حتى نقتدي به لطلبك 🙂 جعفر
  14. السلام عليكم 🙂 الاستعلام qry_Attended_Absent يحتوي على صافي البيانات ، حسب ما تصفيه في النموذج ادناه ، والنموذج frm_Main هو الذي تبحث من خلاله ، وبعد ان تختار من الحقول ، يجب ان تنقر على الزر "ابحث" (او اطبع) حتى تحصل على البيانات المطلوبه ، ويمكنك النقر مرتين في اي حقل ، حتى تجعله فارغا ، مما يعني انك تريد جميع بيانات ذلك الحقل : . جعفر 1279.1.attend.accdb.zip
  15. سهلة 🙂 اضف السطر اللي عليه السهم الاحمر ، في الحدث المرفق . اووه ، ما كنت ادري انه في ناس تطالعنا ، لما انا وصاحبي كنا نسولف بصوت عالي 🙂 والافضل ان تغير اسماء النماذج الفرعية الى: هوية افقية ، وهوية عمودية ، في الهوية العمودية عملت لك Listbox ، فاعمل نفس الشيء للهويات العمودية ، بحيث هالنموذجين يكفون لعمل جميع انواع الهويات ، وما يكون فيه داعي لعمل لا نماذج اضافية ولا تقارير 🙂 جعفر
  16. السلام عليكم اخوي محمد 🙂 في الواقع جذبني الى الموضوع ، عدم ارفاقك المرفق مع المشاركة ، واتضح انه بسبب حجم قاعدة البيانات ، وكما توقعت ، فأنت كنت عامل صور الاقسام مضمنه في النماذج والتقارير ، فقمت بفرزها ، فأصبحت رشيقة 🙂 ولم اتطرق لأي شيء آخر 🙂 جعفر 1289.اوفيسنا.zip
  17. السلام عليكم 🙂 تقريبا انتهيت من الطلب ، فاعطني بعض الوقت 🙂 جعفر
  18. تمام بشمهندس 🙂 تم فصل الموضوع الى : جعفر
  19. السلام عليكم 🙂 كلامك صحيح ، وبقي لما يستورد الملف ، تنسيق timestamp عبارة عن نص ، ويحتاج الى تنسيق اخير 🙂 تقريبا انتهيت من الطلب ، فاعطني بعض الوقت 🙂 جعفر
  20. وعليكم السلام 🙂 رحم الله والديك على هذه المعلومة ، الظاهر اني ما التفت لها ، من سنين 😁 العمل على جدول tbl_Months : بالإضافة الى تعديل خطأ تسلسل الايام ، قمت بتعديل جميع المسميات ، آخذاً المسميات من الكمبيوتر ، بالتشكيلة 🙂 عندك اختيارين : تحذف الجدول من برنامجك ، ثم تستورد الجدول من البرنامج المرفق ، سواء من قاعدة البيانات او ملف الاكسل ، تعدل على جدولك يدويا حسب بيانات الصورة ادناه ، او الملفات المرفقة : جعفر tbl_Months.zip tbl_Months.xlsx
  21. استعمل نماذج عادية بدون لمس هذه الاعدادات ، لأن الازرار التي تظهر في البرنامج هي ازرار البرنامج وليس النماذج ،
  22. autoexec basJStreetAccessRelinker m_Arc_Subs فقط 🙂 اما الماكرو ، فقط تغير اسم النموذج (ولا تجعل النموذج منبثق ولا Dialog ، ولا تجعل على فتح النماذج (Maximize) : . وفي برنامجك ، لما تفتح نموذج ، لا تغلق النموذج الذي انت فيه 🙂 جعفر
  23. ما لك علاقة بيهم ، اتركهم كما هم ، ونادهم من الماكرو AutoExec ، كما هو موضح هناك ، و الماكرو AutExec جاهز كما هو ، مجرد غيّر اسم نموذج الافتتاح 🙂 جعفر
  24. 1. الحمدلله 🙂 2. تفضل : De_Select : عند اختيار الاسم من النموذج الفرعي للشفت ، وعلشان التقرير الفرعي يعرف اي شفت نتعامل معاه ، Re_query : بعد الاختيارات اعلاه ، نطلب من جميع النماذج/التقرير الفرعي ، اخذ البيانات من الجدول من جديد ، لإظهار القيم الجديده ، Group_Shifts_2 : هذا اللي يجمع الاسماء في التقرير الفرعي ، Where_Am_I : عند النقر في النموذج الفرعي للشفت ، وعلشان التقرير الفرعي يعرف اي شفت نتعامل معاه ، DateFormat : هذا اللي حل مشكلة التاريخ ، Turn_Off : وهذا اللي يغلق جميع الكائنات ، والقائمة العلوية ، autoexec : اول شيء يشتغل في البرنامج ، ويفتح اول نموذج ، ويوسعه ، وينادي دالة اغلاق كل شيء ، وكان (لأني حذفته حسب طلبك، يعيد ربط برنامج الواجهة مع قاعدة بيانات الجداول الخلفية ، لما يكون برنامجك مقسم ، ويطلب منك تختار مكان الجداول الجديدة). 3. حذفتهم ، بس انت الخسران ، لأني ما خليت إلا النوادر وتعب سنين ، ووجودهم ما يؤثر على البرنامج 😁 4. ان شاء الله 🙂 جعفر 1281.8.FRm_Refresh.accdb.zip
×
×
  • اضف...

Important Information