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

الاضافه الاتوماتيكيه على اخر رقم في الحقل

مغلق
بدأه k.f.u في 23 سبتمبر 2007 · 13 رد · 1,534 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

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

عند الدخول لنموذج الخدمات يقوم المستخدم باختبار رقم الخدمه مثلا 10 هل يوجد خدمه بهذا الرقم ام لااااا ........... وهذا الكود الخاص بذلك

Function GetRecord()
		If RS.State = 1 Then RS.Close

		RS.Open "select * from Services where No_sev = '" & Trim(Text1.Text) & "'", CN, adOpenStatic, adLockOptimistic
				If RS.RecordCount > 0 Then
						Text2.Text = RS.Fields(1)

										 Else
									MsgBox "لايوجد بيانات", vbInformation, "تنبيه"

								End If


End Function

اذا لم توجد خدمه بهذا الرقم فيدخل خدمه جديده باستخدام الرقم 10 ويضغط على زر اضافه

Private Sub Command1_Click()
If Text1.Text = "" Then Exit Sub
RS.AddNew
	 RS!No_sev = Text1.Text
	 RS!Ename_sev = Text2.Text

RS.Update
MsgBox "تم اضافة السجل ", vbInformation, "اضافه"
End Sub

اريد التعديل على كود الاضافه بحيث ان يضيف رقم الخدمه تلقائي بحيث اذا كانت عدد السجلات 10 فعند التسجيل الجديد يضيف 1 على الـ 10 فيصبح رقم الخدمه الجديد 11 اتوماتيك بدون تدخل المستخدم

ارجوووووووووووا المساعده وجزاكم الله خير

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#2

السلام عليكم

أنا ما أدري إذا كنت فهمت مشكلتك بشكل صحيح أم لا، لكن على كل حال أنا أقترح ان تغير نوع الحقل المسمى No_sev إلى AutoNumber.

أيضا أنت ذكرت أنه إذا كان عدد السجلات 10 فعند التسجيل الجديد يكون رقم الخدمة هو 11، بالتالي لماذا لا تجعل رقم الخدمة الجديد كما يلي:

RS!No_sev = RS.RecordCount + 1
#3

وعليكم السلام ........... جزاك الله خير

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

عموما

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

وارجوا توضيح كيف سيتم تسجيل الخدمه هل اسجل اسمها فقط وهو سيسجل تلقائي الرقم

مع العلم اني وضعت اسم خدمه معينه وضغطت على زر الاضافه نزل لي الرقم (10) تلقائي

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

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

 كود
Private Sub Command1_Click()
If RS.State = 1 Then RS.Close
RS.Open ("select * from Services "), CN, adOpenKeyset, adLockOptimistic
If RS.RecordCount = 0 Then
   Text1.Text = 1
Else
   RS.MoveLast
   Text1.Text = RS("NO_sev") + 1
End If
RS.AddNew
RS!Ename_sev = Text2.Text
RS.Update
MsgBox "تم اضافة السجل ", vbInformation, "اضافه "
End Sub

اتمنى منكم المساعده والتصحيح

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

وسأجرب طريقتك

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#4
aldowsary كتب:
السلام عليكم

أنا ما أدري إذا كنت فهمت مشكلتك بشكل صحيح أم لا، لكن على كل حال أنا أقترح ان تغير نوع الحقل المسمى No_sev إلى AutoNumber.

أيضا أنت ذكرت أنه إذا كان عدد السجلات 10 فعند التسجيل الجديد يكون رقم الخدمة هو 11، بالتالي لماذا لا تجعل رقم الخدمة الجديد كما يلي:

RS!No_sev = RS.RecordCount + 1

جزاك الله خير

جربت طريقتك ولكن يظهر خطأ ويأشر عند كود الاضافه

RS.AddNew

اتمنى ان تجدوا معي حل

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#5

?!!!!!!!!!!!!!

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#6

أنظر المثال المرفق

وأتمني أن يكون هذا حل مبدئي بالنسبة لك

والله الموفق

DB.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#7

شكرا ولكني لم اجد سوى قاعدة بيانات !

انا اريد المسااااااااعده بالكود ايضا ..................... لك جزيل الشكر

سبحان الله وبحمده سبحان الله العظيم ..أستغفر الله

samp8a5b2fc47732a301.jpg

#8

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

أخي الحبيب

لم أفهم المشكلة

و لكن أفترض أنك تريد إذا كان الرقم الموجود في التكست بوكس موجود قبل ذلك فيتم اضافة رقم جديد

إذا كانت هذه مشكلتك فبرجاء التوضيح

و إن كانت غير ذلك

فبرجاء ارفاق المشروع في جميع الأحوال

#9

أخي الكريم ، إذا كنت نظرت الي إستعلام الإدراج المرفق بقاعدة البيانات كنت فهمت ما أقصدة

علي العموم هذا المثال مرة أخري مع فيجوال بيزيك 6

وشكراً

Project.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#10

اخوانى الكرام

هل هذا هو المطلوب

بمعنى :

لديك مثلا سجلات لطلاب فى مدرسة

و آخر سجل مسجل برقم 12 و كل طالب حاصل على رقم أو كود معين

فاذا أردت اضافة طالب جديد ، فربما كان قد تم تسجيل بياناته من قبل

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

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

* اذا كان هذا هوالمطلوب أرجو التأكيد لوضع مثال بسيط و محكم حول الأمر

فى انتظار ردكم

#11

اخوي بالسريع انا ما قرأت الردود كلها لكن ...:

لو افترضنا انو في قاعدة البيانات 4 سجلات ورقم آخر [خدمة] هو مثلا 3 ، ممكن تقول كلامي غير منطقي لان السجلات تضاف بالترتيب ، لكن هل نسيت(عمليات الحذف والتعديل...)

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

الاول : إن كان العمود حق رقم الخدمة مفتاح رئيسي سيكون الخطا ادخال قيمة مطابقة لقيمة سابق!!!

الثاني: ان لم يكون العمود مفتاح رئيسي سيصبح البرنامج لعبة ، وستصبح هناك خدمتان بنفس الرقم 4 ،،، والله يعينك على هفة البرنامج .

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

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

ولولا انشغالي هذه اليومين كنت عاكتب الكود ....ربنا يوفقك

#12

أخي الكريم ،

من المنطق أنك لا تذهب الي آخر سجل ، بل تذهب الي أكبر قيمة رقمية

Select Max(<Field Name>) From <Table Name>

أنا بصراحة لا أعلم ماذا تريد بالضبط

أعتقد أن الملف الذي قمت بإرفاقة سيفيدك

وشكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#13

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

يا اخي ان كنت تستخدم ADODC فا الكود كالتالي

اول شي تفعله هو

 Adodc1.RecordSource = "select * from name_of_tabel"
	Adodc1.Refresh
   ' To Move TO the last Fild
	Adodc1.Recordset.MoveLast
   ' To Add New Record
	Adodc1.Recordset.AddNew
	adodc1.Recordset(Number_Of_Fild)=text1
	Adodc1.Recordset.Update
#14

جرب اخى هذا الكود

Public Sub AutoNum()
	Dim rs As New ADODB.Recordset

	rs.Open "select max(field) from Table", con1, adOpenStatic, adLockPessimistic
	If IsNull(rs(0)) = False Then
		Text1 = Format(rs(0) + 1)
	Else
		Text1 = "1"
	End If
	rs.Close
	Set rs = Nothing
End Sub

KHALED_HELAL

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

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

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

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

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

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