الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة التنسيق بالتقرير

بدأه kaser906 في 3 سبتمبر 2011 · 17 رد · 857 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مساء الخير للجميع

وكل عام وأنتم بخير

في المرفق مثالين

الأول يوجد به تقرير الذي اعاني فيه من المشكلة وهي الفرز في

حقلين بالنموذج الرئيسي والفرعي

في النموذج الرئيسي يوجد كود خاص بتنسيق التقرير بحيث لو كان عدد السجلات مثلا 7 او اي رقم اقل من 29

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

المشكلة التي عانيت منها حتى الأن هي في فرز السجلات حسب رقم PcDigit

اختيار فرز تصاعدي من الاصغر الى الاكبر يقوم بأدراج السجلات في اسفل التفصيل ويجعل

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

كذلك بالنسبة للنموذج الفرعي حقل Moditoha عندما اجعل التنسيق من الاصغر الى الاكبر يدرج السجلات في اسفل سطور التفصيل

ايضا يوجد طلب بالنسبه لكود تنسيق التفصيل قمت بالتعديل عليه بحيث لوكان عدد السجلات اكبر من 29 يقوم بملأ كامل الصفحه الى الرقم 51

حاولت اطبق الكود على النموذج الفرعي بحيث لو تجاوز عدد السجلات به 11 يقوم بأكمال كامل الصفحه للتفصيل في النموذج الرءيسي الى الرقم 51

المرفق الثاني هو مثال من هذا المنتدى الرائع ويقوم بفرز السجلات من الاصغر الى الاكبر دون ان تحدث به المشكلة التي حدثت معي

empr.rar

Test.rar

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#2

الأمر غريب حتى لم يفكر احد الاعضاء بتحميل اي من الملفين لمعاينته

لكن الله يجيب اللي يرد على الموضوع

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#3

بالنسبة للتقرير الرئيسى

اجعل عدد سجلات الجدول temp واحد وخمسون سجلا بلا من 29

ثم ضع هذا الكود فى التقرير بدلا من الكود الموجود لديك

n = 29 - Nz(DCount("*", "TbDawam"))
If n >= 0 Then
    Me.RecordSource = "SELECT Serial,29 as id , fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial between " & Nz(DCount("*", "TbDawam")) + 1 & " and 29 UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
 Else
    Me.RecordSource = "SELECT Serial, 51 as id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial >" & Nz(DCount("*", "TbDawam")) & " UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
End If

بالنسبة للتقرير الفرعى

الجدول REPORTHOLLY1 الخاص به غير موجود

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 8 سبتمبر 2011 في 03:33

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4
Abo_Yossof كتب:

بالنسبة للتقرير الرئيسى

اجعل عدد سجلات الجدول temp واحد وخمسون سجلا بلا من 29

ثم ضع هذا الكود فى التقرير بدلا من الكود الموجود لديك

n = 29 - Nz(DCount("*", "TbDawam"))
If n >= 0 Then
    Me.RecordSource = "SELECT Serial,29 as id , fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial between " & Nz(DCount("*", "TbDawam")) + 1 & " and 29 UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
 Else
    Me.RecordSource = "SELECT Serial, 51 as id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial >" & Nz(DCount("*", "TbDawam")) & " UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
End If

بالنسبة للتقرير الفرعى

الجدول REPORTHOLLY1 الخاص به غير موجود

الله يعطيك العافية اخوي ابو يوسف

كنت متأكد ما حد راح يرد على الموضوع غيرك

بالنسبة للكود وضعته وأتى بالنتيجه المطلوبه بالنسبة للفرز

لكن وجدت ان الكود لايكمل السجلات الى واحد وخمسون

في حال كان عدد السجلات في الجدول TbDawam يساوي او اكبر من 29 سجل

ويبدأ بأعطاء سجل فارغ في تفصيل التقرير ويكمل بالسجل الذي بعده

