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

استبدال كود حذف سجل بكود تفريغ للحقول

بدأه الازدي في 23 فبراير 2012 · 12 رد · 3,730 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

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

المشكلة اني اغفلت هذه النقطه انه عند حذف سجل انه من الطبيعي ان الحقل مخصص سينحذف

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

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

حل آخر وهو استبدال امر حذف السجلات المحددة بالشيك بوكس بأمر تفريغ الحقول ماعدا حقل المخصص لكن قلة معرفتي بعمل هذه الخصلتين لم تمكنني من استكمال العمل :blink:

العمل مرفق

بصيغتي acdeb و mdb و شكرا :)

file.zip

تم تعديل هذه المشاركة بواسطة نجوم الكون في 23 فبراير 2012 في 02:36

#2

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

DoCmd.SetWarnings off
  If Me.ysno.Value = True Then
  DoCmd.RunSQL "UPDATE [ميزانية] SET [مبلغ] = null"
  DoCmd.RunSQL "UPDATE [ميزانية] SET [مستندات] = null"
  DoCmd.RunSQL "UPDATE [ميزانية] SET [بند] = null"
  DoCmd.RunSQL "UPDATE [ميزانية] SET [تفاصيل] = null"
  DoCmd.RunSQL "UPDATE [ميزانية] SET [تاريخ] = null"
  DoCmd.RunSQL "UPDATE ميزانيةSET ميزانية.ysno = false"

  Else
  Me.ysno.Value = False
  Stop
  End If

End Sub

لانه يمسح الحقول المحدة و غير المحددة حيث ان ysno هو مربع checkbox

تم تعديل هذه المشاركة بواسطة نجوم الكون في 23 فبراير 2012 في 18:50

#3

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

أخي أو أختي الكرام

قم بعمل استعلام جديد من نوع "استعلام تحديث" Update واختر الحقول المراد تحديثها أي تغييرها

الآن قم بإضافة الحقل ysno واذهب الى المعايير Criteria واكتب القيمة True وأما في باقي الحقول فاكتب القيمة Null في مكان التحديث الجديد "Update To" كما هو مبين في الصورة

يبقى الآن معلومة صغيرة ولكنها مهمة للغاية يجب أن تحدث الحقل YsNo الى False وذلك بكتابة كلمة False في مكان التحديث الجديد

احفظ هذا الاستعلام وقم بتشغيله (طبعاً هو لن يقوم بتحديث إلا البيانات التي قمت بالتأشير عليها في حقل الخيار YsNo )

بعد التأكد من أن الاستعلام يتم بشكل صحيح يمكنك الذهاب إلى تصميم الاستعلام مرة أخرى ثم في شاشة العرض View اختر SQL

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

أرجو أن أكون قد وفقت بالشرح

وسلامي لك وللجميع

post-212280-037004600 1330017553_thumb.j

post-212280-082496900 1330017568_thumb.j

المرفقات
g1.jpgg2.jpg

تم تعديل هذه المشاركة بواسطة إياد بيك في 23 فبراير 2012 في 20:19

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#4
إياد بيك كتب:

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

أخي أو أختي الكرام

قم بعمل استعلام جديد من نوع "استعلام تحديث" Update واختر الحقول المراد تحديثها أي تغييرها

الآن قم بإضافة الحقل ysno واذهب الى المعايير Criteria واكتب القيمة True وأما في باقي الحقول فاكتب القيمة Null في مكان التحديث الجديد "Update To" كما هو مبين في الصورة

يبقى الآن معلومة صغيرة ولكنها مهمة للغاية يجب أن تحدث الحقل YsNo الى False وذلك بكتابة كلمة False في مكان التحديث الجديد

احفظ هذا الاستعلام وقم بتشغيله (طبعاً هو لن يقوم بتحديث إلا البيانات التي قمت بالتأشير عليها في حقل الخيار YsNo )

بعد التأكد من أن الاستعلام يتم بشكل صحيح يمكنك الذهاب إلى تصميم الاستعلام مرة أخرى ثم في شاشة العرض View اختر SQL

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

أرجو أن أكون قد وفقت بالشرح

وسلامي لك وللجميع

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

اخيكم نجوم الكون

#5

من وجهة نظرى الأفضل هو فصل المخصص فى جدول اخر

ستجد بالمرفق تطبيق سريع لذلك

تم تقسيم جدول الميزانية الى جدولين MEZANIA و MOKHASAS

و تم اضافة نموذج SARD للتطبيق

بالتوفيق

1ميزانية.rar

مدونتى:-

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

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

#6

ممتاز جدا اخي اياد بيك وفقك الله لمايحبه و يرضاه

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

بالاضافة الى ظهور مشكلة جمع المبالغ من كل البنود لكن كذلك استخدمت عوامل التصفية

بقي لدي مشكلة واحدة انه عند تفريغ الحقول مربع المخصص و المنصرف و المتبقي تختفي ولا تظهر الا بعد ان اقوم بادخال سجل جديد "مطالبة" لكل بند هل من سبيل لجعل مربعات الادخال لا تختفي

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

مثلا نموذج التدريب الفرعي اضفت عامل تصفية وهو بجمع المخصص فقط الذي يكون البند فيه يساوي تدريب لكن عندما تكون قيمة البند Null تختفي المربعات :huh:

بصراحة مرت عليه برامج خيارات كثيرة و واجهت بعض المشاكل

لكن هذا بالرغم من بساطته ماشفت اصعب منه :wacko:

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

new.zip

#7
Abo_Yossof كتب:

من وجهة نظرى الأفضل هو فصل المخصص فى جدول اخر

ستجد بالمرفق تطبيق سريع لذلك

تم تقسيم جدول الميزانية الى جدولين MEZANIA و MOKHASAS

و تم اضافة نموذج SARD للتطبيق

بالتوفيق

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

وفقكم الله اخواني

#8

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

اشكركم جميعا من اعماق قلبي والله انكم خير معين بعد الله سبحانه :blush:

#9

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

Dim sespc As Integer
Me.Filter = True
If Me.Filter = Me.بند = التدريب Then
Me.sespc = DSum("[مبلغ]", "MEZANIA")
Else
Me.sespc = 0
End If
End Sub
#10

اخى

ضع الملف بعد التعديل

لتوضيح ما تريده لعمل المطلوب

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

مدونتى:-

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

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

#11

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

ميزانية11.zip

#12

للتوضيح اريد فرز المبالغ لكل بند في النماذج الفرعية حتى تكون ناتج العملية صحيح

مثال بند التدريب مخصص 3000 اريد مجموع فقط المبالغ الخاصة به و يكون الناتج في خانة مصروف وفي خانة متبقي يكون المخصص منقوصا منه مجموع المبالغ المصروفه للبند و ليس كل البنود

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

تم تعديل هذه المشاركة بواسطة نجوم الكون في 24 فبراير 2012 في 21:10

#13

تم ايجاد الحل و لله الحمد في دالة DSum

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…