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

نقل ما بداخل حقل الترقيم التسلسلى بالتقرير لجدول


sohyla

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

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

تم عمل قاعدة بيانات للمعاشات وهى تعتمد على مفتاح لا يتكرر وحيد وقمت بالترتيب على اساسه الا انه بعد عدة اشهر طلب منى المدير ان اعطى ترقيم آخر ليفوم هو بعمل بطاقات لاصجاب المعاشات ابتداء من رقم 1 ثم يغلفها ولم اجد الا عمل ذلك بالتقرير وبعد مدة حدثت مشاكل وكان لابد منها وهى عند حذف احد اصحاب المعاشات نتيجة وفاة مثلاَ وهو امر لا مفر منه فإن ترتيب البطاقات او ترتيب الاسماء يتغير .. هل توجد طريقة لتخرين ما بداخل الحقل الموجود بالتقرير فى حقل ارجوكم الرد حتى لا تتفاقم المشكلة وشكراَ

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

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Dim strSQL As String
strSQL = "UPDATE Persons SET Persons.NewNumber =" & RepNo
strSQL = strSQL & " WHERE (Persons.PrName= '" & PrName & "')"
DoCmd.RunSQL strSQL
End Sub

أولا :الافتراضات

1-نفترض أن بيانات الأشخاص مسجلة فى جدول اسمه Persons

وان هذا الجدول يحتوى على حقل ترقيم تلقائى كان يستخدم قديما لرقم الشخص

يوجدحقل لأاسم الشخص الثلاثى أو الرباعى واسمه PrName

واننا نريد أضاافة حقل جديد اسمه NewNumber من النوع Long Integer ونريد أن نسجل فيه ألرقم من التقرير

2-نفترض أن لدلينا تقرير سنصطلح على تسميته التقرير الأصلى

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

ولكى يتم عمل رقم متسلل فقد تم وضع مربع نص وتسميته RepNo وتم وضع معادلة فى مصدر عنصر التحكم =1 وضبط خاصية running sum لتكون OverAll

ثانيا : المطلوب:-

هو نقل الأرقام التى تظهر فى مربع النص RepNo عند فتح التقرير إلى الحقل NewNumber بجدول Persons اعتمادا على الاسم الثلاثى أو الرباعى الموجود فى الحقل PrName ..

ثالثا : الفكرة :-

]استغلال حدث OnPrint والذى يحدث لكل مقاطع التقرير ويهمنا مقصع Detail والذى يتكرر لكل سجل من سجلات التقرير واثناءه نحصل على الرقم الذى تم احتسابه لمربع النصRepNo وكذلك اسم الشخص فى السجل الحالى

وبناء عليه يتم كتابة جملة sql استحداث NewNumber قيمة المقابل لاسم الشخص

رابعا: الخطوات :-1

- يتم عمل نسخة احطاياطية من قاعدة البيانات وهى التى يتم فيها هذا العمل لحين نجاحه

2-يتم التحقق من الفتراضات السابقة والتعدبل المطلوب فى جدول persons

3 - يتم عمل نسخة مؤقتة من التقرير الأصلى

4- يتم أضافة هذا الكود السابق فى حدث OnPrint لمقطع Detail

5-نفتح التقرير فى وضع PreView وينتج عنه استدعاء اللإجراء لكل الحقول

6-نفتح جدول persons ونتأكد من القيم الجديدة

7- يتم تعديل التقرير الأصلى بجعل الرقم المتسللسل يرتبط بحقل NewNuber

8-يتم خذف التقرير المؤقت

و ..... معذرة على الإطالة والإسهاب

تم تعديل بواسطه السيد عبد العال
رابط هذا التعليق
شارك

الاخ الكريم

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

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

بسم الله الرحمن الرحيم

الاخ الفاضل الاستاذ / السيد

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

لقد نفذت ما ذكرته حضرنكم بالضبط ولكن .... برجاء الاطلاع الى الملف المرفق

http://www.geocities.com/sohyla2001/db.zip

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

فعلا الخطوات صحيحة

حدث لبس فى استخدام الاسم Name فهمها البرنامج على أنها اسم التقرير وولد جملة SQL التالية:

UPDATE الاعضاء SET الاعضاء.aa =1 WHERE (الاعضاء.name= 'pp')
بينما كان المطلوب هو البحث بالاسم الذى الذى فى الحقل Name للسجل الحالى وينتج عنها جملة sql التالية:
UPDATE الاعضاء SET الاعضاء.aa =1 WHERE (الاعضاء.name= 'ابراهيم محمود')
قد تم تعديل كود حدث Detail_Print وكتب بطريقة أكثر تحديدا لإزالة اللبس ليصبح كالتالى:
Private Sub تفصيل_Print(Cancel As Integer, PrintCount As Integer)
Dim strSQL As String
strSQL = "UPDATE [الاعضاء]  SET [الاعضاء]![aa] =" & Me![repno]
strSQL = strSQL & "  WHERE ([الاعضاء]![name]= '" & Me![name] & "')"
'MsgBox strSQL
DoCmd.RunSQL strSQL
End Sub

وهو الان يعمل بطريقة صحيحية

- تم إضافة نموذج جديد يقوم بحساب الكود عند أدراج سجلات جديدة يحسب أكبر قيمة فى المدينة ويضيف عليه1

NumFromRprt.zip

تم تعديل بواسطه السيد عبد العال
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information