نهيلة قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 السلام عليكم ورحمة الله أتمنى أن تكونوا بأفضل حال😊 لدي جدولين ,الجدول الأول هو جدول الماكينة يحتوي على : اسم الماكينة ولونها والجدول التاني يحتوي على نوع التوقف والمدة و السبب قمت بعمل علاقة ترابط بين الجدولين بحيت لكل ماكينة الكتير من التوقفات أي يمكن لكل ماكينة ان تتوقف اكتر من مرة المشكلة هي : عند عمل إستعلام أحصل على جدول على الشكل التالي: Machine Couleur Qte Type Arret Durre Probleme machine1 rouge 3000 AO 10 min CH les bac machine1 rouge 3000 AM 20 min ATT outil machine1 rouge 3000 AR 15 min ch les bac PF machine2 bleu 2000 AQ 1h15 min att ch bobine machine2 bleu 2000 AM 19 min db riarymount أريد أن أجمع قيم الحقول الموجودة في نوع التوقف و المدة والمشكلة في سطر واحد ليكون على هذا الشكل: Machine Couleur Qte Type Arret Durre Probleme machine1 rouge 3000 AO,AM,AR 10 min , 20 min ,15 min CH les bac , ATT outil , ch les bac machine2 rouge 2000 AQ,AM 1h15 min ,19 min att ch bobine , db riatymount واريد ان أسألكم هل يمكن للقيم ان تكون على هدا الشكل أقصد الواحدة تحت الاخرى وليس بجانب بعضهم: أنتظر ردكم وشكرا🙏
Amr Ashraf قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 منذ ساعه, نهيلة said: أريد أن أجمع قيم الحقول الموجودة في نوع التوقف و المدة والمشكلة في سطر واحد ليكون على هذا الشكل: هذه الطريقة قابلة للتطبيق ويمكنك مشاهدة مثال لها فى الموضوع التالى : اذا اردت حل بدون اكواد يمكنك ترقيم التوقفات فى جدول التوقفات وعمل استعلام به عدد من الاعمدة مثلا توقف1,توقف2,توقف3 وهكذا وتعمل استعلام يجلب التوقف بناء على رقمه فى العمود المناسب بحيث التوقف الاول سيظهر فى العمود توقف1 وهكذا فهمت الفكرة ؟ لكن يعيبها فى حالة عدم وجود توقفات للماكينة سيكون العمود فارغ او يكتب فيه بدون توقف مثلا .. فهمت الفكرة ؟ منذ ساعه, نهيلة said: واريد ان أسألكم هل يمكن للقيم ان تكون على هدا الشكل أقصد الواحدة تحت الاخرى وليس بجانب بعضهم: فى الاستعلامات لا اظن ولكن فى النماذج اعتقد يمكن بكود ما جعل كل عطل فى سطر داخل حقل نصى طويل مثلاً وعامة الفكرة غير عملية حتى اذا تم تطبيقها . بالتوفيق . 1
نهيلة قام بنشر فبراير 11, 2022 الكاتب قام بنشر فبراير 11, 2022 6 دقائق مضت, Amr Ashraf said: اذا اردت حل بدون اكواد يمكنك ترقيم التوقفات فى جدول التوقفات وعمل استعلام به عدد من الاعمدة مثلا توقف1,توقف2,توقف3 وهكذا وتعمل استعلام يجلب التوقف بناء على رقمه فى العمود المناسب بحيث التوقف الاول سيظهر فى العمود توقف1 وهكذا فهمت الفكرة ؟ لكن يعيبها فى حالة عدم وجود توقفات للماكينة سيكون العمود فارغ او يكتب فيه بدون توقف مثلا .. فهمت الفكرة ؟ اولا شكرا جزيلا لك سيدي على الرد, لم افهم جيدا هدا الجزء هل يمكن ان تعطيني متال على الاكسس؟
Amr Ashraf قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 6 دقائق مضت, نهيلة said: اولا شكرا جزيلا لك سيدي على الرد, لم افهم جيدا هدا الجزء هل يمكن ان تعطيني متال على الاكسس؟ سأعمل لك مثال بسيط لتوضيح الفكرة 1
نهيلة قام بنشر فبراير 11, 2022 الكاتب قام بنشر فبراير 11, 2022 11 دقائق مضت, Amr Ashraf said: سأعمل لك مثال بسيط لتوضيح الفكرة جزاك الله خيرا🌹
Amr Ashraf قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 تفضل المثال عملت جدولين واحد للماكينات والثانى للاعطال , ثم عملت 4 استعلامات لاستخلاص ترتيب الاعطال , فى الاستعلام الاخير QryResult مربوط بال4 استعلامات المساعدين و ستجد به النتيجة التى اقصدها . يمكن الاستغناء عن الاستعلامات باستخدام دالة IIF مثلا كالتالى : IIF([StoppageSerial]=1,[Reason]) ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟ بالتوفيق . Downtime - Amr.accdb 1
ابوخليل قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 السلام عليكم مشاركة ورأي غاب عن بال السائل ان المخرجات لن تظهر كاستعلام وانما كتقرير لذا التقرير سوف يقوم بالمهمة بكل يسر Downtime 2.accdb 1
نهيلة قام بنشر فبراير 11, 2022 الكاتب قام بنشر فبراير 11, 2022 2 ساعات مضت, Amr Ashraf said: ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟ بالتوفيق . ما المقصودب StoppgeSerial? 2 ساعات مضت, Amr Ashraf said: ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟ بالتوفيق . اشكرك جزيل الشكر سيد أشرف على وقتك وشرحك المفصل لي , منذ ساعه, ابوخليل said: السلام عليكم مشاركة ورأي غاب عن بال السائل ان المخرجات لن تظهر كاستعلام وانما كتقرير لذا التقرير سوف يقوم بالمهمة بكل يسر أشكرك سيد أبو خليل على الاضافة ,سوف أنظر الى القاعدتين🙏
Amr Ashraf قام بنشر فبراير 11, 2022 قام بنشر فبراير 11, 2022 19 دقائق مضت, نهيلة said: ما المقصودب StoppgeSerial? حقل فى الجدول به رقم العطل
ابو جودي قام بنشر فبراير 12, 2022 قام بنشر فبراير 12, 2022 مشاركة مع اساتذى العظماء.... واثراء للموضوع هذا حل آخر يعتمد على الكود الاتى داخل الموديل ولاكن لابد من تفعيل المكتبة الاتية Microsoft ActiveX Data objects 2.1 library Function CollectFields(pstrSQL As String, Optional pstrDelim As String = ", ") As String Dim rs As New ADODB.Recordset rs.Open pstrSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic Dim strConcat As String With rs If Not .EOF Then .MoveFirst Do While Not .EOF strConcat = strConcat & .Fields(0) & pstrDelim .MoveNext Loop End If .Close End With Set rs = Nothing If Len(strConcat) > 0 Then strConcat = Left(strConcat, Len(strConcat) - Len(pstrDelim)): CollectFields = strConcat End Function بعد ذلك نقوم بعمل استعلام تجميعى ومصدر الاستعلام الجدول TblDowntime لانه به كل البيانات ولاننا نريد تجميع البيانات التى تخص كل Machines سوف نقوم بادارج الحقل الدال على ذلك وهو Machine لانه الذى يمثل العامل المشترك الذى يتم تجميع البيانات بناء عليه والان نريد تحميع كل البيانات التى تخص الـمدة Duration من كل السجلات نضع الجملة الاتية والتى نستدعى بها الكود من داخل الموديول لكل حقل نريد تجميع بياناته CollectFields("SELECT x1 FROM x2 WHERE x2='" & [x3] & "'" & " ORDER BY x3") x1--- اسم الحقل الذى نريد تجميع بياناته x2--- اسم الجدول او الاستعلام والذى هو مصدر البيانات x3--- اسم الحقل الذى يمثل العامل المشترك الذى يتم تجميع البيانات بناء عليه Downtime (2).accdb 1
ابو جودي قام بنشر فبراير 12, 2022 قام بنشر فبراير 12, 2022 وهذا تعديل للكود السابق داخل الموديول للاستغناء عن استخدام المكتبة التى سبق واشرت اليها فى الرد السابق Function CollectFields(pstrSQL As String, Optional pstrDelim As String = ", ") As String Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset(pstrSQL) Dim strConcat As String With rs If Not .EOF Then .MoveFirst Do While Not .EOF strConcat = strConcat & .Fields(0) & pstrDelim .MoveNext Loop End If .Close End With Set rs = Nothing Set db = Nothing If Len(strConcat) > 0 Then strConcat = Left(strConcat, Len(strConcat) - Len(pstrDelim)): CollectFields = strConcat End Function Downtime (3).accdb
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.