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

كيف أدمج قيم تلات أسطر في سطر واحد في الأكسس؟


نهيلة

الردود الموصى بها

السلام عليكم ورحمة الله أتمنى أن تكونوا بأفضل حال😊

لدي جدولين ,الجدول الأول هو جدول الماكينة يحتوي على : اسم الماكينة ولونها والجدول التاني يحتوي على نوع التوقف والمدة و السبب

قمت بعمل علاقة ترابط بين الجدولين بحيت لكل ماكينة الكتير من التوقفات أي يمكن لكل ماكينة ان تتوقف اكتر من مرة

المشكلة هي : عند عمل إستعلام أحصل على جدول على الشكل التالي:

 

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

 

واريد ان أسألكم هل يمكن للقيم ان تكون على هدا الشكل أقصد الواحدة تحت الاخرى وليس بجانب بعضهم: Capture.PNG.8982bd7a70268d6a353d0547d5011721.PNG

أنتظر ردكم وشكرا🙏

 

 

 

 

رابط هذا التعليق
شارك

منذ ساعه, نهيلة said:

أريد أن أجمع قيم الحقول الموجودة في نوع التوقف و المدة والمشكلة في سطر واحد ليكون على هذا الشكل:

هذه الطريقة قابلة للتطبيق ويمكنك مشاهدة مثال لها فى الموضوع التالى :

اذا اردت حل بدون اكواد يمكنك ترقيم التوقفات فى جدول التوقفات وعمل استعلام به عدد من الاعمدة مثلا توقف1,توقف2,توقف3 وهكذا وتعمل استعلام يجلب التوقف بناء على رقمه فى العمود المناسب بحيث التوقف الاول سيظهر فى العمود توقف1 وهكذا فهمت الفكرة ؟ لكن يعيبها فى حالة عدم وجود توقفات للماكينة سيكون العمود فارغ او يكتب فيه بدون توقف مثلا .. فهمت الفكرة ؟

منذ ساعه, نهيلة said:

واريد ان أسألكم هل يمكن للقيم ان تكون على هدا الشكل أقصد الواحدة تحت الاخرى وليس بجانب بعضهم: 

فى الاستعلامات لا اظن ولكن فى النماذج اعتقد يمكن بكود ما جعل كل عطل فى سطر داخل حقل نصى طويل مثلاً وعامة الفكرة غير عملية حتى اذا تم تطبيقها .

بالتوفيق .

  • Like 1
رابط هذا التعليق
شارك

6 دقائق مضت, Amr Ashraf said:

اذا اردت حل بدون اكواد يمكنك ترقيم التوقفات فى جدول التوقفات وعمل استعلام به عدد من الاعمدة مثلا توقف1,توقف2,توقف3 وهكذا وتعمل استعلام يجلب التوقف بناء على رقمه فى العمود المناسب بحيث التوقف الاول سيظهر فى العمود توقف1 وهكذا فهمت الفكرة ؟ لكن يعيبها فى حالة عدم وجود توقفات للماكينة سيكون العمود فارغ او يكتب فيه بدون توقف مثلا .. فهمت الفكرة ؟

اولا شكرا جزيلا لك سيدي على الرد, لم افهم جيدا هدا الجزء هل يمكن ان تعطيني متال على الاكسس؟

رابط هذا التعليق
شارك

6 دقائق مضت, نهيلة said:

اولا شكرا جزيلا لك سيدي على الرد, لم افهم جيدا هدا الجزء هل يمكن ان تعطيني متال على الاكسس؟

سأعمل لك مثال بسيط لتوضيح الفكرة

  • Like 1
رابط هذا التعليق
شارك

تفضل المثال

عملت جدولين واحد للماكينات والثانى للاعطال , ثم عملت 4 استعلامات لاستخلاص ترتيب الاعطال , فى الاستعلام الاخير  QryResult  مربوط بال4 استعلامات المساعدين و ستجد به النتيجة التى اقصدها .

يمكن الاستغناء عن الاستعلامات باستخدام دالة IIF مثلا كالتالى :

IIF([StoppageSerial]=1,[Reason])

ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟

بالتوفيق .

Downtime - Amr.accdb

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

مشاركة ورأي 

غاب عن بال السائل ان المخرجات لن تظهر كاستعلام وانما كتقرير

لذا التقرير سوف يقوم بالمهمة بكل يسر

Downtime 2.accdb

  • Like 1
رابط هذا التعليق
شارك

2 ساعات مضت, Amr Ashraf said:

ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟

بالتوفيق .

ما المقصودب StoppgeSerial?

2 ساعات مضت, Amr Ashraf said:

ستقوم بعرض سبب العطل ان كان السيريال 1 فى الجدول .. فهمت الفكرة ؟

بالتوفيق .

اشكرك جزيل الشكر سيد أشرف على وقتك وشرحك المفصل لي ,

منذ ساعه, ابوخليل said:

السلام عليكم

مشاركة ورأي 

غاب عن بال السائل ان المخرجات لن تظهر كاستعلام وانما كتقرير

لذا التقرير سوف يقوم بالمهمة بكل يسر

أشكرك سيد أبو خليل على الاضافة ,سوف أنظر الى القاعدتين🙏

رابط هذا التعليق
شارك

مشاركة مع اساتذى العظماء.... واثراء للموضوع 

هذا حل آخر يعتمد على الكود الاتى داخل الموديل

ولاكن لابد من تفعيل المكتبة الاتية 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

  • Like 1
رابط هذا التعليق
شارك

وهذا تعديل للكود السابق داخل الموديول للاستغناء عن استخدام المكتبة التى سبق واشرت اليها فى الرد السابق

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.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information