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

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

قام بنشر

السلام عليكم احبتي ورحمة الله وبركاته

في المرفق جدول وتقرير

الجدول يشتمل على رقم معرف وثلاث حقول أخرى رقمية مختلفة

التقرير يشتمل على حقل المعرف وحقل للقيمة

المطلوب اظهار قيم الحقول في التقرير بأسهل طريقة ممكنة

لا اريد استخدام استعلام التوحيد

لان الحقول كثيرة جدا في التقرير

 

Db3.mdb

قام بنشر

وعليكم السلام اخوي ابوخليل 🙂

 

اذا كنت تستخدم جدول واحد فقط ، فالاسهل ان تجمع هذه الحقول في الاستعلام مصدر بيانات التقرير ،

ممكن ان تجمعهم يدويا (اذا كان عدد الحقول قليل) ، وممكن جمعهم برمجيا اذا كانوا كثير 🙂

 

هذا الموضوع فيه الطريقتين: كيفية جمع قيمه اكثر من حقل ب استعلام - قسم الأكسيس Access - أوفيسنا (officena.net)

 

جعفر

قام بنشر

شكرا لمرورك اخي جعفر

انا لا اريد الجمع .. اريد ان اعرض القيم تحت بعض كل قيمة في سجل ..  داخل الخلية نفسها

فلو انني عرضتها كما هي في الجدول لاحتجت الى 8 حقول (اعمدة) بجانب بعض

فالفكرة ان جميع الأعمدة نريد ان يتم عرضها من خلال خلية واحدة

قام بنشر

اعتذر منك اخوي ابوخليل ، فهمي بطيء هذه الايام 😞

يا ريت بمثال في الاكسل او صورة علشان افهم 🙂

 

جعفر

  • أفضل إجابة
قام بنشر

هممم

انت تنظر لها: تريد الحقل اللي فيه المبلغ فقط ، مثلا السجل الاول = 6093.69 ،

وانا انظر لها: نجمع الحقول (وليس نعرضهم جنب بعض) ،  مثلا السجل الاول = 6093.69 +0 +0 = 6093.69 ،

والنتيجة ، الطريقتين تعطي نفس النتيجة 🙂

 

هل كلامي صحيح ؟

  • Thanks 1
قام بنشر

انا اريد العرض اليومي بالمدخلات

اريدها بتقرير بسيط  باقل عدد من الحقول

 

آه يبدو اني فهمت وجهة نظرك

صح .. 

ما شاء الله عليك 

قام بنشر

تفضل 🙂
 

في الاستعلام ، ننادي الدالة Add_Fields ، ونرسل لها رقم المعرف id :

image.png.47171753b43a2b9ce6052327babbb832.png

.
 

وهذه هي دالة جمع بيانات حقول السجل الواحد :

Function Add_Fields(id As Long) As Double

    
    Dim rst As DAO.Recordset
    Dim fld As Field
    Dim T As Double
    
    'get this Name Record from the table
    Set rst = CurrentDb.OpenRecordset("Select * From [tblAmlyat] Where [id]= " & id)
    
    T = 0   'initial Total
    
    'loop through the fields
    For Each fld In rst.Fields
    
        'Debug.Print fld.Name & vbTab & fld.Value
        
        'skip the Full_Name field name
        If fld.Name <> "id" Then
            'add the field values
            T = T + fld.Value
        End If
        
    Next fld
    
    'now send this Total to the query
    Add_Fields = T
    
    'clear memory
    rst.Close: Set rst = Nothing
    
End Function

 

جعفر

1382.Db3.mdb.zip

  • Like 4
قام بنشر (معدل)
9 دقائق مضت, jjafferr said:

 

من الأفضل لكل شخص مبتدئ مثلي ان يقوم بتخزين جميع ما تكتبه من حلول وإجابات في ردودك :wub:

لكي تكون مرجع أساسي في برمجة الأكسس :yes:

تم تعديل بواسطه SEMO.Pa3x
  • Like 1
قام بنشر
منذ ساعه, SEMO.Pa3x said:

من الأفضل لكل شخص مبتدئ مثلي

بسم الله عليك يا دكتور حسنين ، لا يكون صاير عندك انفصام في الشخصية 🙂

انتم النهر ، وانما انا شربة ماء فقط 🙂

 

جعفر

  • Like 2
  • Thanks 1
قام بنشر

حقيقة الحل جميل وهو اسهل طريق لتطبيق الفكرة

ولكن واجهت مشكلة منطقية وهي ان بعض السجلات تحتوي على اكثر من قيمة مثلا :

عمود المشتريات وبجانبه عمود المدفوعات فعند تسجيل شراء جديد يتم رصد القيمة الكلية في حقل المشتريات  واحيانا يتم دفع بعض القيمة فترصد في حقل المدفوعات