بالنسبة للتقرير الفرعي مصدر السجلات هو الجدول TbDawam2

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

تقبل شكري وتحياتي

empr1.rar

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#5

الخطأ يحدث فقط اذا كان العدد 29 لذا تم تعديل الكود

DoCmd.Maximize
Dim N As Integer
If DCount("*", "TbDawam2") > 11 Then     'عدد سجلات التقرير الفرعى أكثر من 11
N = -1
Else                                      'عدد سجلات التقرير الفرعى أقل من 11
N = 29 - DCount("*", "TbDawam")
End If

Select Case N
Case 0
    Me.RecordSource = "SELECT id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
Case Is > 0
    Me.RecordSource = "SELECT Serial, 29 as id , fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial between " & DCount("*", "TbDawam") + 1 & " and 29 UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
 Case Is < 0
    Me.RecordSource = "SELECT Serial, 51 as id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM Temp where temp.Serial >" & DCount("*", "TbDawam") & " UNION SELECT 0 , id, fld, nuumm, singk, singd, timq,tims, nam, num, PcDigit FROM TbDawam;"
End Select

و هذا هو كود النموذج الفرعى

Dim N As Integer
N = 11 - DCount("*", "TbDawam2")
If N >= 0 Then
    Me.RecordSource = "SELECT Serial,11  AS Moditoha, id, fld, Type, startDat, EndDat, timq,tims, nam, num, singd, singk, PcDigit FROM Temp1 where temp1.Serial >" & DCount("*", "TbDawam2") & " UNION SELECT 0, Moditoha, id, fld, Type, startDat, EndDat, timq,tims, nam, num, singd, singk, PcDigit FROM TbDawam2;"
End If

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#6

الله يعطيك الف عافيه اخوي ابو يوسف وعساك على القوة ان شاء الله

هذا هو المطلوب

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#7

عفوا اخي ابو يوسف

عندما قمت بوضع ارقام عشوائية في الحقل PcDigit

عادت مشكلة الفرز للظهور مرة اخرى وبدأ يدرج الحقول ابتداء من الأسفل

وكذلك في النموذج الفرعي حقل Moditoha

أسف على ازعاجك اخي

تقبل تحياتي

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#8

هل غيرت طريقة الفرز فى التقرير ؟

ما تم يعتمد على انك تقوم بالفرز على أساس حقل ID

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#9

نعم اخي ابو يوسف حاولت اني اجعل الفرز عن طريق حقل PcDigit

فظهرت المشكلة

اما بالنسبة للتقرير الفرعي حتى عن طريق الفرز بحقل id ما زالت به مشكله

ويدرج السجلات بالاسفل

ظهرت هناك مشكلة اخرى

انظر الصوره اخي ابو يوسف

كيف يتم يتم تسجيل عدد السجلات في حقل رقم id

وعندما يصل رقم id الى 29

751324524.png

اعتذر على ازعاجك وتقبل تحياتي

تم تعديل هذه المشاركة بواسطة kaser906 في 9 سبتمبر 2011 في 11:20

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#10

اذهب الى عمود PcDigit فى الجدول temp

ضع به قيمة أكبر من أعلى قيمة للحقل PcDigit لديك

بالنسبة للتقرير الفرعى لا اجد به أى مشكلة

يمكنك ان تضع المرفق به المشكلة

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#11

بالنسبة للفرز تقلبت عليها عن طريق الاستعلام الذي يلحق السجلات بالجدولTbDawam

وجعلت الفرز تصاعديا ثم يدرج اصغر رقم pcDigit امام اول id

ولكن ظهرت مشكله اخي ابو يوسف عندما قمت باظهار رقم id في التقرير وجدت انه يأخذ قيمه من الكود عندما يصل 29

وحتى لو لم يكن الرقم 29 وجدت ان حقل id يأخذ قيمه مكرره في السجلات الفارقه

انظر الصوره

812565776.png

ما عليش اخوي اتعبتك معاي

