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

عمر ضاحى

الخبراء
  • Posts

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

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

  • Days Won

    9

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

  1. المشكله انك اولا مش ضايف عامل التصفيه فى النماذج الفرعيه فكيف هيعمل التصفيه ؟ المشكله التى واجهتني هو هذا الاستعلام SELECT [item].[Item_Name], [item].[Item_Name] FROM [item] ORDER BY [Item_Name] UNION select 0, '***All item***' from item ORDER BY Item_Name; هنا القيمه 0 تدل على ***All item*** طبعا الحل المفترض فى النماذج الفرعيه جربت اضع هذا الشرط ' الحل الاول IIf([Forms]![on HandF]![Productid]<>0;[Forms]![on HandF]![Productid];([Purchase_Invoice_sub].[Item_Name])) 'الحل اثاني IIf([Forms]![on HandF]![Productid]<>0;([Purchase_Invoice_sub].[Item_Name]) Like [Forms]![on HandF]![Productid];([Purchase_Invoice_sub].[Item_Name])) كلهم يعطينى نفس الخطأ عند محاولت تغير القيمه فى القائمة المنسدله
  2. متااااابع فى صمت (لانى ايضا بدور على حل لهذه الاشكاليه )
  3. ممكن توضح اكثر يعنى ايه بيديك قراءة مختلفه ؟
  4. ما الغرض من عرض الجميع هل للطباعه ؟ لان المفترض عرض البيانات التى تخص الحالة اما لو لاستعلام عن الدفعات المتبقيه بشكل عام ده ممكن تعمله باستعلامات اخري سهله لكن الاهم اليى بناء الجداول انها تكون بناء سليم قابل للتطوير
  5. عملت لك ملف على السريع هتلاقى داخل الملف المضغوط 3 ملفات الاول قاعدة البيانات الاكسيس الثاني ملف خط الباركود (هتحتاج تسطبه فى الوندوز عندك علشان كل حاجه تكون مظبوطه) الثالث ملف الاكسيل انت طبعا لنا تحب تغير ملف الاكسيل اول حاجه لازم يكون اسم ملف الاكسيل هو " MyLabel.xlsx " بعدها تفتح قاعدة البيانات هذا للفائدة تم وضع كود اعادة ربط ملف الاكسيل علشان لو نقلت مكان البرنامج بشكل تلقائى يعرف يعيد ربط الاكسيل بالاكسيس طبعا الكود اخذته من استاذى @Moosak وهو Sub RelinkLinkedTable() Dim db As DAO.Database Dim tblDef As DAO.TableDef ' Set the path to the original Excel file Dim excelFilePath As String excelFilePath = CurrentProject.Path & "\" & "MyLabel.xlsx" ' Set the name of the linked table Dim linkedTableName As String linkedTableName = "MyLabel" ' Open the database Set db = CurrentDb() ' Get the TableDef object for the linked table Set tblDef = db.TableDefs(linkedTableName) ' Update the Connect property to relink the table to the original Excel file tblDef.Connect = "Excel 12.0;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=" & excelFilePath ' Refresh the table to apply the changes tblDef.RefreshLink ' Close the database db.Close ' Cleanup Set tblDef = Nothing Set db = Nothing MsgBox "Linked table relinked successfully.", vbInformation End Sub Label.rar
  6. نصيحتى لك اولا اعمل جدول خاص باسماء اولياء الامور وبياناتهم منفصل وليكن جدول رئيسي واجعل فيه حقل معرف (تسلسل تلقائى اذا لم يكن لديك خبره فى التعامل مع الدوال وانشاء تسلسل خاص بك) وليكن ID اعمل جدول الخاص بمدفوعاتهم (هيكون جدول فرعي) هيكون فيه حقل رقمي(ليس مفتاح اساسى) وليكن LID وتربطه بالحقل التسلسل التلقائى من الجدول الرئيسي اعمل النموذج ونموذج فرعي النموذج الرئيسي هيكون فيه قائمة منسدلة مصدر بياناته اسماء اولياء الامور النموذج الفرعي هيكون مصدره استعلام من الجدول الفرعي لكن هناك هيكون فى معيار وهي قيمة الحقل (القائمة المنسدلة) من النموذج الرئيسي وهتروح عند حدث بعد التحديث فى القائمة المنسدلة وتعمل تحديث للنموذج الفرعي اذا كان النموذج الفرعي فى النموذج الرئيس ياسم SubFrmX1 مثلا هيكون الكود هكذا SubFrmX1.Requery وبكده هتظهر لك البيانات الخاصه فقط بولى الامر المحدد فقط وبناءا عليه ممكن تعمل الكثير
  7. المشكلة ان كل ما وجدة يتعامل مع حالتين فقط (البيع والشراء) لكم ما اريده ان يتعامل مع البيع والشراء والمرتجع البيع والمرتجع الشراء (4 حالات) حتى لما حبيت اطور الكود الموجود ما عرفت اظبطها خالصا وفعلا تهت فى الكود هذه هى مشكلتى فعلا انا بحاول اوصل لحل وان شاء الله سيهدينى ربي الي الحل او من يساعدنى على الوصول للحل ان شاء الله
  8. اولا تسلم ايدك على هذا العمل الرائع ثانيا لى سؤال اخر هل الكود ايضا ممكن يجلب لي الوقت من على موقع او سيرفر معين ؟
  9. بعد اذن الجميع اعمل جدول البرنامج اول ما يفتح يسجل تاريخ اليوم فيه لكن قبل ان يفعل ذلك يتحقق من تاريخ اليوم هل هو اكبر او يساوي اليوم ام لا اذا لا يظهر رساله تخبر المستخدم انه يجب ان يعيد ظبط التاريخ بالتاريخ الحقيقى لليوم (لانه تلاعب بالتاريخ فى الجهاز) اذا نعم يسجل اليوم بالساعه وبكده انت ضمنت عدم التلاعب بالتاريخ بعدها انت هتعمل الكود بتاعك للتحقق من انه لم يصل لتاريخ انتهاء الصلاحية اذا وصل لتاريخ انتهاء الصلاحية يظهر له رساله ان صلاحية البرنامج انتهت ويجب مراسلتك اذا لا يكمل عمل البرنامج وللتمديد هتعمل لك كود تكوين سيريل خاص بيك بالطريقه الخاصه بك على شكل معادلة مثلا او اى شكل تحبه وعند الضغط على التمديد اذا كان السيريل مطابق يقبل التمديد حسب ما انت ظبطه وممكن تبحث فى النت (اليوتيوب) هتلاقي الكثير من الطرق اختر ما يناسبك وعدل عليه بالطريقه التى تخصك
  10. باعتذر لحضرتك عن عدم توضيح النقطه دي لكن الفرق بين عقلية المعلم والتلميذ كبيره جدا والفجوه كبيره انت بتفكر بعقلية المعلم لذا تقوم بعرض الحل مع التوضيح لكيف الوصول للحل فشكرا لك
  11. نفس المشكله عندي هل يمكن بسبب نسخة الافيس انا اعمل بنسخة M.O PROF.PLUS 2021 هذا المطلوب واشكرك على المعلومه
  12. اعتقد هناك خطأ فى المعيار فى استعلام عدد الجداول لكن الاستعلام فى القائمة المنسدلة مظبوط اما بالنسبه لاظهار العدد ممكن يقوم بالتعديل عليه بالكود التالى للجداول =DCount("*";"[MSysObjects]";"[Type] =1 And [Flags] =0") للنماذج =DCount("*";"[MSysObjects]";"[Type] =-32768 And [Flags] =0 ") لا تنسي استاذ @TQTHAMI اختيار افضل اجابه ^_^
  13. اتمني هذا يكون طلبك Database29.accdb
  14. السلام عليكم استاذتى الكرام وكما هو موضح من عنوان الموضوع اريد عمل رسم بياني بناءا على قائمة منسدلة المشكله ان لما باعمل كده بتظهر لى مشكلة فانا مش عارف ايه السبب صراحتا مرفق القاعدة دون الشرط (القائمة) فهي تعمل جيدا لكن عند اضافة الشرط لا تعمل ويظهر الخطأ ملاحظه : انا باقوم باضافى الشرط فى الاستعلام رسم بياني.rar
  15. للرفع رفع الله قدركم بمساعدة 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 'يرجى استبدال اسماء الجداول والحقول في الكود بالأسماء الصحيحة المستخدمة في قاعدة البيانات الخاصة بك.
  16. الف الف مبروك للاستاذ @دروب مبرمج وربنا يوفقه وينفع الله به وينفعه بما يعلم
  17. للرفع رفع الله قدركم
  18. السلام عليكم اساتذتى الكرام اولا وقبل اى شئ كل عام وحضراتكم بخير ويتقبل الله منا ومنكم صالح الاعمال مرفق الى حضرتكم محاولتى فى تطبيق نظام FIFO (الوارد اولا يصرف اولا) وانا مش عارف اظبطه انا اريد ان يتم تحديث جدول الـ FifoStock فى كل مره افتح النموذج frmFifo بكل ما تم على المخزون من حركات مشكلتى الاكبر انى مش عارف اظهر المرتجعات فى جدول FifoStock اذا كان هناك احد يمكنه ان يساعدنى او حتى لو هناك طرق اخره اكثر تيسير من هذه الطريقه اكون شاكر له ولكم جزيل الشكر مقدما FIFO Access.rar
  19. استاذ / @العبيدي رعد كل عام وانتم بخير باعتذر لحضرتك عن تأخري فى الرد بصراحه انا فتحت الملف طبعا لما بافتح النموذج والتقرير مفيش اى بيانات تظهر لى ولما حبيت اشوف مصدر البيانات لقيت هذا الجدول فهنا رقم 1 فى (رقم المعرف) تمام هو الايرادات لكن رقم 2 فى (رقم المعرف) مش النفقات ولو اعتمدة على رقم القسم مش هيعطينى نتيجة مظبوطه لان الرقم مشترك مع اكثر من سجل الحل (هذا اقتراح) ان تضع عمود جديد يخص تسميات الاقسام ويكون فيها ارقام معرفة فقط لتمييز اقسام الحسابات عن باقى التسميات وهذا هو المرجع لاى استعلام هتحتاجه مستقبليا
  20. يفضل ارفاق نسخه مصغره من البرنامج فيه الجداول المرتبطه بالموضوع (كمصادر معلومات) (دون ان تحتوي على بيانات حقيقية) حتى نستطيع ان نساعدك نأتي لموضوعك حسب ما فهمت انت عاوز تجلب بيانات وتعرفها اذا كانت هذه الارقام ليها مصدر فى جدول مثلا ثابت فيمكنك باستخدام دالى DLOOKUP او دالة IF اذا كانت المعلومات موجوده او الاثنين معا او ممكن ان تستخدم اداة استاذى الاستاذ موسي فى الوصول للمعلومات اما اذا كنت تريد طرق اخرى فيفضل وضع برنامج يمكن العمل عليه لنعرف الالية التى تعمل بها وبناءا على ذلك نجد لك الحل ان شاء الله
  21. اساذى الفاضل الاستاذ ابراهيم قبل اى شئ يفضل دائما انشاء الجداول والحقول باللغه الانجليزية حتى لا يحدث اى مشاكل مستقبليا اولا ولانشاء علاقة بين جدولين لام يكون هناك حقل مشترك بينهم (نوع البيانات تكون واحده ) نرجع للملف الخاص بك يفضل يكون الحقل المشترك بينهم ان يكون من النوع الرقمي وهذا طبعا رأيي الشخصي يمكن ان تعمل به او تعمل باخرى فامامك احدي الخيارين اما ان تغير نوع الحقل بينهم وتحوله لرقمي او ان تحتفظ بهذا الحقل وتعمل حقل اخر للمعرفات ويكون رقم تسلسلى تلقائى وتعمل حقل جديد اخر رقمي فى الجدول الفرعي وتعمل العلاقة بينهم عادي هذا اولا ثانيا لا تضع مفتاح اساسى على رقم الموظف فى الجدولين الا اذا كنت تريد جعلهم جدولين لمعلومات الموظف منفصلين (كـ جعل الجدول الاساسى معلومات عامه والجدول الاخر المنفصل معلومات الرواتب)(رأس برأس) لكن انا شايف ان الجدولين جدول معلومات الموظفين والاخر جدول الاجازات طبعا بما ان الاجازات متكرره المعلومات يبقي لازم يكون نوع العلاقة (رأس باطراف ) يبقي لابد من ازالة مفتاح الاساسي من الجدول الفرعي ثم ستحتاج الى بدء انشاء العلاقات وبناءا على ما سبق هتحتاج اولا عمل نموذح خاص بتسجيل البيانات ونموذج اخر خاص بالاجازات او بالطريقه التى تراها مناسبه لك اتمنى ان اكون استطعت ان اوضح لك بعض النقاط
  22. هل يمكن التحكم فى التسميات للاشهر من العربيه الى الانجليزيه دون التدخل فى نظام الوقت على الكمبيوتر ؟
  23. ما شاء الله دائما مبدع اشكرك كثيرا على الهديه القيمه
×
×
  • اضف...

Important Information