السلام عليكم ورحمة الله وبركاته
اخي الكريم
مسألة الحفظ والحقول فارغة والسماح او عدم السماح
في قاعدة البيانات يمكننا جعل كل الحقول لاتقبل Null اي حقل فارغ طبعا الامر ربما لايفضله الكثير من المبرمجين لاننا مجبرين على ادخال قيم في كل الحقول
يوجد حل افضل وهو ان نجعل كل حقول قاعدة البيانات تقبل الـ null ما عدا حقل الاي دي ID لانه مهم جدا وهو مايميز الصفوف والسجلات عن بعضها وبوساطته يتم التعديل والحذف
ثم نأتي في زر الحفط نضع شروط الحقول التي لانريد ان تبقى فارغة مثلا حقل الاسم نكتب كود التحقق
كود :
If TextBox1.text = "" Then
MsgBox("يرجى املاء حقل الاسم")
TextBox1.Focus()
Exit Sub
Else
' كود الحفظ
End If
واذا اردنا التحقق من اكثر من حقل نكتب شرط له
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
(14-05-20, 09:12 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته
اخي الكريم
مسألة الحفظ والحقول فارغة والسماح او عدم السماح
في قاعدة البيانات يمكننا جعل كل الحقول لاتقبل Null اي حقل فارغ طبعا الامر ربما لايفضله الكثير من المبرمجين لاننا مجبرين على ادخال قيم في كل الحقول
يوجد حل افضل وهو ان نجعل كل حقول قاعدة البيانات تقبل الـ null ما عدا حقل الاي دي ID لانه مهم جدا وهو مايميز الصفوف والسجلات عن بعضها وبوساطته يتم التعديل والحذف
ثم نأتي في زر الحفط نضع شروط الحقول التي لانريد ان تبقى فارغة مثلا حقل الاسم نكتب كود التحقق
كود :
If TextBox1.text = "" Then
MsgBox("يرجى املاء حقل الاسم")
TextBox1.Focus()
Exit Sub
Else
' كود الحفظ
End If
واذا اردنا التحقق من اكثر من حقل نكتب شرط له
شكرا أخي الكود نجح لاكن مع ذلك ينشئ سطر فارغ كليا ، هل يمكن منع انشاء أي سطر فارغ
2- يتبقى إشكال الحذف عند عدم وجود اي سطر في القاعدة ، اريد منع ظهور رسالة الخطأ
السلام عليكم ورحمة الله وبركاته اخي الكريم يبدو ان الاكواد لديك فيها مشكلة ارفق الجزء الخاص بعملية الحفظ والتعديل والحذف ليتم التحقق بالنسبة للحذف يتم بناء على رقم الاي دي وفي حال لايوجد رقم اي دي لن يتم الحذف والامر هنا لايتعلق بوجود او عدم وجود بيانات لانك ستحذف ماهو معلوم لديك برقم الاي دي
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
[attachment=24731 كتب :ابراهيم ايبو pid='161069' dateline='1589502892'] السلام عليكم ورحمة الله وبركاته اخي الكريم يبدو ان الاكواد لديك فيها مشكلة ارفق الجزء الخاص بعملية الحفظ والتعديل والحذف ليتم التحقق بالنسبة للحذف يتم بناء على رقم الاي دي وفي حال لايوجد رقم اي دي لن يتم الحذف والامر هنا لايتعلق بوجود او عدم وجود بيانات لانك ستحذف ماهو معلوم لديك برقم الاي دي
هذا هو مشروعي أخي
إشكال آخر هو أنه رغم ID Auto لاكن عند حذف الأسطر و اضافة اسطر جديدة لا يعيد البرنامج الترتيب التسلسلي
السلام عليكم ورحمة الله وبركاته اخي الكريم البرنامج يعمل بشكل سليم فقط كنت تحتاج الى هندلة ازرار الجديد والحفظ والتعديل والحذف حيث تم وضع الضوابظ ورسائل التحذير الشيئ الاخر الذي سالت عنه وهو عدم تسلسل السجلات وظهور فراغات بين ارقام السجلات وهذا يظهر بعد حذف سجل ويبقى الرقم غير مستخدم والسبب ان الترقيم التلقائي يستخدم الرقم مرة واحدة مثل عود الثقاب ان اشعلته لن يتم اشعاله مرة اخرى (استهلك) لانه رقم فريد ولايجوز تكراره مرة اخرى اليك مثالك بعد التعديل
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات
(15-05-20, 10:38 PM)ابراهيم ايبو كتب : السلام عليكم ورحمة الله وبركاته اخي الكريم البرنامج يعمل بشكل سليم فقط كنت تحتاج الى هندلة ازرار الجديد والحفظ والتعديل والحذف حيث تم وضع الضوابظ ورسائل التحذير الشيئ الاخر الذي سالت عنه وهو عدم تسلسل السجلات وظهور فراغات بين ارقام السجلات وهذا يظهر بعد حذف سجل ويبقى الرقم غير مستخدم والسبب ان الترقيم التلقائي يستخدم الرقم مرة واحدة مثل عود الثقاب ان اشعلته لن يتم اشعاله مرة اخرى (استهلك) لانه رقم فريد ولايجوز تكراره مرة اخرى اليك مثالك بعد التعديل
بارك الله فيك أخي الكريم على مساعدتك الله يعطيك خير الدنيا و الآخرة
انا مبتدئ جدااااا و عملي هذا من خلال تتبع اليوتوب فقط
17-05-20, 02:36 AM (آخر تعديل لهذه المشاركة : 17-05-20, 02:36 AM {2} بواسطة ابراهيم ايبو.)
السلام عليكم اخي الكريم
معك حق في كود الحفظ كنا نضيف السجل قبل التحقق لم انتبه الهذه الجزئية
استبدل كود الحفظ بهذا الكود وان شاء الله كل شيئ مثل ماتحب
كود :
' كود الحفظ
Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click
If Repertoire.Text = "" Then
MessageBox.Show("يجب املاء حقل الفهرس", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Repertoire.Focus()
Exit Sub
Else
' تم نقل هذين السطرين الى هنا
dt.Rows.Add()
Dim last As Integer = dt.Rows.Count - 1
dt.Rows(last).Item("Repertoire") = Repertoire.Text
dt.Rows(last).Item("DateActe") = DateActe.Text
dt.Rows(last).Item("TypeActe") = TypeActe.Text
dt.Rows(last).Item("Name1") = Name1.Text
dt.Rows(last).Item("Name2") = Name2.Text
dt.Rows(last).Item("DateEnreg") = DateEnreg.Text
dt.Rows(last).Item("NQuitt") = NQuitt.Text
dt.Rows(last).Item("Droit") = Droit.Text
dt.Rows(last).Item("Notes") = Notes.Text
Dim save As New OleDbCommandBuilder(da)
da.Update(dt)
dt.AcceptChanges()
End If
MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)
'اعادة تحميل السجلات ===============================================================
usersdt_Load(Dgv_Data)
'=================================================================================
' تفريغ الادوات بعد الحفظ
ClearTools()
End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات