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

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

مغلقمُجاب
بدأه mahmoud_20 في 28 مايو 2013 · 18 رد · 1,312 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي برنامج وارد وصل رقمه الي 500 وارد

عند حذف وارد بطريق الخطا

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

فهل يوجد طريقة لمعرفة الرقم المفقود

ارجو التعديل علي المرفق فانا عملته كمثال وبه 15 وارد فقط وهذا للتجربة اريد عند حذف مثلا الوارد رقم 9 ان يكتب لي في مربع غير منضم ان الرقم المحذوف هو 9 واذا كان اكثر من رقم يكتب ايضا الارقام المحذوفه

واذا كان هناك طرق اخري ارجو الافادة

ولكم مني جزيل الشكر

mm.rar

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#2

تفضل اخي الكريم

 

post-15367-0-91550300-1369763601_thumb.g

 

 

عندما تقوم بحذف اي سجل سيتم اظهاره مباشرة في النموذج

 

 

za-Alwared.rar

 

بالتوفيق

1
#3

شكرا لك ام عهود علي ردك السريع

ولكن عندما حذفت الوارد رقم 1 لما يضاف من ضمن الارقام المحذوفه

ممكن اعرف السبب------ ولكي جزيل الشكرza-Alwared.rar

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#4

المشكلة فقط في الوارد الاول او الاخير انما اي رقم في الوسط ينزل علاطول

لو في حل اكون شاكر ولو مفيش يكفيني هذا الرد المميز وقد تم التقييم

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#5 أفضل إجابة
mahmoud_20 كتب:

المشكلة فقط في الوارد الاول او الاخير انما اي رقم في الوسط ينزل علاطول

لو في حل اكون شاكر ولو مفيش يكفيني هذا الرد المميز وقد تم التقييم

 

 

تفضل اخي الكريم

 

تم حل المشكلة وبإمكانك حذف ما تريد من السجلات

 

post-15367-0-55349500-1369770129_thumb.g

 

 

 

za-Alwared-END.rar

 

 

 

بالتوفيق

1
#6

لو تسمحي لي دكتورة زهره أشارك معاك في هذا السؤال :)

 

في الواقع السؤال عن الارقام المحذوفة من الرقم 1 الى اي رقم ، ليس بالامر الصعب كشفه بالكود ،

ولكن الذي اوقفني عند هذا السؤال هو كيفية اكتشاف آخر رقم تم حذفه، حيث لا يوجد له اثر في الجدول!!

والظاهر من السؤال انه يجب معرفة الارقام المحذوفة من قبل (والتي يمكن ان تكون قد حذفت قبل عدة ايام).

 

عليه ، هل تعتقدين عمل جدول خاصة لإضافة الارقام المراد حذفها هي الطريقة الصحيحة!! :)

ام ان هناك طريقة لقراءة السجلات المحذوفة؟

 

شكرا

تم تعديل هذه المشاركة بواسطة jjafferr في 28 مايو 2013 في 23:45

#7

عفواً

قصدي حذف الرقم الاخير ، وليس آخر رقم :(

 

جعفر

#8

اخي الفاضل : جعفر

 

حياك الله وبياك معنا في المشاركة واهلا وسهلا بك

 

بالنسبة للجدول الأساسي كان يبدأ بالرقم 1 - 15

 

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

 

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

 

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

 

اما لو كان يستخدم رقم عادي فهنا من الممكن انك تدخل مثلا  رقم 1  وبعده رقم 5  ويعده رقم 20 بمعنى انك تدخل اي ارقام 

 

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

 

ولهذا لوادخلت مثلا اول سجل وكان رقم  1  ثم ادخلت سجل رقمه  1000 فسيقوم الكود بوضع الأرقام الناقصة من 2 - 999  وطبعا هذه الأرقام لم يتم ادخالها اساسا 

 

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

 

 

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

 

 

بالتوفيق

#9

شكرا جزيلاً على هذا التوضيح :)

 

جعفر

#10
jjafferr كتب:

عفواً

قصدي حذف الرقم الاخير ، وليس آخر رقم :(

 

جعفر

 

 

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

 

مثلا :

 

قمنا بحذف السجل الرابع وكان رقمه 20  ( اولا )

ثم قمنا بحدف  السجل  60 وكان رقمه 100 ( ثانيا )

ثم قمنا بحذف السجل الأول وكان رقم 1 ( ثالثا )

 

الآن لو نظرنا لترتيب السجلات في جدول المحذوفات سنجده مفروز تصاعديا لأن الكود قم بفرزه تصاعديا

ولهذا سيظهر لنا التالي

 

السجل الأول 1

السجل الرابع 20

السجل 60  100

 

وهذا غير صحيح لأن الحذف لم يكن بهذه الطريقة

 

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

 

 

بالتوفيق

#11

توضيح مبسط لموضوع معقد ، لا يمكن لآحد ان يقوم به إلا أم عهود :)

