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

عمر ضاحى

الخبراء
  • Posts

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

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

  • Days Won

    9

كل منشورات العضو عمر ضاحى

  1. المشكلة ان كل ما وجدة يتعامل مع حالتين فقط (البيع والشراء) لكم ما اريده ان يتعامل مع البيع والشراء والمرتجع البيع والمرتجع الشراء (4 حالات) حتى لما حبيت اطور الكود الموجود ما عرفت اظبطها خالصا وفعلا تهت فى الكود هذه هى مشكلتى فعلا انا بحاول اوصل لحل وان شاء الله سيهدينى ربي الي الحل او من يساعدنى على الوصول للحل ان شاء الله
  2. اولا تسلم ايدك على هذا العمل الرائع ثانيا لى سؤال اخر هل الكود ايضا ممكن يجلب لي الوقت من على موقع او سيرفر معين ؟
  3. بعد اذن الجميع اعمل جدول البرنامج اول ما يفتح يسجل تاريخ اليوم فيه لكن قبل ان يفعل ذلك يتحقق من تاريخ اليوم هل هو اكبر او يساوي اليوم ام لا اذا لا يظهر رساله تخبر المستخدم انه يجب ان يعيد ظبط التاريخ بالتاريخ الحقيقى لليوم (لانه تلاعب بالتاريخ فى الجهاز) اذا نعم يسجل اليوم بالساعه وبكده انت ضمنت عدم التلاعب بالتاريخ بعدها انت هتعمل الكود بتاعك للتحقق من انه لم يصل لتاريخ انتهاء الصلاحية اذا وصل لتاريخ انتهاء الصلاحية يظهر له رساله ان صلاحية البرنامج انتهت ويجب مراسلتك اذا لا يكمل عمل البرنامج وللتمديد هتعمل لك كود تكوين سيريل خاص بيك بالطريقه الخاصه بك على شكل معادلة مثلا او اى شكل تحبه وعند الضغط على التمديد اذا كان السيريل مطابق يقبل التمديد حسب ما انت ظبطه وممكن تبحث فى النت (اليوتيوب) هتلاقي الكثير من الطرق اختر ما يناسبك وعدل عليه بالطريقه التى تخصك
  4. باعتذر لحضرتك عن عدم توضيح النقطه دي لكن الفرق بين عقلية المعلم والتلميذ كبيره جدا والفجوه كبيره انت بتفكر بعقلية المعلم لذا تقوم بعرض الحل مع التوضيح لكيف الوصول للحل فشكرا لك
  5. نفس المشكله عندي هل يمكن بسبب نسخة الافيس انا اعمل بنسخة M.O PROF.PLUS 2021 هذا المطلوب واشكرك على المعلومه
  6. اعتقد هناك خطأ فى المعيار فى استعلام عدد الجداول لكن الاستعلام فى القائمة المنسدلة مظبوط اما بالنسبه لاظهار العدد ممكن يقوم بالتعديل عليه بالكود التالى للجداول =DCount("*";"[MSysObjects]";"[Type] =1 And [Flags] =0") للنماذج =DCount("*";"[MSysObjects]";"[Type] =-32768 And [Flags] =0 ") لا تنسي استاذ @TQTHAMI اختيار افضل اجابه ^_^
  7. اتمني هذا يكون طلبك Database29.accdb
  8. السلام عليكم استاذتى الكرام وكما هو موضح من عنوان الموضوع اريد عمل رسم بياني بناءا على قائمة منسدلة المشكله ان لما باعمل كده بتظهر لى مشكلة فانا مش عارف ايه السبب صراحتا مرفق القاعدة دون الشرط (القائمة) فهي تعمل جيدا لكن عند اضافة الشرط لا تعمل ويظهر الخطأ ملاحظه : انا باقوم باضافى الشرط فى الاستعلام رسم بياني.rar
  9. للرفع رفع الله قدركم بمساعدة ChatGPT اعطاني الكود لكن فيه اخطأ مش عارف ايه هي هل يمكن احد يجرب الكود ويراجع ما الخطأ بعد اذن حضرتكم Option Compare Database Option Explicit Sub UpdateFIFO() Dim db As DAO.Database Dim rsInvHead As DAO.Recordset Dim rsInvDetails As DAO.Recordset Dim rsFIFOQty As DAO.Recordset Dim strSQL As String Dim InvID As Long Dim ItemID As Long Dim Qty As Double Dim PaPrice As Double Dim SaPrice As Double Dim FIFOQty As Double ' Open the database Set db = CurrentDb ' Clear the TblFIFIQty table strSQL = "DELETE FROM TblFIFIQty" db.Execute strSQL ' Open the recordsets Set rsInvHead = db.OpenRecordset("SELECT * FROM TblInvHead") Set rsInvDetails = db.OpenRecordset("SELECT * FROM TblInvDetails") Set rsFIFOQty = db.OpenRecordset("SELECT * FROM TblFIFIQty") ' Loop through the TblInvHead records rsInvHead.MoveFirst Do Until rsInvHead.EOF InvID = rsInvHead!InvID ' Loop through the TblInvDetails records for the current InvID rsInvDetails.MoveFirst rsInvDetails.FindFirst "LInvID = " & InvID If Not rsInvDetails.BOF Then Do Until rsInvDetails.EOF Or rsInvDetails!LInvID <> InvID ItemID = rsInvDetails!LItemID Qty = rsInvDetails!Qty PaPrice = rsInvDetails!PaPrice SaPrice = rsInvDetails!SaPrice ' Calculate the FIFO quantity FIFOQty = GetFIFOQty(db, ItemID, InvID) ' Update the TblFIFIQty table rsFIFOQty.AddNew rsFIFOQty!InvID = InvID rsFIFOQty!LItemID = ItemID rsFIFOQty!InvDate = rsInvHead!InvDate rsFIFOQty!QtyPay = Qty rsFIFOQty!QtyBackPay = 0 rsFIFOQty!QtySales = 0 rsFIFOQty!QtyBackSales = 0 rsFIFOQty!PayPrise = PaPrice rsFIFOQty!SalesPrise = SaPrice rsFIFOQty!done = IIf(Qty <= FIFOQty, True, False) rsFIFOQty.Update rsInvDetails.MoveNext Loop End If rsInvHead.MoveNext Loop ' Close the recordsets rsInvHead.Close rsInvDetails.Close rsFIFOQty.Close Set rsInvHead = Nothing Set rsInvDetails = Nothing Set rsFIFOQty = Nothing ' Close the database db.Close Set db = Nothing MsgBox "FIFO quantities calculated successfully!" End Sub 'يمكنك استخدام الكود التالي في VBA لحساب الأرصدة بنظام FIFO وتخزينها في جدول TblFIFIQty: Function GetFIFOQty(db As DAO.Database, ItemID As Long, InvID As Long) As Double Dim rsFIFOQty As DAO.Recordset Dim strSQL As String Dim FIFOQty As Double ' Open the TblFIFIQty recordset Set rsFIFOQty = db.OpenRecordset("SELECT * FROM TblFIFIQty WHERE LItemID = " & ItemID & " AND Done = False ORDER BY InvDate") ' Loop through the TblFIFIQty records and calculate the FIFO quantity If Not rsFIFOQty.EOF Then rsFIFOQty.MoveFirst End If Do Until rsFIFOQty.EOF FIFOQty = FIFOQty + rsFIFOQty!QtyPay - rsFIFOQty!QtySales If rsFIFOQty!InvID = InvID Then Exit Do End If rsFIFOQty.MoveNext Loop rsFIFOQty.Close Set rsFIFOQty = Nothing GetFIFOQty = FIFOQty End Function 'يرجى استبدال اسماء الجداول والحقول في الكود بالأسماء الصحيحة المستخدمة في قاعدة البيانات الخاصة بك.
  10. الف الف مبروك للاستاذ @دروب مبرمج وربنا يوفقه وينفع الله به وينفعه بما يعلم
  11. للرفع رفع الله قدركم
  12. السلام عليكم اساتذتى الكرام اولا وقبل اى شئ كل عام وحضراتكم بخير ويتقبل الله منا ومنكم صالح الاعمال مرفق الى حضرتكم محاولتى فى تطبيق نظام FIFO (الوارد اولا يصرف اولا) وانا مش عارف اظبطه انا اريد ان يتم تحديث جدول الـ FifoStock فى كل مره افتح النموذج frmFifo بكل ما تم على المخزون من حركات مشكلتى الاكبر انى مش عارف اظهر المرتجعات فى جدول FifoStock اذا كان هناك احد يمكنه ان يساعدنى او حتى لو هناك طرق اخره اكثر تيسير من هذه الطريقه اكون شاكر له ولكم جزيل الشكر مقدما FIFO Access.rar
  13. استاذ / @العبيدي رعد كل عام وانتم بخير باعتذر لحضرتك عن تأخري فى الرد بصراحه انا فتحت الملف طبعا لما بافتح النموذج والتقرير مفيش اى بيانات تظهر لى ولما حبيت اشوف مصدر البيانات لقيت هذا الجدول فهنا رقم 1 فى (رقم المعرف) تمام هو الايرادات لكن رقم 2 فى (رقم المعرف) مش النفقات ولو اعتمدة على رقم القسم مش هيعطينى نتيجة مظبوطه لان الرقم مشترك مع اكثر من سجل الحل (هذا اقتراح) ان تضع عمود جديد يخص تسميات الاقسام ويكون فيها ارقام معرفة فقط لتمييز اقسام الحسابات عن باقى التسميات وهذا هو المرجع لاى استعلام هتحتاجه مستقبليا
  14. يفضل ارفاق نسخه مصغره من البرنامج فيه الجداول المرتبطه بالموضوع (كمصادر معلومات) (دون ان تحتوي على بيانات حقيقية) حتى نستطيع ان نساعدك نأتي لموضوعك حسب ما فهمت انت عاوز تجلب بيانات وتعرفها اذا كانت هذه الارقام ليها مصدر فى جدول مثلا ثابت فيمكنك باستخدام دالى DLOOKUP او دالة IF اذا كانت المعلومات موجوده او الاثنين معا او ممكن ان تستخدم اداة استاذى الاستاذ موسي فى الوصول للمعلومات اما اذا كنت تريد طرق اخرى فيفضل وضع برنامج يمكن العمل عليه لنعرف الالية التى تعمل بها وبناءا على ذلك نجد لك الحل ان شاء الله
  15. اساذى الفاضل الاستاذ ابراهيم قبل اى شئ يفضل دائما انشاء الجداول والحقول باللغه الانجليزية حتى لا يحدث اى مشاكل مستقبليا اولا ولانشاء علاقة بين جدولين لام يكون هناك حقل مشترك بينهم (نوع البيانات تكون واحده ) نرجع للملف الخاص بك يفضل يكون الحقل المشترك بينهم ان يكون من النوع الرقمي وهذا طبعا رأيي الشخصي يمكن ان تعمل به او تعمل باخرى فامامك احدي الخيارين اما ان تغير نوع الحقل بينهم وتحوله لرقمي او ان تحتفظ بهذا الحقل وتعمل حقل اخر للمعرفات ويكون رقم تسلسلى تلقائى وتعمل حقل جديد اخر رقمي فى الجدول الفرعي وتعمل العلاقة بينهم عادي هذا اولا ثانيا لا تضع مفتاح اساسى على رقم الموظف فى الجدولين الا اذا كنت تريد جعلهم جدولين لمعلومات الموظف منفصلين (كـ جعل الجدول الاساسى معلومات عامه والجدول الاخر المنفصل معلومات الرواتب)(رأس برأس) لكن انا شايف ان الجدولين جدول معلومات الموظفين والاخر جدول الاجازات طبعا بما ان الاجازات متكرره المعلومات يبقي لازم يكون نوع العلاقة (رأس باطراف ) يبقي لابد من ازالة مفتاح الاساسي من الجدول الفرعي ثم ستحتاج الى بدء انشاء العلاقات وبناءا على ما سبق هتحتاج اولا عمل نموذح خاص بتسجيل البيانات ونموذج اخر خاص بالاجازات او بالطريقه التى تراها مناسبه لك اتمنى ان اكون استطعت ان اوضح لك بعض النقاط
  16. هل يمكن التحكم فى التسميات للاشهر من العربيه الى الانجليزيه دون التدخل فى نظام الوقت على الكمبيوتر ؟
  17. ما شاء الله دائما مبدع اشكرك كثيرا على الهديه القيمه
  18. الحمد لله ان الفكره جازة اعجابك وربنا يوفقك فى جميع شؤن حياتك لما فيه الصالح لك ولجميع المسلمين الف شكر
  19. فالحل موجود فعلا في زاد المثابر 😅👌 .. جميع النماذج تظهر في القائمة ومن ضمنها النماذج الفرعية اختر النموذج الفرعي من القائمة وسيعطيك عناصره مباشرة 🙂 **************************************************************** استاذي الغالى موسي بارك الله فيك وجزاك الله عنا كل خير 🌷 انا شايف ان يمكنك عرض جميع النماذج سواء فرعيه او رئيسية 😊 لكن ما قصدته هو ان اجعل قائمه فرعيه تظهر اذا كان النموذج الذى اخترته به نموذج فرعي او اكثر ف باختياري احدهم ياتينى بالعناصر ال فى النموذج الفرعي وبعدها يعطينى عنوان العنصر كامل اى يشمل اسم النموذج الرئيسي والفرعي 😁 والف شكر على المجهود
  20. ما شاء الله تبارك الله اداة رائعه ومجهود جبار وهدية مقبوله اشكرك عليها واسئل الله الكريم رب العرش العظيم ان يجزيك عنا كل خير هل لى بطلب( طمع ^_^ ) هل يمكن اضافة مستوي اخر (خاص للنماذج ) بحيث تظهر لى الكائنات فى النماذج الفرعيه ؟ ( بمعني اولا يتم اختيار النموذج الرئيسي ثم اختيار النماذج الفرعيه مستوي وبعدها ممكن اضافة مستوي اخر اعمق للفرعي داخل الفرعي ههههههههههههههه ) خلينا فى المستوي الاول دلوقتي ^_^ الف شكر
  21. وجدتهااااااااااااااا ^_^ Dim Sn As Integer Dim aD As Integer For Sn = 1 To 31 aD = Sn - 1 Me("txtD" & Format(Sn, "00")) = Format(txtTodyDate + aD, "dd - mm") Me("txtDN" & Format(Sn, "00")) = Format(txtTodyDate + aD, "ddd") Next Sn
  22. تقريبا ال فهمته ان لما باستخدم دالة For داخل دالة For ده بيجعل النتائج تتضاعف بعدد الدورات يعنى فى مثالى ال عندي 30 دورة واخرى 31 دورة بتصل الى 930 دورة ايه الحل البديل
  23. الحمد لله تقريبا قربت انتهي من انهاء هذا المشروع لكن وقف معي نقطه اريد ان اختصر هذا الكود (الطويييييل) txtD01 = Format(txtTodyDate + 0, "dd - mm") txtD02 = Format(txtTodyDate + 1, "dd - mm") txtD03 = Format(txtTodyDate + 2, "dd - mm") txtD04 = Format(txtTodyDate + 3, "dd - mm") txtD05 = Format(txtTodyDate + 4, "dd - mm") txtD06 = Format(txtTodyDate + 5, "dd - mm") txtD07 = Format(txtTodyDate + 6, "dd - mm") txtD08 = Format(txtTodyDate + 7, "dd - mm") txtD09 = Format(txtTodyDate + 8, "dd - mm") txtD10 = Format(txtTodyDate + 9, "dd - mm") txtD11 = Format(txtTodyDate + 10, "dd - mm") txtD12 = Format(txtTodyDate + 11, "dd - mm") txtD13 = Format(txtTodyDate + 12, "dd - mm") txtD14 = Format(txtTodyDate + 13, "dd - mm") txtD15 = Format(txtTodyDate + 14, "dd - mm") txtD16 = Format(txtTodyDate + 15, "dd - mm") txtD17 = Format(txtTodyDate + 16, "dd - mm") txtD18 = Format(txtTodyDate + 17, "dd - mm") txtD19 = Format(txtTodyDate + 18, "dd - mm") txtD20 = Format(txtTodyDate + 19, "dd - mm") txtD21 = Format(txtTodyDate + 20, "dd - mm") txtD22 = Format(txtTodyDate + 21, "dd - mm") txtD23 = Format(txtTodyDate + 22, "dd - mm") txtD24 = Format(txtTodyDate + 23, "dd - mm") txtD25 = Format(txtTodyDate + 24, "dd - mm") txtD26 = Format(txtTodyDate + 25, "dd - mm") txtD27 = Format(txtTodyDate + 26, "dd - mm") txtD28 = Format(txtTodyDate + 27, "dd - mm") txtD29 = Format(txtTodyDate + 28, "dd - mm") txtD30 = Format(txtTodyDate + 29, "dd - mm") txtD31 = Format(txtTodyDate + 30, "dd - mm") txtDN01 = Format(txtTodyDate + 0, "ddd") txtDN02 = Format(txtTodyDate + 1, "ddd") txtDN03 = Format(txtTodyDate + 2, "ddd") txtDN04 = Format(txtTodyDate + 3, "ddd") txtDN05 = Format(txtTodyDate + 4, "ddd") txtDN06 = Format(txtTodyDate + 5, "ddd") txtDN07 = Format(txtTodyDate + 6, "ddd") txtDN08 = Format(txtTodyDate + 7, "ddd") txtDN09 = Format(txtTodyDate + 8, "ddd") txtDN10 = Format(txtTodyDate + 9, "ddd") txtDN11 = Format(txtTodyDate + 10, "ddd") txtDN12 = Format(txtTodyDate + 11, "ddd") txtDN13 = Format(txtTodyDate + 12, "ddd") txtDN14 = Format(txtTodyDate + 13, "ddd") txtDN15 = Format(txtTodyDate + 14, "ddd") txtDN16 = Format(txtTodyDate + 15, "ddd") txtDN17 = Format(txtTodyDate + 16, "ddd") txtDN18 = Format(txtTodyDate + 17, "ddd") txtDN19 = Format(txtTodyDate + 18, "ddd") txtDN20 = Format(txtTodyDate + 19, "ddd") txtDN21 = Format(txtTodyDate + 20, "ddd") txtDN22 = Format(txtTodyDate + 21, "ddd") txtDN23 = Format(txtTodyDate + 22, "ddd") txtDN24 = Format(txtTodyDate + 23, "ddd") txtDN25 = Format(txtTodyDate + 24, "ddd") txtDN26 = Format(txtTodyDate + 25, "ddd") txtDN27 = Format(txtTodyDate + 26, "ddd") txtDN28 = Format(txtTodyDate + 27, "ddd") txtDN29 = Format(txtTodyDate + 28, "ddd") txtDN30 = Format(txtTodyDate + 29, "ddd") txtDN31 = Format(txtTodyDate + 30, "ddd") الى هذا الكود Dim Sn As Integer Dim aD As Integer For Sn = 1 To 31 For aD = 0 To 30 Me("txtD" & Format(Sn, "00")) = Format(txtTodyDate + aD, "dd - mm") Me("txtDN" & Format(Sn, "00")) = Format(txtTodyDate + aD, "ddd") Next aD Next Sn لكن المشكله تظهر معي بهذا الشكل كله اصبح نفس التاريخ 🤕 مش عارف فين الخطأ بصراحه
  24. باشكر حضرتا جدا جدا على المساعده انا صراحتا مكنتش عارف ازاي اجعل التكست بوكس ياخد لون اذا تطابق التاريخ فقولت اخليه ياخد رقم 1 ومن ثم اجعل التنسيق الشرطي اذا وجد القيمه تساوي واحد يضع لو مثل هذا (لكن قمت بتعديلها فيما بعد وحذفت الصفر لان ما له لزمه) انا بحاول اعملها بالصورة البدائية لحد ما الاقى كود يختصر على كل التعب ده
×
×
  • اضف...

Important Information