وحسب فكرة التجميع سوف يتم جمع قيمة الشراء الاساسية مع المدفوع وهذا خطأ

للعلم ان التقرير يعرض قائمة كاملة بجميع البنود : المشتريات/المصروفات/المدفوع كتسديد آجل/المبيعات / المرتجعات / وبنود اخرى تخص هذا المتجر

فلو اضطررت لتطبق هذا الحل فانا مضطر ايضا لتقسيم التقرير

وكما ذكرت في مشاركتي السابقة ان التقرير عبارة عن كشف مفصل للحركات اليومية

قام بنشر
3 ساعات مضت, ابوخليل said:

ولكن واجهت مشكلة منطقية

ما عليه ، محتاج مثال لوسمحت بالبيانات اللي تتكلم عنها ، وبالطريقة اللي تريد التقرير 🙂

 

جعفر

قام بنشر
5 ساعات مضت, ابوخليل said:

عمود المشتريات وبجانبه عمود المدفوعات فعند تسجيل شراء جديد يتم رصد القيمة الكلية في حقل المشتريات  واحيانا يتم دفع بعض القيمة فترصد في حقل المدفوعات

 

5 ساعات مضت, ابوخليل said:

وحسب فكرة التجميع سوف يتم جمع قيمة الشراء الاساسية مع المدفوع وهذا خطأ

حسب فهمي ان كان التجميع رأسيا علي مستوي كامل العمود فلن يحدث مشكلة فكل عمود يجمع بيانات موحدة فعمود الشراء سيكون به قيم المشتريات فحسب وهكذا - اللهم الا ان كان التجميع افقيا علي مستوي الصف ففي هذه الحالة كما ذكر أستاذنا خالد يمكن التعديل علي شرط اسم الحقل لاستبعاد او حتي خصم قيم حقول معينة وأعتقد أن هذا لن يكون صعبا عليكم.

مثال:

' a = مشتريات
' b = مدفوعات
' c = مصروفات
' d = مرتجع مشتريات
' e = مبيعات
' f = مرتجع مبيعات

	If fld.Name <> "id" Then
            'add the field values
            T =IIf(fld.Name= a, (T + fld.Value),IIf(fld.Name=b,(T - fld.Value),IIf(fld.Name=C,(T - fld.Value), _
			IIf(fld.Name=d,(T + fld.Value),IIf(fld.Name=e,(T + fld.Value),(T - fld.Value))))))
        End If

ولا ازعم ان قد فهمت المطلوب بشكل كافي ولكن محاولة من طويلب علم بمدرستكم لتطبيق ما تعلم منكم من قبل (فهذه بضاعتكم ردت اليكم) :yes:

وجزاكم الله خيرا 

قام بنشر

شكرا لكم جميعا احبتي كل واحد باسمه

اعتقد ان المسألة لا حل لها سوى تجاوز احد الاعمدة ، واخراجه في تقرير يخصه

المشكلة هي انها في سجل واحد والمعرف واحد ، والتقرير يعرض حسب المعرف

هنا كما تشاهدون في الصورة  المشتريات والمدفوعات ضمن سجل واحد ، وبما ان المدفوعات اشمل حيث يدخل ضمنها أشياء تدفع لأغراض شتى فسوف يتم اعتماده 

فالحل الذي اعتمدته هو ان افرد للمشتريات تقرير يخصها

Untitled2.jpg

  • Like 2
قام بنشر
4 ساعات مضت, ابوخليل said:

لا حل لها سوى تجاوز احد الاعمدة ،

....

فالحل الذي اعتمدته هو ان افرد للمشتريات تقرير يخصها

اعتقد الحل هو بإضافة عمود خاص للمشتريات في الاستعلام ، ولا يدخل هذا العمود في الجمع ، انظر ملاحظة اخونا خالد اعلاه ، واضف اسم العمود في السطر المُشار اليه :

If fld.Name <> "id" or fld.Name <> "المشتريات" Then

هكذا يصبح عندك 4 اعمدة في الاستعلام/التقرير:

المعرف ، المشتريات ، مجموع بقية الحقول ، المجموع العام (=المشتريات + مجموع بقية الحقول) 🙂

 

جعفر

  • Like 1
قام بنشر

شكرا لكم اساتذتي الكرام  الاستاذ جعفر والاستاذخالد والاستاذ محمدالحلواني

انا اعتمدت طريقة الاستاذ جعفر  والتي اشرت اليها بأفضل اجابة واستثنيت حقل المشتريات من الجمع ، ولكني اظهرته بجانب حقل المبلغ 

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

  • Like 3

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