ان شاء الله في ميزان حسناتك

تم تعديل هذه المشاركة بواسطة kaser906 في 10 سبتمبر 2011 في 05:49

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#12

متابعه

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#13

الرقم المكرر تم وضعه حتى يتم الترتيب بشكل صحيح

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#14

لكن لاحظت اخي ابو يوسف كيف يكون ترتيب التقرير

عندما يصل رقم id بالجدول الى 29 أو رقم 51 وهذان الرقمان

موجودان بالكود يبدأ الترتيب والتنسيق بالتقرير يتغير ويتبعثر

كما هو موجود بالصوره

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#15

هناك شىء ما خطأ فى الصورة المرفقة

لان الرقم 29 يتم وضعه عندما يكون عدد السجلات أقل من 29 و هو أكبر من أى رقم فى حقل ال id حسب المرفق الذى وضعته أنت

و يتم رقم 51 اذا كان العدد أكثر من 29

و بالتالى يكون الترتيب مضبوط

أما فى الصورة فهناك قيم أكبر من 29 على الرغم من أن العدد أقل من 29

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#16
Abo_Yossof كتب:

هناك شىء ما خطأ فى الصورة المرفقة

لان الرقم 29 يتم وضعه عندما يكون عدد السجلات أقل من 29 و هو أكبر من أى رقم فى حقل ال id حسب المرفق الذى وضعته أنت

و يتم رقم 51 اذا كان العدد أكثر من 29

و بالتالى يكون الترتيب مضبوط

أما فى الصورة فهناك قيم أكبر من 29 على الرغم من أن العدد أقل من 29

نعم أخي ابو يوسف

الجدول TbDawam يتم الحاق السجلات به عن طريق استعلام وقبل تنفيذ الاستعلام يتم مسح محتويات الجدول عن طريق الأمر

DoCmd.RunSQL "DELETE TbDawam.* FROM TbDawam;"

ومن ثم يتم تنفيذ الاستعلام

وكما تعلم أخي ابو يوسف ان حقل id هو حقل ترقيم تلقائي

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

الى ان يتم ضغط قاعدة البيانات واصلاحها سوف يبدأ الترقيم من جديد

بالنسبة للكود الذي صممته هو يعمل بشكل ممتاز فقط عندما يكون عدد السجلات بالجدول 29 الى 51

تبدأ المشكله بالفرز ويبدأ في تغير تنسيق التقرير

وانظر ايضاً التقرير الفرعي عندما يكون بالجدول رقم id = 11 تبدأ نفس المشكلة

ملاحظة أخي ابو يوسف هناك احتمال ان يكون عدد السجلات بالجدول TbDawam الى عدد غير معروف اي انه متغير ممكن يكون 10 وممكن ان يكون فوق المئة

كذلك بالنسبة للجدول TbDawam 2

وهذا هو المرفق

empr2.rar

تم تعديل هذه المشاركة بواسطة kaser906 في 10 سبتمبر 2011 في 22:14

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

#17

أخى الكريم

لو انك وضحت ذلك من البدابة لكن أفضل

عموما تم التعديل بالمرفق

empr2.rar

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#18

الله يعطيك الف عافية اخي ابو يوسف

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

تقبل تحياتي

إلهي انت رجائي في كل شدة وأنت لي في كل أمر نزل بي ثقة وعدة
كم من هم يضعف فيه الفؤاد وتقل فيه الحيلة ويشمت به العدو ويخذل فيه الصديق
انزلته بك وشكوته إليك رغبة مني إليك عما سواك فكشفته وفرجته فأنت ولي كل نعمة ومنتهى كل رغبة
يامن اسمه دواء وذكره شفاء وطاعته غنى ارحم من رأس ماله الرجاء وسلاحه البكاء
ياسابق النعم يادافع النغم يا نور المستوحشين في الظلم  يا عالماً لايعلم صل على محمد وآله وافعل بي ما انت اهله

مواضيع مشابهة