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

عدم تكرار السجلات

مغلق
بدأه الفريد في 14 أغسطس 2004 · 9 رد · 4,323 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

حاولت من خلال الاستعلامات و لكني لم أفلح ...

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

#2

السلام عليكم

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

علي النحو التالي :

اذا كان البحث عن قيمة رقمية في حقل رقمي

sql = "select * from table where field = " & your value

اما اذا كانت القيمة نصية اي حرفية فالطريقة التالية

sql = "select * from table where field = ' "& your value & "'"

شكرا

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#3

شكراً جزيلاً لردك السريع على سؤالي ...

طبقت المثال ...

SQLtest = "select [no],[event],[eventno] from evryday where event ='" & comb2del.Text & "'And eventno ='" & comb1.Text & "' order by start"
 Set rs = db.OpenRecordset(SQLtest)

و جربت هذا أيضاً

SQLtest = "select *  from evryday where event ='" & comb2del.Text & "'And eventno ='" & comb1.Text & "' order by start"
 Set rs = db.OpenRecordset(SQLtest)

و لكن كان من المفترض عند تحقق الشروط ( إذا أنا كتبتها صح ) تظهر رسالة تفيد أن السجل موجود و إذا لم تتحقق الشروط يحفظ السجل

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

rs.update

كيف الحل ؟؟ لأني أريد التحقق من ثلاث أعمدة في السجل الواحد

طبعاً على فكرة جربت استخدم if و لكن نفس المشكلة اللي فوق ..

و جزاك الله خير

تم تعديل هذه المشاركة بواسطة الفريد في 14 أغسطس 2004 في 03:52

#4

السلام عليكم

ما جربته صحيح ولكن تأكد من الامور التالية :

انك تبحث عن قيم نصية فضع علامة النص الموحدة قبل وبعد النص المراد البحث عنه

انك تبحث عن قيم رقمية فلا تحتاج لها .

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

SQLtest = "select [no],[event],[eventno] from evryday where event ='" & comb2del.Text & "'And eventno ='" & comb1.Text & "' order by start"
Set rs = db.OpenRecordset(SQLtest)
with rs 
      if rs.eof the 
msgbox "السجل موجود"
else
msgbox "السجل غير موجود"

end if 
end with

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#5

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

السلام عليك يا اخي prof 1982

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

عملت قاعدة بيانات وبها سجلات والذي اريده عند ربط هذه القاعدة بالفيجوال عن طريق مربعات النصوص text ارت منع تكرار السجلات فمثلا لو كتبت في مربع النص الاول كلمة (profo ) ومن ثم لو كتبت نفس الكلمة في مربع نص آخر تظهر لي رسالة تنبيه بان هذا السجل مكرر في هذه القاعدة

ارجوا منك التوضيح في ذلك وارفاق الملف

طول عمرك يا اخي prof

** أقم صلاتك قبل مماتك **

الصلاة : جالبة للرزق . حافظة ‏للصحة دافعة للأذى ، طاردة للأدواء ، مقوية للقلب ، مبيضة للوجه ، ‏مفرحة للنفس ، مذهبة للكسل ، منشطة للجوارح ، ممدة للقوى ‏،شارحة للصدر، مغذية للروح ، منورة للقلب ، حافظة للنعمة ، دافعة ‏للنقمة ، جالبة للبركة, مبعدة من الشيطان.

* هل تعلم أن النبي صلى الله عليه وسلم وصف تارك الصلاة بالكفر ؟

‏* هل تعلم أن الذي لا يصلي إذا مات لا يدفن في مقابر المسلمين!!

‏* هل تعلم أن أول ما تحاسب عليه الصلاة ؟

‏* هل تعلم أن تارك الصلاة يحشر يوم القيامة مع فرعون ؟

‏* هل تعلم أن تارك الصلاة مع المجرمين في جهنم ؟

#6

السلام عليكم

اخي العزيز (العالم)

علي ما يبدو ان خبرتك في الفيجوال بسيك بسيطة بعض الشئ ،، لا بأس فالانسان يعيش ويموت وهو يتعلم ,

