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

Foksh

أوفيسنا
  • Posts

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

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

  • Days Won

    190

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

  1. العفو أخي الكريم ،، ما عليك فعله هو كالآتي ، تحديد مربعات النص من 1 - 12 ، ثم التوجه الى التنسيق الشرطي ، وتقوم بإضافة شرطين كالآتي :- التطبيق في المرفق التالي :- Data19.zip
  2. وهذا هو الاستعلام أخي الكريم :- SELECT t1.* FROM test AS t1 INNER JOIN (SELECT a.[رقم الزبون], a.[إسم المادة], a.[حجم المادة] FROM test AS a INNER JOIN ( SELECT [رقم الزبون], [إسم المادة], [حجم المادة], MAX([تاريخ الفاتورة]) AS MaxDate FROM test GROUP BY [رقم الزبون], [إسم المادة], [حجم المادة] ) AS b ON a.[رقم الزبون] = b.[رقم الزبون] AND a.[إسم المادة] = b.[إسم المادة] AND a.[حجم المادة] = b.[حجم المادة] WHERE a.[تاريخ الفاتورة] >= DateAdd("m", -3, b.MaxDate) GROUP BY a.[رقم الزبون], a.[إسم المادة], a.[حجم المادة] HAVING COUNT(*) > 1 ) AS t2 ON (t1.[حجم المادة] = t2.[حجم المادة]) AND (t1.[إسم المادة] = t2.[إسم المادة]) AND (t1.[رقم الزبون] = t2.[رقم الزبون]) WHERE (((t1.[تاريخ الفاتورة])>=DateAdd("m",-3,(SELECT MAX(x.[تاريخ الفاتورة]) FROM test AS x WHERE x.[رقم الزبون] = t1.[رقم الزبون] AND x.[إسم المادة] = t1.[إسم المادة] AND x.[حجم المادة] = t1.[حجم المادة] )))); رغم أنني سأكرر عليك ما تم الإشارة إليه في الكثير من المواضيع ، وهي استعمالك للأسماء العربية في الحقول و أسماء الجداول ... إلخ من مكونات قاعدة البيانات .
  3. هل تريد فعلاً العودة الى تلوين مربع النص حسب قيمته ؟؟؟؟ يعني اذا كان مربع النص 1 = أصفر = لون الخلفية أصفر !!!! واذا كان مربع النص 7 مثلاً = أزرق = لون خلفيته = أزرق !!!! نرجو منك التوضيح لأنك - واعذرني دون قصد - تفتقر الى الشرح المفهوم في معظم طلباتك وتكون عادة مبهمة وغير صريحة في تحديد المطلوب . بالنسبة الى طلبك وإن كان فعلاً ها ما تريده ، فأنا لن أعود بك الى ما كنت عليه سابقاً وسأجعلك تحاول تنفيذ ذلك من خلال التنسيق الشرطي فعلاً لمربعات النص المستهدفة في التلوين ,.
  4. وعليكم السلام ورحمة الله وبركاته .. أخي الكريم ، في استعلامك ، تظهر النتائج بهذا الشكل :- استعلام1 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 8 2025-03-01 1001 سردين 1000غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ 16 2024-11-01 1006 جبن 500غ 17 2024-10-01 1006 جبن 500غ الآن كنوع من التوضح ، هل النتيجة التي تريدها = :- Query1 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 2 2025-01-01 1002 سردين 100غ 3 2025-01-01 1003 اللحم 500غ 4 2025-09-01 1004 طماطم 1000غ 5 2025-01-01 1005 طماطم 500غ 6 2025-01-01 1006 مشروب عازي 1ا 8 2025-03-01 1001 سردين 1000غ 9 2025-01-01 1001 سردين 50غ 10 2025-04-01 1002 مشروب عازي 2ل 11 2025-02-01 1006 طماطم 500غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ أم هل لك أن توضح بشكل أكبر بناءً على مثالك ما النتائج التي يجب أن تظهر لك ؟؟؟ أم هذه النتيجة :- Query2 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 8 2025-03-01 1001 سردين 1000غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ
  5. اخي احمد ، استثني حقل تاريخ آخر حركة فليس له علاقة في نتيجة الاستعلام 😅 . حتى حقل نوع آخر حركة لا يفيدك بشيء 😇 . فما يهمك هو الرصيد التراكمي النهائي. أما خلاف ذلك فأعتقد انني لم استوعب هدفك جيداً.
  6. تفضل ، هذا الاستعلام للتجربة .. SELECT W.[اسم المادة ومواصفاتها], W.[الرقم الرمزي], W.[وحدة القياس], Sum(IIf(R.[نوع المستند]='وارد مخزني',W.[الكمية رقما],0))-Sum(IIf(R.[نوع المستند]='صادر مخزني',W.[الكمية رقما],0)) AS [الكمية الموجودة], Max(R.[تاريخ المستند]) AS [تاريخ آخر حركة], (SELECT TOP 1 R2.[نوع المستند] FROM [راس الوارد] AS R2 INNER JOIN [اطراف الوارد] AS W2 ON R2.[كود المستند] = W2.[كود المستند] WHERE W2.[الرقم الرمزي] = W.[الرقم الرمزي] ORDER BY R2.[تاريخ المستند] DESC, R2.[رقم المستند] DESC, W2.[كود الطرف] DESC ) AS [نوع آخر حركة] FROM [اطراف الوارد] AS W INNER JOIN [راس الوارد] AS R ON W.[كود المستند] = R.[كود المستند] GROUP BY W.[اسم المادة ومواصفاتها], W.[الرقم الرمزي], W.[وحدة القياس]; النتيجة = Query2 اسم المادة ومواصفاتها الرقم الرمزي وحدة القياس الكمية الموجودة تاريخ آخر حركة نوع آخر حركة ورق A3 22222 بند 3 2025-05-09 صادر مخزني ورق A4 11111 بند 1 2025-05-09 صادر مخزني
  7. لا مشكلة ، ولكن في المرفق لا يوجد نماذج !!!
  8. وعليكم السلام ورحمة الله وبركاته ، رغم أنني لا أشجع دائماً على استخدام المسميات العربية للحقول والجداول ، إلا أنه وعلى ما يبدو لا خلاص من النُصح بخصوص هذه النقطة . على العموم .. من خلال جداولك التي ارفقتها ، وبناءً على القيم التي فيها كحركة وارد للصنف ، في جدولك مادتين هما :- اطراف الوارد اسم المادة ومواصفاتها الرقم الرمزي ورق A4 11111 ورق A3 22222 ورق A4 11111 ورق A3 22222 ورق A4 11111 ورق A4 11111 هل هذا صحيح أولاً ؟ أي أن الرقم الرمزي هو معرف المادة ؟؟؟؟ ان كان ما توضح لي صحيحاً ، فإنه كنتيجة الوارد سيكون عندك الناتج كالآتي :- اطراف الوارد اسم المادة ومواصفاتها الرقم الرمزي الكمية الموجودة ورق A4 11111 19 ورق A3 22222 13 هل هذا التصور صحيح ؟؟ أم ان النتيجة المتوقعه = Query1 اسم المادة ومواصفاتها الرقم الرمزي الكمية الموجودة ورق A3 22222 3 ورق A4 11111 1
  9. ما دفعني الى البحث في الانترنت عن بعض المصادر التي تتعلق بهذه النقطة . هذه بعض الصفحات التي تحدثت عن المشكلة التي ذكرتها سابقاً :- توضح مايكروسوفت أن استخدام نفس الاسم لمشروع VBA ( و / أو ) وحدة أو مكتبة مرجعية يمكن أن يؤدي إلى تعارضات ، ويُنصح بتغيير أحد الأسماء لتجنب ذلك . المصدر : Microsoft Learn . تشير مايكروسوفت إلى أن تسمية مشروع VBA بنفس اسم كائن موجود في آكسيس ( مثل "Form" أو "Application" ) يمكن أن يؤدي إلى تعارضات ، وقد يتم تعديل الاسم تلقائياً بإضافة شرطة سفلية لتجنب ذلك . المصدر : Microsoft Learn . في منتديات الدعم الخاصة بمايكروسوفت ، أبلغ مستخدمون عن ظهور أخطاء عند محاولة إضافة مراجع لمكتبات مثل "Microsoft DAO 3.6 Object Library" بسبب تعارض الأسماء مع وحدات موجودة بنفس الاسم . المصدر: Microsoft Community . ⚠️ هل يمكن أن يؤدي ذلك إلى حذف الأكواد ❓ بينما تعارض الأسماء لا يؤدي مباشرة إلى حذف الأكواد ، إلا أنه قد يتسبب في تلف مشروع VBA ، مما يؤدي إلى اختفاء الوحدات النمطية أو عدم القدرة على الوصول إليها . في بعض الحالات ، قد تظهر رسائل خطأ مثل "The database cannot be opened because the VBA project contained in it cannot be read" عند فتح قاعدة البيانات . المصدر : Stackoverflow .
  10. العفو أخي الكريم ، ان كان طلبك قد تحقق ، فيرجى منك فضلاً لا أمراً باغلاق الموضوع باختيار أفضل إجابة للمشاركة التي كانت حلاً يرضيك ,
  11. في إحدى التجارب التي لفتت انتباهي لهذه النقطة كانت عندما قمت بتصميم مشروع قديم ،وكنت تلقائياً بعد فتح قاعدة البيانات وإضافة المكتبات التي اريدها للمشروع ، أقوم بشكل افتراضي بتسمية المشروع في محرر الأكواد إلى اسم المشروع الذي أصممه مطابقاً لاسم قاعدة البيانات التي تم انشاءها . فمثلاً اسم المشروع = "Accounting Software" على سطح المكتب ، واسم المشروع في محرر الأكواد كما أشرت سابقاً = "Accounting Software" أيضاً ، فصادفتني مشكلة عند بدء تشغيل المشروع من نموذج البداية كالمعتاد وهي انه ظهرت رسالة خطأ في أوامر بدء التشغيل للنموذج . ولأنها عادة كانت عندي بالتسمية المتشابهة كما أشرت أعلاه ، قمت بتغيير اسم المشروع في محرر الأوامر . وهنا كانت النقطة الفاصلة التي لفتت انتباهي ان الرسالة لم تظهر أبداً . وهذا ما جعلني أطرح هذه النقطة . لا أعلم السبب الحقيقي !! ولكني في حينها لم أذهب الى البحث عن السبب بشكل جدي .
  12. دي بسيطة جداً .. اليوم ان شاء الله في جهاز البيت لدي نسختين 2010 - 32 / 2026 - 64 ، وفي العمل لدي النسخة 2019 - 64 . خطر ببالي نقطة حصلت معي سابقاً وكانت فعلاً سبب مشكلة في إحدى قواعد البيانات . وهي تغيير اسم المشروع في محرر الأكواد كما في الصورة التالية .. وهذه القاعدة نفسها التي ارفقها أخونا طاهر ولكن بعد تغيير اسم المشروع ، مع عدم تغيير نواة الأكواد من 32 إلى 64 ( حسب النسخة الحالية التي لدي الآن = 2016 - 64 ) ش ع2025.zip
  13. ما دام الأمر مقتصراً على قاعدة بيانات واحد فقط ، فالخلل إذاً بلا شك في نفس القاعدة وبطريقة كتابة الأكواد والسلوك المتبع في التسلسل .... إلخ وجهة نظري أستاذي وصديقي @ابو جودي
  14. العفو أخي الكريم .. اذا كان قد تم حل مشكلتك ، ففضلاً قم بإغلاق الموضوع .
  15. قم بفتح قاعدة بيانات جديدة ، اعمل استيراد لجميع مكونات قاعدة البيانات التي لا تعمل ( جداول واستعلامات ونماذج ... الخ ) . ومن المهم ان تتأكد من المكتبات في محرر أكواد VBA .
  16. وعليكم السلام ورحمة الله وبركاته ، أخي الكريم @2saad ، الأصل هو تتبع الاستعلامات التي بُنيت عليها الإستعلامات الفرعية ، والأستاذ @ابوخليل مشكوراً أسس لك الإستعلامات بشكل سهل تستطيع منه التتبع والتعديل ... إلخ على العموم ، في البداية يجب إضافة الحقل في الاستعلام الأصلي = qry_master . ثانياً ، إضافة الحقل في الاستعلامين (qry_Temp_term1 و qry_Temp_term2 ) . ثالثاً ، بعد إضافة الحقل Stucod في الجدول ، قمت بالتعديل على زري (اعداد نتيجة الفصل الدراسي الأول و اعداد نتيجة الفصل الدراسي الثاني) بحيث يتم اضافة قيمة الحقل الى الجدول ، كالآتي :- Private Sub ProcessTermData(termNum As Integer, ctrl As Control, includeVHodor As Boolean) On Error GoTo ErrorHandler ctrl.Caption = "انتظر ..." DoCmd.SetWarnings False DoCmd.RunSQL "DELETE FROM tbl_Temp WHERE tbl_Temp.term_Num = " & termNum & ";" If includeVHodor Then DoCmd.RunSQL "INSERT INTO tbl_Temp (term_Num, vHodor, alnesbah, tgyeem1, hala, safType, eldina_id, Stucod) " & _ "SELECT qry_term" & termNum & ".*, qry_Temp_term" & termNum & ".term_Num, " & _ "qry_Temp_term" & termNum & ".hodor, qry_Temp_term" & termNum & ".alnesbah1, " & _ "qry_Temp_term" & termNum & ".tgyeem1, qry_Temp_term" & termNum & ".hala1, " & _ "qry_Temp_term" & termNum & ".safType, qry_Temp_term" & termNum & ".eldina_id, " & _ "qry_Temp_term" & termNum & ".Stucod " & _ "FROM qry_Temp_term" & termNum & " INNER JOIN qry_term" & termNum & " " & _ "ON qry_Temp_term" & termNum & ".Stucard = qry_term" & termNum & ".Stucard;" Else DoCmd.RunSQL "INSERT INTO tbl_Temp (term_Num, alnesbah, tgyeem1, hala, safType, eldina_id, Stucod) " & _ "SELECT qry_term" & termNum & ".*, qry_Temp_term" & termNum & ".term_Num, " & _ "qry_Temp_term" & termNum & ".alnesbah1, qry_Temp_term" & termNum & ".tgyeem1, " & _ "qry_Temp_term" & termNum & ".hala1, qry_Temp_term" & termNum & ".safType, " & _ "qry_Temp_term" & termNum & ".eldina_id, qry_Temp_term" & termNum & ".Stucod " & _ "FROM qry_Temp_term" & termNum & " INNER JOIN qry_term" & termNum & " " & _ "ON qry_Temp_term" & termNum & ".Stucard = qry_term" & termNum & ".Stucard;" End If DoCmd.SetWarnings True ctrl.Caption = "تــم" Exit Sub ErrorHandler: DoCmd.SetWarnings True ctrl.Caption = "خطأ" MsgBox "حدث خطأ أثناء معالجة البيانات", vbCritical + vbMsgBoxRight, "" End Sub ثم الإستدعاء في الزرين :- Private Sub StartBtn_Click() ProcessTermData 1, b, False End Sub Private Sub StartBtn2_Click() ProcessTermData 2, bb, True End Sub ملفك بعد التعديل :- Data18.zip أو البقاء على الاستعلامات الاصلية للزرين كما في التالي :- Private Sub StartBtn_Click() b.Caption = "انتظر ..." DoCmd.SetWarnings False DoCmd.RunSQL "DELETE tbl_Temp.*, tbl_Temp.term_Num FROM tbl_Temp WHERE (((tbl_Temp.term_Num)=1));" DoCmd.RunSQL "INSERT INTO tbl_Temp (term_Num, alnesbah, tgyeem1, hala, safType, eldina_id, Stucod) " & vbCrLf & _ "SELECT qry_term1.*, qry_Temp_term1.term_Num, qry_Temp_term1.alnesbah1, qry_Temp_term1.tgyeem1, " & _ "qry_Temp_term1.hala1, qry_Temp_term1.safType, qry_Temp_term1.eldina_id, qry_Temp_term1.Stucod " & vbCrLf & _ "FROM qry_Temp_term1 INNER JOIN qry_term1 ON qry_Temp_term1.Stucard = qry_term1.Stucard;" DoCmd.SetWarnings True b.Caption = "تــم" End Sub Private Sub StartBtn2_Click() bb.Caption = "انتظر ..." DoCmd.SetWarnings False DoCmd.RunSQL "DELETE tbl_Temp.*, tbl_Temp.term_Num FROM tbl_Temp WHERE (((tbl_Temp.term_Num)=2));" DoCmd.RunSQL "INSERT INTO tbl_Temp (term_Num, vHodor, alnesbah, tgyeem1, hala, safType, eldina_id, Stucod) " & vbCrLf & _ "SELECT qry_term2.*, qry_Temp_term2.term_Num, qry_Temp_term2.hodor, qry_Temp_term2.alnesbah1, " & _ "qry_Temp_term2.tgyeem1, qry_Temp_term2.hala1, qry_Temp_term2.safType, qry_Temp_term2.eldina_id, qry_Temp_term2.Stucod " & vbCrLf & _ "FROM qry_Temp_term2 INNER JOIN qry_term2 ON qry_Temp_term2.Stucard = qry_term2.Stucard;" DoCmd.SetWarnings True bb.Caption = "تــم" End Sub
  17. هل قمت بتغيير الوسيط الذي تقوم بنقل القاعدة عليه ؟؟؟؟؟؟؟؟؟ قد يكون هذا أحد أسباب تلف قاعدة البيانات وهو الـ USB نفسه الذي تنقل من خلاله
  18. اسمحوا لي بمداخلة صغيرة . أخي الريم عند اضافة أكواد إلى مشاركتك أو أي موضوع لك لاحقاً ، حاول استخدام إشارى <> المخصصة لكتابة أو لصق الأكواد فيه . أما بخصوص هذه المشكلة عند المسميات العربية والتي لا ننصح بها دائماً في برمجة VBA هي :- لاحظ الرموز التي نتجت عند نسخك للكود في الوقت الذي كانت فيه لغة الكيبورد = English في كمبيوترك !! بينما لاحقاً ومستقبلاً عند نسخ أي كود من محرر الأكواد وكان الكود يحتوي مسميات عربية ، حاول تغيير لغة الكتابة الى العربية قبل النسخ واللصق . كل الإحترام والتقدير للأساتذة وخبراء ومعلمي قسم الآكسل . فلا أتعدى ولا أنقص من مجهودكم بقدر ما لفت انتباهي تكرار هذه النقطة عند الكثيرين من الأخوة أصحاب الطلبات بما يخص هذه المشكلة CE??EC??E .
  19. وعليكم السلام ورحمة الله وبركاته .. من خلال المعطيات التي ذكرتها .. الوزن الصافي (طن) : مثلاً 197 طن درجات القمح : درجة 23.5 بسعر 2200 جنيه درجة 23.0 بسعر 2150 جنيه درجة 22.5 بسعر 2100 جنيه الخصومات : دمغة : 1 جنيه النقابة : 0.55 جنيه لكل أردب ستكون المعادلة في اكسل افتراضاً بالشكل التالي :- = (الوزن_الصافي * 1000 / 150) * (IF(الدرجة>=23.5, 2200, IF(الدرجة>=23, 2150, IF(الدرجة>=22.5, 2100, 0))) - (دمغة + (الوزن_الصافي * 1000 / 150 * 0.55))) وكفكرة على كيفية تطبيقها : قم بإعداد جدول بهذه الأعمدة ( أسماء الأعمدة في الصف الأول ) :- A : رقم الكرتونة B : الوزن الصافي (طن) C : درجة القمح D : السعر E : الخصومات F : الصافي في الخلية D2 (السعر) = المعادلة التالية :- =IF(C2>=23.5, 2200, IF(C2>=23, 2150, IF(C2>=22.5, 2100, 0))) في الخلية E2 (الخصومات) = المعادلة التالية أيضاً :- =1 + (B2*1000/150*0.55) -في الخلية F2 (الصافي) = المعادلة : =(B2*1000/150*D2)-E2 طبعاً على افتراض أن الأردب = 150 كيلو جرام حسب النظام المصري .
  20. وعليكم السلام ورحمة الله وبركاته .. أقصى سعة تخزين في آكسيس = 2 جيجابايت تقريباً لكل ملف .
  21. وعليكم السلام ورحمة الله وبركاته .. أخي الكريم أمرك بسيط جداً إن شاء الله ، وهو انك حالياً تقارن بين تاريخ الوفاة وقيمة حقل التاريخ "alyom" في جدول "البيانات" . وهذا غير صحيح للأسف . فالأصل ان تتم المقارنة بين تاريخ الوفاة وتاريخ اليوم = Date في الاستعلام "استعلام بالاسم" وهو مصدر سجلات التقرير "مدة الوفاة" الآن لضبط الأمور كما تريد ، فقط عدل في الاستعلام الحقل الأخير AGE الى التالي :- AGE: diff2dates("ddmmyyyy",[n1],Date(),True) طبعاً انا عملت لك الجزء الخاص فقط اللي في الاستعلام . برنامج الوفيات.accdb
  22. اللهم ربّ الناس ، أذهب البأس ، واشفِ أنت الشافي ، لا شفاء إلا شفاؤك ، شفاءً لا يغادر سقمًا . اللهم اشفِ نجل الأخ محمد هشام شفاءً تاماً عاجلاً ، اللهم ألبسه ثوب الصحة والعافية ، وردّه إلى أهله سالماً معافى يا أرحم الراحمين . اللهم اجعل مرضه طهوراً له ، وكفّارةً لذنوبه ، وسبباً لرفع درجته ، وفرّج عن والديه وأهله ، إنك على كل شيء قدير 🤲🏻
  23. يعمل على إصدار أوفيس 2016 64بت ، و ويندوز 10 ( مع إصدار 2010 32بت ) بدون مشاكل
  24. وعليكم السلام ورحمة الله وبركاته.. كان لي تجربة شخصية مع أخي @سلمان الشهراني في أحد المواضيع هنا . حاول التواصل معه عله يفيدك 🤗 .
  25. اختصاراً لوقتك و وقت الاساتذة ، لم لا تقوم بالافاق الملف .
×
×
  • اضف...

Important Information