جزاك الله خيرا :)

 

طيب اذا افترضنا ان آخر رقم (تلقائي) موجود (لآخر سجل) هو 100 ، فعند حذف هذا الرقم ، فكيف يمكننا ان نعرف ان هذا الرقم قد حذف (طبعا بعد عدة ايام)؟

حيث لو افترضنا ان المستخدم لم يلغي غير هذا السجل ، ولم يضف سجل جديد بعده ، اي ان عدد السجلات يكون 99 ، والرقم التلقائي ايضا 99 ، فكيف نعرف ان الرقم 100 تم حذفه؟؟

 

جعفر

#12
jjafferr كتب:

توضيح مبسط لموضوع معقد ، لا يمكن لآحد ان يقوم به إلا أم عهود :)

جزاك الله خيرا :)

 

طيب اذا افترضنا ان آخر رقم (تلقائي) موجود (لآخر سجل) هو 100 ، فعند حذف هذا الرقم ، فكيف يمكننا ان نعرف ان هذا الرقم قد حذف (طبعا بعد عدة ايام)؟

حيث لو افترضنا ان المستخدم لم يلغي غير هذا السجل ، ولم يضف سجل جديد بعده ، اي ان عدد السجلات يكون 99 ، والرقم التلقائي ايضا 99 ، فكيف نعرف ان الرقم 100 تم حذفه؟؟

 

جعفر

 

 

 

بارك الله بك اخي الفاضل : جعفر

 

بالنسبة لهذا الموضوع فإننا سنحتاج في هذه الحالة في حالة المستخدمين الى شيء اسمه التوثيق

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

 

 

/index.php/topic/144886-%D8%AA%D9%85%D8%AA-%D8%A7%D9%84%D8%A5%D8%AC%D8%A7%D8%A8%D8%A9-%D9%83%D9%8A%D9%81-%D9%8A%D8%AA%D9%85-%D8%AA%D8%AE%D8%B2%D9%8A%D9%86-%D8%AA%D8%B9%D8%AF%D9%8A%D9%84-%D8%AD%D9%82%D9%88%D9%84-%D8%A7%D9%84%D8%B3%D8%AC%D9%84%D8%A7%D8%AA-%D9%81%D9%8A/

 
 
 
post-15367-0-58902800-1369778644_thumb.g
 
من ضمنها هذا البرنامج
 
 
اسم المستخدم : rudwan
الرقم السري  :  1
 
 
 
بالتوفيق
1
#13
jjafferr كتب:

توضيح مبسط لموضوع معقد ، لا يمكن لآحد ان يقوم به إلا أم عهود :)

جزاك الله خيرا :)

 

طيب اذا افترضنا ان آخر رقم (تلقائي) موجود (لآخر سجل) هو 100 ، فعند حذف هذا الرقم ، فكيف يمكننا ان نعرف ان هذا الرقم قد حذف (طبعا بعد عدة ايام)؟

حيث لو افترضنا ان المستخدم لم يلغي غير هذا السجل ، ولم يضف سجل جديد بعده ، اي ان عدد السجلات يكون 99 ، والرقم التلقائي ايضا 99 ، فكيف نعرف ان الرقم 100 تم حذفه؟؟

 

جعفر

 

 

اخي الفاضل : جعفر

 

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

 

post-15367-0-11538300-1369801431_thumb.g

 

 

 

za-Alwared-LAST.rar

 

 

بالتوفيق

تم تعديل هذه المشاركة بواسطة zahrah في 29 مايو 2013 في 11:56

#14

كم انا سعيد لمشاركتكم الجيدة

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

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#15

لو امكن استاذة ام عهود نعمل اضافة الا وهي

عندما يكون جدول المحذوفات فارغ يكون مخفي وعندما يكون به ارقام يظهر ويكون احب لو طبقتيها علي اخر مثال لك الذي وجهتيه للاخ جعفر

ولكي مني جذيل الشكر والتقدير

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#16

شكرا جزيلا لك أم عهود ، وبارك الله لك في كل ما تحبين إن شاء الله تعالى :)

كفيتي ووفيتي :)

 

الأخ محمود ، هذا تعديل على ملف الاخت الدكتورة زهره (يعني مافي داعي ندخلها في الاشياء الصغيرة :) ، طبعا بعد إذن أم عهود :) )

 

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