نرجع لموضوع التكرار ،، اولا اخي العزيز ما الفائدة من ربط الـText باكثر من حقل ، فليس لها داعي ، يمكن البحث عن قيمة بعد تخزينها طبعا ثم ان وجدتها لا تقم بعملية الاضافة ، والعكس صحيح . (طبعا سيكون كل هذا من خلال صندوق نص واحد فقط)

الخاص بالقيمة التي نريد البحث عنها .

ارجوا ان تكون الفكرة قد وصلت وللتوضيح اكثر : انظر المثال المرفق :

--------------

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

prof_1982.zip

تم تعديل هذه المشاركة بواسطة prof_1982 في 14 أغسطس 2004 في 12:37

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#7

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

اخي العزيز ( prof ) بالنسية للمثال وكأنني لم استفد منه فعندما كتبت في مربعات النصوص لم تنضاف الى الشبكة ولم يمنع التعارض

وبالنسبة لاسلئتي الاخرى حول treeview ارجوا منك ان تساعدني فيها وانا ممتن بك في هذا المنتدى وجزالك الله الف خير

** أقم صلاتك قبل مماتك **

الصلاة : جالبة للرزق . حافظة ‏للصحة دافعة للأذى ، طاردة للأدواء ، مقوية للقلب ، مبيضة للوجه ، ‏مفرحة للنفس ، مذهبة للكسل ، منشطة للجوارح ، ممدة للقوى ‏،شارحة للصدر، مغذية للروح ، منورة للقلب ، حافظة للنعمة ، دافعة ‏للنقمة ، جالبة للبركة, مبعدة من الشيطان.

* هل تعلم أن النبي صلى الله عليه وسلم وصف تارك الصلاة بالكفر ؟

‏* هل تعلم أن الذي لا يصلي إذا مات لا يدفن في مقابر المسلمين!!

‏* هل تعلم أن أول ما تحاسب عليه الصلاة ؟

‏* هل تعلم أن تارك الصلاة يحشر يوم القيامة مع فرعون ؟

‏* هل تعلم أن تارك الصلاة مع المجرمين في جهنم ؟

#8

السلام عليكم

أخي العزيز (العالم)

المثال المرفق ،، يمكن عملية التكرار اذا طابق رقم الملف و الاسم لاي رقم ملف واسم موجود مسبقا ،، يعني البرنامج يقوم بالبحث عن قيميتن .

اما بالنسبة Tree View اليوم سأضع المثال الجديد وأسف علي التأخير

شكرا ،، جرب ذلك بنفسك

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#9

السلام عليكم..

أرجو الافادة بفكرة بسيطة..

إذا كانت قاعدة البيانات من النوع Access فيمكن ضبط حقل البيانات المراد عدم التكرار في سجلاته (كحقل مفتاح رئيسي).. وبهذا انتهي دور Access.. وأما بداخل VB فإنه عند إضافة قيمة موجودة من قبل لحقل مربوط بـ Text او أى شئ آخر فإن مترجم قواعد البيانات (من داخل VB) سيعطي رسالة خطأ تفيد بأن السجل موجود من قبل,, دورنا هنا أن نتصيد هذا الخطأ ونعرضه للمستخدم كما نشاء.. هكذا..

'قبل كتابة أي شئ في الكود
On Error GoTo Solution

'اكتب أكوادك هنا
'##############

Solution:
MsgBox "القيمة المدخلة موجودة من قبل"
text.SetFocus

مع الأخذ في الاعتبار باحكام باقي الأكواد جيدا لتفادي الاخطاء الاخري .. لوضع مساحة لخطا التكرار لتصيد Solution: وعرض الـ MsgBox.. لان الكود السابق يظر الرسالة عند حدوث أي خطأ.. وليس بشرط خطأ التكرار..

أرجو ان يكون وضح قصدي

وَلَوْلا دَفْعُ اللَّهِ النَّاسَ بَعْضَهُم بِبَعْضٍ لَّفَسَدَتِ الأَرْضُ وَلَكِنَّ اللَّهَ ذُو فَضْلٍ عَلَى العَالَمِينَ

موقع رائع للقرآن الكريم والتدريب على الحفظ

#10

شكراً جزيلاً أخي البروفيسور 1982 ... و أحسن الله صنيعك

و شكراً أخي الفاضل ahmedx44 و فكرة ممتازة في حالة وجود قيمة واحدة فقط لا تتكرر

و بارك الله فيكم

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

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