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

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

قام بنشر

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

تم عمل قاعدة بيانات للمعاشات وهى تعتمد على مفتاح لا يتكرر وحيد وقمت بالترتيب على اساسه الا انه بعد عدة اشهر طلب منى المدير ان اعطى ترقيم آخر ليفوم هو بعمل بطاقات لاصجاب المعاشات ابتداء من رقم 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-يتم خذف التقرير المؤقت

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

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

الاخ الكريم

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

قام بنشر (معدل)

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

حدث لبس فى استخدام الاسم 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

تم تعديل بواسطه السيد عبد العال

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