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

Amr Ashraf

الخبراء
  • Posts

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

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

  • Days Won

    10

كل منشورات العضو Amr Ashraf

  1. تفضل ان شاء الله هو المطلوب شرح الفكرة : بالنسبة للعناصر المطلوب اظهارها واخفاءها يتم الاستفادة بخاصية Tag بحيث يكون لهم نفس Tag ويتم استخدام كود بسيط لاظهار او اخفاء مجموعة العناصر صاحبة الTag المطلوب وتطبيقا على قاعدتك ستجد ان ازرار الموظفين لها تاج باسم Emp وعناصر الطلاب لها تاج Stu . فى الفكرة ايضا اذا ضغطت على الزر يقوم باظهار العناصر الخاصة به و اذا ضغطت مرة اخرى تختفى العناصر وينطبق الموضوع على زر الموظفين و الطلاب سواء الأعلى او الجانبى . يمكنك تعديلها كما تريد . بالتوفيق Amr.accdb
  2. غريب الموضوع لم يمر على فى تجاربى فى هذا الشأن .. كمان بتقول ان لو واحد فقط اللى فتح بيفتح معاه عادى ولكن بيمنع الباقى من استخدام البرنامج .؟! سؤال آخر هل خيار Compact on Close مفعل فى الاعدادات الخاصة بالقاعدة ؟ اقرأ هذا المقال قد يكون مرتبط بمشكلتك https://support.microsoft.com/en-us/topic/-you-do-not-have-exclusive-access-to-the-database-error-in-access-5da26550-a74d-6d88-f242-dd97d6bb1719
  3. السلام عليكم .. الطريقة اللى مرت على بتعتمد على اكثر من كود .. الكود الاول يتحقق من هل المستخدم حدد اختيار من القائمة ام لا .. الكود الثانى فى حالة تحديد خيار واحد او اكثر من خيار .. الكود الثالث تمرير الاختيارات كمعايير للبحث فى استعلام يتم انشاؤه برمجيا وعرض نتيجته .. اعتقد الطريقة المستخدمة معقدة ممكن تفكر تغير الطريقة وتعتمد على تواريخ فعلية من تاريخ الى تاريخ فى مجموعات لعرض ماتريد .. اتمنى يفيدك احد الاخوة اكثر
  4. هل كل مستخدم من ال4 عنده نسخة من FE ولا كلهم بيستخدموا نفس النسخة ؟
  5. ارفق قاعدة البيانات اخى الكريم .. الكلام النظرى مش هيحل المشكلة
  6. وعليكم السلام .. مزيد من التفاصيل حضرتك مقسم البرنامج BE و FE يعنى قاعدة جداول وواجهة نماذج وتقارير صح ؟ طيب واجهة النماذج حضرتك حاططها على السيرفر وكل المستخدمين بيفتحوها ؟ اعتقد من كلامك ان هيا الحالة كده .. السؤال دلوقتى ليه مش عامل اكتر من FE او الواجهة اللى فيها النماذج وموزعها على المستخدمين وبتتصل بالBE على السيرفر ؟ لأن فى كل الحالات وهيا شغالة فى عدد محدود لفتح نفس النموذج تقريبا 3 أشخاص فى حين انك لو عامل واجهات متعددة ممكن يشتغل على البرنامج 100 شخص وكلهم يسجلوا بيانات فى نفس الوقت بدون مشاكل لو عامل Record Lock ... أما بصراحة نفس القاعدة وكل المستخدمين بيستخدموها فى نفس الوقت مجربتهاش من الأساس ... لو انا فاهم الموضوع خطأ ياريت توضح الموضوع اكتر .. بالتوفيق
  7. فين المرفق اللى هنطبق عليه الحل ؟ عامة يمكنك استخدام For كالمثال التالى جرب وان مشتغلش ارفق النموذج. ملاحظة : يفضل عدم استخدام اللغة العربية فى الاكواد لأنها بيصعب التعامل معها ولذلك استبدلت اسماء الحقول العربية فى الكود بأسماء افتراضية Cnt بدلا من نص 6 و Result للنتيجة مستجد او راسب . بالتوفيق On Error Resume Next DoCmd.GoToRecord , , acFirst For i = 0 To Me.Form.Recordset.RecordCount - 1 If Me.Cnt = 0 then Me.Result = 1 Else Me.Result = 10 end if DoCmd.GoToRecord , , acNext Next هناك ايضا طريقة ابسط عن طريق الاستعلامات هيكون فيه استعلام لعد مواد الرسوب لكل طالب و فيه حقل فيه دالة IIF لبيان الحالة طبقا للعدد .. وفى النموذج الخاص بيك يتم استدعاء حالة الطالب بناء على الكود او ID مثلا هناك حلول كثيرة فى هذا الشأن .
  8. موضوع متعوب عليه جزاك الله خير .. بالنسبة لى بعمل تصميمات القوائم بالشكل التالى .. كل زرار فى القائمة اليمين دى بتظهر مجموعة ايقونات وازرار مختلفة كشكل واستخدام وحماية بالنسبة لى طريقتى مناسبة
  9. السلام عليكم .. بحثت فى الموضوع لأنى شكيت انها لا علاقة لها بالواتس اساسا وفعلا هيا خدمة بتولد Tokens يتم استخدامها فى المصادقات من هذا النوع .. أعتقد يا أخى ان الخدمة دى مدفوعة لأنها سيرفر او كلاود على النت .. ده طبقا للبحث السريع اللى قمت بيه .. انظر الرابط يمكن تستفيد اكتر https://developers.google.com/instance-id
  10. وعليكم السلام .. انتا بتستخدم اصدار 64 من الاوفيس والاكواد محتاجة تتعدل عشان تشتغل على الاصدار ده .. عندك حلين الحل الاول تعديل كل الاكواد اللى فيها كلمة Declare تزود بعدها كلمة ptrsafe .. والحل الافضل انك تغير نسخة الاوفيس وتنزل اصدار 32 بيت لأن ال64 كله مشاكل حتى لو حليت دى فى المستقبل اكيد هيتعبك .. بالتوفيق
  11. جزاكم الله خير استاذنا الفاضل فى انتظار المزيد ... ويا حبذا لو سلسلة فى انشاء الاستعلامات بطريقة متقدمة (خفايا الاستعلامات)😅
  12. السلام عليكم .. اساتذتى الافاضل كل عام وانتم بخير بمناسبة الشهر الكريم فى المرفق ستجد استعلام ResultFinal هذا الاستعلام بطئ فى استحضار البيانات وخاصة فى حالة تقسيم القاعدة , حاولت تسريعه بأكثر من طريقة عن طريق تقليل المعادلات و زيادة عدد الاستعلامات ونجحت الى حد ما ولكن النتيجة غير مرضية .. الاستعلام يحضر بياناته من اكثر من 15 استعلام اخر وكمية بيانات لا بأس بها قد تصل الى 20000 سجل .. فى انتظار رأى الاساتذة .. شكرا جزيلا Database.rar
  13. ماشاء الله عليك يا غالى فكرة الموديول رائعة وهو المطلوب .. سأحاول تطبيق الفكرة على القاعدة الاساسية ولو واجهت مشكلة اسمحلى ارجعلك .. جزاك الله خير وكل عام وانتم بخير بمناسبة الشهر الفضيل
  14. شكرا على مرورك استاذى الفاضل ولكن للاسف ليس المطلوب .. قم بتغيير البيانات فى اى ماكينة وليكن M7 قم بتغيير الحالة الى Test و الاولوية الى 2 وبذلك يكون شكل الاستعلام Q1 كالتالى طبقا للشروط اللى انا محددها فى الاستعلام : المفترض النتيجة تكون فى M7 التاريخ 1-2-2021 و الحالة تكون Test و Po يكون 220 .. ولكن النتيجة فى الاستعلام Q2 كالتالى : اتمتى وجود حل .. شكرا على مجهودك
  15. السلام عليكم اساتذتى الافاضل .. عندى مشكلة بسيطة .. ستجد فى المرفق جدول به مجموعة بيانات وثلاث استعلامات .. الاستعلام الاول Q0 وظيفته فلترة البيانات فى الجدول بشرط محدد .. الاستعلام الثانى Q1 وظيفته ترتيب نتيجة الاستعلام الاول طبقا للاولوية و التاريخ لكل ماكينة .. الاستعلام الثالث Q2 يفترض به جلب اخر سجل لكل ماكينة فى Q1 ولكن النتيجة عكس المطلوب .. النتيجة المرجوة يفترض ان تكون كالتالى : الفكرة كلها ان يظهر فقط اخر سجل يحتوى على Priority رقم 1 -مع البيانات الاخرى المقترنة بها فى نفس السجل- من الاستعلام الثانى فى حالة وجودها .,, اما فى حالة عدم وجودها يحضر اخر سجل يحتوى على Priority رقم 2 مع البيانات المقترنة بها فى نفس السجل. او ببساطة محتاج Q2 يحضر اخر سجل لكل ماكينة فى Q1 دون التقيد برقم ID او تسلسل ادخال البيانات او تاريخ .. فقط يتقيد بالترتيب الوارد بQ1 . ما هى الطريقة الافضل لتحقيق المطلوب .. جزاكم الله خير Last Po.accdb
  16. اولا عاش من شافك يا ابا جودى .. ثانيا نفس استنتاجى بالضبط ولذلك ذكرت ان البيانات نفسها على الشبكة بس كنت محتاج تأكيد للموضوع .. جزاك الله خير
  17. السلام عليكم .. اخوانى الافاضل صادفتنى اليوم مشكلة غريبة مع استعلام حدثت من قبل ولكن لم اوليها اهتماما .. فلنفترض ان لدى استعلام مصدر بياناته استعلام آخر الذى بدوره مصدر بياناته استعلام ثالث وهكذا يعنى مثلا 4 او 5 طبقات من استعلامات يعتمدون على بعض تدريجيا حتى الوصول الى استعلام يعطى النتيجة المطلوبة .. الاستعلام الاخير اخرج نتائج خاطئة اليوم وعند غلقه وفتحه اعطى النتائج الصحيحة وكأن شيئا لم يكن .. مع العلم نفس الظروف وبدون تغيير فى اى بيانات فقط اخرج معلومات خاطئة اغلقته ثم فتحته مجددا فأظهر النتائج المفترض اظهارها . كيف يمكن ان يحدث ذلك ؟ ملاحظات : 1-القاعدة مقسمة وقاعدة البيانات على الشبكة المحلية . 2-النتائج المفترض اظهارها فى الاستعلام تعتمد بشكل كبير على تجميع القيم واظهار اول و آخر واكبر سجل او تاريخ وهكذا . 3-الاستعلام المشار اليه هو مصدر بيانات نموذج Datasheet ومنه استعرض البيانات , وايضا مصدر لتقارير احيانا تعطى نفس المشكلة ولكن نادراً. 4-المشكلة نادرة ممكن تحدث كل 500 مرة مرة واحدة . فقط لمعرفة حجم الاستعلامات التى نتحدث عنها انظر االاكواد .. الدرجة الاولى SELECT TblPoDtls.ID, TblPoDtls.PONumber, TblPoDtls.ProductCode, TblPoDtls.OrderQty, TblPoDtls.Mold, TblMolds.MoldDescription, TblPoDtls.Machine, TblProducts.ProductName, TblPoDtls.Status, ([OrderQty]-Nz([SumOfAcceptedProduct],0)) AS Remains, TblPoDtls.Zdate, TblMolds.[24HProduct], Round([Remains]/[24HProduct],2) AS DaysRemains, IIf([DaysRemains]>1,"تحت التشغيل",IIf([DaysRemains]<=0,"زيادة","اوشك على الانتهاء")) AS Remark, IIf([Status]<>"منتهى",IIf([Status]<>"منتهى+محمل",IIf([DaysRemains]>0,Format(Date()+[DaysRemains],"dd/mm/yyyy"),""))) AS EndDate, Sum(TblProduction.AcceptedProduct) AS SumOfAcceptedProduct, Sum(TblProduction.RejectedProduct) AS SumOfRejectedProduct, Sum(TblProduction.TotalProduction) AS SumOfTotalProduction FROM (TblMolds INNER JOIN (TblProducts INNER JOIN TblPoDtls ON TblProducts.ProductCode = TblPoDtls.ProductCode) ON TblMolds.Mold = TblPoDtls.Mold) LEFT JOIN TblProduction ON TblPoDtls.PONumber = TblProduction.PONumber GROUP BY TblPoDtls.ID, TblPoDtls.PONumber, TblPoDtls.ProductCode, TblPoDtls.OrderQty, TblPoDtls.Mold, TblMolds.MoldDescription, TblPoDtls.Machine, TblProducts.ProductName, TblPoDtls.Status, TblPoDtls.Zdate, TblMolds.[24HProduct] ORDER BY TblPoDtls.ID, TblPoDtls.Zdate; الدرجة الثانية SELECT TblPoDtls.Machine, PO_FollowUp2.Zdate, PO_FollowUp2.ID, TblPoDtls.PONumber, TblPoDtls.Mold, PO_FollowUp2.Status AS S, PO_FollowUp2.EndDate, PO_FollowUp2.MoldDescription, TblPoDtls.ActualEnd, TblProducts.ProductName, PO_FollowUp2.DaysRemains, PO_FollowUp2.SumOfAcceptedProduct, PO_FollowUp2.SumOfRejectedProduct, PO_FollowUp2.SumOfTotalProduction, PO_FollowUp2.[24HProduct], PO_FollowUp2.OrderQty, PO_FollowUp2.Remark, PO_FollowUp2.ProductCode, Nz(Sum(IIf([Year]=Year(Date()),[In])),0) AS YearAdd, Nz(Sum(IIf([Year]=Year(Date()),[Out])),0) AS YearRel, QryPoProductionTillNow.SumIn, QryPoProductionTillNow.SumOut, Nz([Mn],"لم ينتج") AS FirstProduction FROM ((((TblPoDtls INNER JOIN PO_FollowUp2 ON TblPoDtls.PONumber = PO_FollowUp2.PONumber) INNER JOIN TblProducts ON (TblProducts.ProductCode = TblPoDtls.ProductCode) AND (PO_FollowUp2.ProductCode = TblProducts.ProductCode)) LEFT JOIN QryTransactions ON PO_FollowUp2.ProductCode = QryTransactions.Code) LEFT JOIN QryPoProductionTillNow ON PO_FollowUp2.PONumber = QryPoProductionTillNow.LastOfPONumber) LEFT JOIN QryFirstProductionDate2 ON PO_FollowUp2.PONumber = QryFirstProductionDate2.PONumber WHERE (((PO_FollowUp2.Status)<>"تحت الدراسة")) GROUP BY TblPoDtls.Machine, PO_FollowUp2.Zdate, PO_FollowUp2.ID, TblPoDtls.PONumber, TblPoDtls.Mold, PO_FollowUp2.Status, PO_FollowUp2.EndDate, PO_FollowUp2.MoldDescription, TblPoDtls.ActualEnd, TblProducts.ProductName, PO_FollowUp2.DaysRemains, PO_FollowUp2.SumOfAcceptedProduct, PO_FollowUp2.SumOfRejectedProduct, PO_FollowUp2.SumOfTotalProduction, PO_FollowUp2.[24HProduct], PO_FollowUp2.OrderQty, PO_FollowUp2.Remark, PO_FollowUp2.ProductCode, QryPoProductionTillNow.SumIn, QryPoProductionTillNow.SumOut, Nz([Mn],"لم ينتج") HAVING (((PO_FollowUp2.Zdate) Between #1/1/2021# And #12/31/2022#)) ORDER BY TblPoDtls.Machine, PO_FollowUp2.Zdate, PO_FollowUp2.ID; الدرجة الثالثة SELECT Machines_FollowUp.كود_الماكينة, Machines_FollowUp.LastOfPONumber, Machines_FollowUp.LastOfMold, Machines_FollowUp.LastOfMoldDescription, Machines_FollowUp.LastOfProductName, Machines_FollowUp.LastOfS, Nz([LastOfEndDate],[LastOfActualEnd]) AS EndDate, Machines_FollowUp.Remark, Machines_FollowUp.LastOfSumOfAcceptedProduct, Machines_FollowUp.LastOfSumOfRejectedProduct, Machines_FollowUp.LastOfSumOfTotalProduction, Machines_FollowUp.LastOf24HProduct, Machines_FollowUp.LastOfDaysRemains, Machines_FollowUp.LastOfOrderQty, Machines_FollowUp.LastOfRemark, Machines_FollowUp.Expr1, Machines_FollowUp.LastOfProductCode, Machines_FollowUp.Blnc, Machines_FollowUp.LastOfYearAdd, Machines_FollowUp.LastOfYearRel, Machines_FollowUp.LastOfMn, Machines_FollowUp.LastOfSumOfIn, Machines_FollowUp.LastOfSumOfOut, Nz([AvgMonth2020],0) AS AvMonth2020, Nz([MaxMonth2020],0) AS MxMonth2020, Nz([MinMonth2020],0) AS MnMonth2020, Nz([ProducedLastQrt],0) AS ProducedLastQr, Nz([Q1-2020],0) AS Q12020, Nz([Q2-2020],0) AS Q22020, Nz([Q3-2020],0) AS Q32020, Nz([Q4-2020],0) AS Q42020, Nz([Total2020],0) AS All2020, Nz([Q1-2021],0) AS Q12021, Nz([Q2-2021],0) AS Q22021, Nz([Q3-2021],0) AS Q32021, Nz([Q4-2021],0) AS Q42021, Nz([AvgMonth2021]) AS AvMonth2021, Nz([MaxMonth2021],0) AS MxMonth2021, Nz([MinMonth2021],0) AS MnMonth2021, Nz([Total2021],0) AS All2021, Nz([Avgg],0) AS [Av2020-2021], Nz([Minn],0) AS [Min2020-2021], Nz([Maxx],0) AS [Max2020-2021] FROM Machines_FollowUp LEFT JOIN QryProductionNoFilterSummary ON Machines_FollowUp.LastOfProductCode = QryProductionNoFilterSummary.ProductCode; الدرجة الثالثة تعتمد على الثانية والتى بدورها تعتمد على الاولى .. مع العلم الاستعلام الاخير هو الذى اعطى نتائج غريبة وبعد فتحه مرة اخرى اعطى النتائج المتوقعة , ولكن بما أنه يعتمد على أكثر من استعلام قبله لم استطع تحديد ايهم سبب المشكلة . فى انتظار آراء الاساتذة .. دمتم بخير
  18. dim as جملة هدفها الاعلان عن متغير وليس لها دور تنفيذى فى الكود ارفق القاعدة ونشوفلك المشكلة
  19. صدقت حتى باستعمال الاستعلامات للتحكم فى الترتيب ما زالت تعتمد على ترتيب الادخال ID بدلا عن اخر او اول نتيجة .. وكما قلت من السهل التحكم فى الموضوع اذا كان الحقل المشار اليه من النوع الرقمى وحينها يمكن استعمال ماكس ومين كما تفضلت ولكن المشكلة انه احيانا بتحتاج تحضر اول نتيجة او اخر نتيجة من حقل نصى وبالتالى هتضطر تستخدم Last و First .. عامة محلولة فى هذه الحالة شكرا على مرورك
  20. انا اعتمدت على الاستعلام الاول انه يرتب بناء على المعطيات المطلوبة واعتقدت انه هيلغى الترتيب الاساسى المعتمد على ID ,, طيب فى هذه الحالة لو حبيت انه يتجاهل ترتيب الادخال ID ويعتمد الترتيب اللى انا عملته ايه افضل طريقة مع استخدام Last لاحتمال وجود بيانات نصية وليست ارقام او تواريخ ؟
  21. السلام عليكم .. اخوانى الافاضل .. فى المرفق ستجد استعلامين واحد للترتيب والاخر ليحضر اخر قيمة فقط .. الموضوع كان يعمل بكفاءة وفجأة اصبحت النتائج خاطئة يحضر الاستعلام نتيجة واحدة مكررة لجميع السجلات .. حدث ذلك فجأة و بدون اى تعديلات وبدون اى تغييرات فى قاعدة البيانات او الاستعلامات .. لأول مرة تصادفنى هذه المشكلة .. شكرا مقدما ملاحظة ... أنا عارف حل الموضوع وخاصة ان الحقل نوعه رقمى فبالتالى ممكن استبدل Last ب Max وبكده فى الحالة دى المشكلة اتحلت بس اللى انا مهتم بيه ايه السبب فى العطل وخاصة انه يعمل من اسبوع بلا مشاكل Last.accdb
  22. الحقل Auto_ID مكرر فى جدولين مختلفين بنفس الاسم والجدولين مذكورين فى الاستعلام الحالى .. الحل اكتب اسم الجدول او الاستعلام المراد استخدام الحقل منه بالصيغة التالية [Table].[Auto_ID] استبدل كلمة Table باسم الجدول او الاستعلام الخاص بك .. بالتوفيق [Table].[Auto_ID]
  23. ضع هذا الكود خلف الزر وقم بتغييره على حسب اسم الازرار الاخرى .. ببساطة كرر الكود Me.FN = Me.X4.Caption فيه طريقة اخرى بكود واحد لتعمل مع جميع الازرار ولكن لا اتذكرها للاسف :D .. بالتوفيق
×
×
  • اضف...

Important Information