a = DCount("*", "Lost_Serial")
'OR
a = Me.frm_Lost_Serial.Form.RecordsetClone.RecordCount

وانا افضل استعمل الاختيار الثاني (وهذا ما استخدمته في الكود الكامل)، لانه لا يعمل استعلام للجدول ويبذل مجهود لذلك ، وانما يقوم بحساب السجلات في النموذج الفرعي (وللعلم ، فان اكسس يقوم بفتح النموذج الفرعي قبل النموذج الرئيسي ، وعند فتح النموذج الفرعي بالبيانات ، فهذا استعلام بحد ذاته :) ).

 

وهذا هو الكود كاملا:

Option Compare Database
Option Explicit

Private Sub CmdDel_Click()
DoCmd.SetWarnings False
DoCmd.OpenQuery "Q1"
DoCmd.SetWarnings True

DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
'DoCmd.SetWarnings True

'Call FindGaps

Me.frm_Lost_Serial.Form.Requery

Call Form_Load

End Sub

Private Sub Form_Load()

Dim a As Variant

'a = DCount("*", "Lost_Serial")
'OR
a = Me.frm_Lost_Serial.Form.RecordsetClone.RecordCount

If a = 0 Then
Me.frm_Lost_Serial.Visible = False
Else
Me.frm_Lost_Serial.Visible = True
End If

End Sub

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 29 مايو 2013 في 11:16

#17
mahmoud_20 كتب:

لو امكن استاذة ام عهود نعمل اضافة الا وهي

عندما يكون جدول المحذوفات فارغ يكون مخفي وعندما يكون به ارقام يظهر ويكون احب لو طبقتيها علي اخر مثال لك الذي وجهتيه للاخ جعفر

ولكي مني جذيل الشكر والتقدير

 

 

غالي والطلب رخيص

 

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

 

اذا لم يكن هناك اي سجلات محذوفه فإن النموذج الفرعي سيكون مخفي واذا وجد ان هناك اي سجل محذوف سيظهر مباشرة في النموذج الرئيسي

 

 

post-15367-0-88862800-1369816251_thumb.g

 

 

za-Alwared-LAST2.rar

 

بالتوفيق

1
#18

عاجز عن الشكر B)

(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)

اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم

post-274914-0-91580400-1378113578.jpg
#19
zahrah كتب:

بارك الله بك اخي الفاضل : جعفر

 

بالنسبة لهذا الموضوع فإننا سنحتاج في هذه الحالة في حالة المستخدمين الى شيء اسمه التوثيق

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

 

 

/index.php/topic/144886-%D8%AA%D9%85%D8%AA-%D8%A7%D9%84%D8%A5%D8%AC%D8%A7%D8%A8%D8%A9-%D9%83%D9%8A%D9%81-%D9%8A%D8%AA%D9%85-%D8%AA%D8%AE%D8%B2%D9%8A%D9%86-%D8%AA%D8%B9%D8%AF%D9%8A%D9%84-%D8%AD%D9%82%D9%88%D9%84-%D8%A7%D9%84%D8%B3%D8%AC%D9%84%D8%A7%D8%AA-%D9%81%D9%8A/

 
 
 
 
من ضمنها هذا البرنامج
 
 
اسم المستخدم : rudwan
الرقم السري  :  1
 
 
 
بالتوفيق

 

مساك الله بالخير أختي الدكتورة أم عهود

 

بعدما ارفقتي برنامج التوثيق (AuditTrail) اعلاه ، وقد سبق ان رايت وقرأت عن مثل هذه البرامج ، 

ولكن المرفق استوقفني وجعلني افكر عن إمكانية تقليل الكود وتخفيف الضغط على البرنامج (او برنامج الواجهة FE) ، 

وهنا تذكرت بأن الجداول في Office 2010 فما فوق ، يمكن برمجتها عن طريق Data Macros والتي هي شبيهة بـ Triggers في SQL Server ،

وهذا يعني بأنه بإمكاننا إلغاء البرمجة المتعلقة بجدول التوثيق ، واستبدالها ببرمجة الجداول ، والذي في اعتقادي سيوفر الكثير من الوقت في استخدامه للبرامج الجديدة (اي نبرمج خانات الجدول مرة ، ثم لا نهتم بعدد النماذج والنماذج الفرعية و ....   :)

 

وارفق لكي رابط خارجي لبرنامج وجدته على الانترنت في هذا الخصوص حتى يكتمل الموضوع اعلاه ، وتعم الفائدة :)

 

http://eileenslounge.com/viewtopic.php?f=29&t=12569

 

واسمه AuditTrailTest-be.zip

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 1 يونيو 2013 في 19:30

هذا الموضوع مغلق.

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