تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الحذف والترتيب من داتا جيرد فيو
#1
بسم الله الرحمن الرحيم
لدي قاعدة بيانات  وجدول  اسمه daleel  ومن الفورم
أريد حذف  الحساب  الذي  استغني  عنه   ... كما  وأريد  ترتيب  الحسابات
بناءا"  على  رقم  kism   (القسم   حيث يرمز  1  الى  الايرادات  و  2  للمصروفات  و  ...الخ)
بحيث  تترتب  البيانات  على  ان  تبدأ  بالايرادات  وبعدها  المصروفات  وهكذا

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


الملفات المرفقة
.rar   حساب.rar (الحجم : 91.99 ك ب / التحميلات : 9)



وما نيل المطالب  بالتمني ,,,

لكن تأخذ الدنيا غلابا ........................


الرد
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته

بالنسبة لترتيب عرض السجلات
في الدالة loaddata في جملة الأستعلام ضع ORDER BY kism  بدل ORDER BY ID
كما بالكود التالي
كود :
Private Sub loaddata()
       dataconnection()
       Dim da As New OleDb.OleDbDataAdapter("SELECT * From daleel ORDER BY kism", cnn)
       Dim dt As New DataTable
       da.Fill(dt)
       Me.DataGridView1.DataSource = dt
   End Sub

وبالنسبة لكود الحذف
إستبدل كود الحذف لديك بالكود التالي

كود :
   MessageBox.Show("هل تريد حذف الحساب", "تأكيد", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
       If vbYes Then
           dataconnection()
           Dim Del As New OleDb.OleDbCommand
           Dim delnum = DataGridView1.CurrentRow.Cells(0).Value
           Del.Connection = cnn
           Del.CommandType = CommandType.Text
           Del.CommandText = "DELETE * FROM daleel WHERE id like " & delnum & ""
           Del.ExecuteNonQuery()
           cnn.Close()
           loaddata()
       End If

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

الرد
#3
(09-02-19, 05:27 PM)princelovelorn كتب :
السلام عليكم ورحمة الله وبركاته

بالنسبة لترتيب عرض السجلات
في الدالة loaddata في جملة الأستعلام ضع ORDER BY kism  بدل ORDER BY ID
كما بالكود التالي
كود :
Private Sub loaddata()
       dataconnection()
       Dim da As New OleDb.OleDbDataAdapter("SELECT * From daleel ORDER BY kism", cnn)
       Dim dt As New DataTable
       da.Fill(dt)
       Me.DataGridView1.DataSource = dt
   End Sub

وبالنسبة لكود الحذف
إستبدل كود الحذف لديك بالكود التالي

كود :
   MessageBox.Show("هل تريد حذف الحساب", "تأكيد", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
       If vbYes Then
           dataconnection()
           Dim Del As New OleDb.OleDbCommand
           Dim delnum = DataGridView1.CurrentRow.Cells(0).Value
           Del.Connection = cnn
           Del.CommandType = CommandType.Text
           Del.CommandText = "DELETE * FROM daleel WHERE id like " & delnum & ""
           Del.ExecuteNonQuery()
           cnn.Close()
           loaddata()
       End If

تمنياتي لك بالتوفيق والنجاح
السلام  عليكم
جزيل  الشكر  اخي  الكريم  وجزاك  الله  خيرا
سؤالي  هنا   ,,,  هل  استفاد  من  حقل  id  فهو  ترقيم  تلقائي 
أنا  أريد  دالة  ترقيم  تلقائي  لحقل  cod  ولكن  يبقى  الترتيب   لحقل  cod



وما نيل المطالب  بالتمني ,,,

لكن تأخذ الدنيا غلابا ........................


الرد
تم الشكر بواسطة: اسامه الهرماوي
#4
وعليكم السلام ورحمة الله وبركاته

أكيد ممكن تستفاد منه باستخدامه كدلالة لأجراء العمليات
وبالنسبة للترقيم التلقائي لحقل  cod 
فستستخدم الدالة التالية ( وهي تعتمد على حقل id التلقائي )

كود :
   Public Function GetLastRecord(ByVal TableName, ByVal orderbyfield) As Integer
       Dim STR = "select * from " & TableName & " Order by " & orderbyfield
          Dim adp = New OleDb.OleDbDataAdapter(STR, cnn)
       Dim Ds = New DataSet
       adp.Fill(Ds)
       Dim DT As DataTable
       DT = Ds.Tables(0)
       If DT.Rows.Count <> 0 Then
           Dim i = DT.Rows.Count - 1
           GetLastRecord = CInt(Val(DT.Rows(i).Item(orderbyfield)))
       End If
   End Function

شرح الدالة :

تقوم بالبحث عن قيمة حقل رقمي معين في أخر سجل في الجدول بدلالة حقل id (التلقائي)  
*ملحوظة (( يمكن استخدام اي حقل تريده ولكن الغرض الأساسي منها حقل رقمي ))


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

كود :
TxtCode.Text = GetLastRecord("daleel", "ID") + 1

ومعنى السطر السابق هو ان الدالة ستبحث عن حقل id في اخر سجل  في جدول daleel  ثم ستضيف عليه 1  وتعود لك بالناتج في TxtCode.Text

الذي ستضيفه في كود الحفظ لديك

وممكن إضافة لمسة بسيطة على الكود السابق كالتالي


كود :
TxtCode.Text = Format(GetLastRecord("daleel", "ID") + 1, "Cod-0000")

ومعنى الكود انه سيتم عمل تهيئة للناتج المستقبل من الدالة وجعله على الصورة (  Cod-0010 ) وهنا رقم 10  يعني ان حقل id في اخر سجل في الجدول يحمل القيمة 9  وبالتالي الحقل الجديد سيكون 10


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

الرد
#5
الشكر  الجزيل  لك  استاذي
بصراحة  عمل  جيد
انا  طبقت  الدالة لإضافة  جديد   والمطلوب  الذي  أريده  كما  يلي :
اريد عدم  ظهور  حقل id ويكون  الترقيم  بظهور  الحقل cod  والذي  يعبر عن رقم  الحساب
بحيث  هو  الذي أريده  أن  يأخذ  ترقيما  تلقائيا" 
قد اكون  اشتبهت  في  التوضيح  سابقا"   ... أرفع  لكم  البرنامج  بعد  اضافة  دالة  اسميتها
numbring  للسهولة  واستميحك  عذرا  للتغيير 
عند غلق  البرنامج   وإعادة  فتحه  أريده  أن  يأخذ  رقم  الحساب  الجديد  وأن  يتم  تفريغ الحقول بأضافة
الحساب  الجديد 

وفقكم  الله   وجزاكم  الله  خير  الجزاء


الملفات المرفقة
.rar   حساب.rar (الحجم : 95.03 ك ب / التحميلات : 5)



وما نيل المطالب  بالتمني ,,,

لكن تأخذ الدنيا غلابا ........................


الرد
تم الشكر بواسطة: princelovelorn
#6
الشكر لله والفضل لله

لقد عدلت لك على المشروع بما فهمته منك 

وهو كالتالي
أولا إخفاء عمود حقل id من datagridveiw
عن طريق إضافة السطر التالي لدالة التعبئة

كود :
 DataGridView1.Columns(0).Visible = False

حيث رقم 0  يشير إلى رقم index للعمود المراد التعامل معه

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

ثالثا بما إنك تريد جعل cod ترقيم تلقائي ( أتوماتيك بدون تدخل المستخدم ) برمجيا
فيجب جعل حقل textbox الخاص به في الفورم  للقراءة فقط  readonly=true

رابعا تم إضافة دالة  loaddata() في نهاية  زر حفظ وأضافة  حتى تقوم بعرض البيانات الجديدة بدون غلق وفتح البرنامج

مرفق المثال بعد التعديلات + الشرح بالكومنت للتغييرات الجديدة

ملحوظة أنا لست أستاذ بل مجرد مبتدئ في تعلم البرمجة 

تمنياتي لك بالتوفيق والنجاح


الملفات المرفقة
.zip   حساب.zip (الحجم : 123.76 ك ب / التحميلات : 7)
لا إله إلا الله وحده لا شريك له له الملك وله الحمد وهو على كل شئ قدير
سبحان الله وبحمده سبحان الله العظيم
سبحان الله والحمد لله ولا إله إلا الله والله أكبر ولا حول ولا قوة إلا بالله العلى العظيم
رب أغفر لي 

الرد
تم الشكر بواسطة:
#7
(11-02-19, 06:46 PM)princelovelorn كتب :
الشكر لله والفضل لله

لقد عدلت لك على المشروع بما فهمته منك 

وهو كالتالي
أولا إخفاء عمود حقل id من datagridveiw
عن طريق إضافة السطر التالي لدالة التعبئة

كود :
 DataGridView1.Columns(0).Visible = False

حيث رقم 0  يشير إلى رقم index للعمود المراد التعامل معه

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

ثالثا بما إنك تريد جعل cod ترقيم تلقائي ( أتوماتيك بدون تدخل المستخدم ) برمجيا
فيجب جعل حقل textbox الخاص به في الفورم  للقراءة فقط  readonly=true

رابعا تم إضافة دالة  loaddata() في نهاية  زر حفظ وأضافة  حتى تقوم بعرض البيانات الجديدة بدون غلق وفتح البرنامج

مرفق المثال بعد التعديلات + الشرح بالكومنت للتغييرات الجديدة

ملحوظة أنا لست أستاذ بل مجرد مبتدئ في تعلم البرمجة 

تمنياتي لك بالتوفيق والنجاح

أحسنتم  والف  شكر  نعم  هو  مامطلوب



وما نيل المطالب  بالتمني ,,,

لكن تأخذ الدنيا غلابا ........................


الرد
تم الشكر بواسطة: ابراهيم ايبو
#8
الحمد لله والشكر لله

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

الرد
تم الشكر بواسطة: ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ملئ داتا جرد من تكست nabil.1710 6 87 أمس, 03:56 PM
آخر رد: حريف برمجة
Information [VB.NET] بحاجة الى اكواد الاضافة و الحذف و التعديل و البحث .. georgos 7 182 15-02-19, 10:52 AM
آخر رد: georgos
  قسمة صف فى داتا جريد فيو nabil.1710 1 102 24-01-19, 03:31 AM
آخر رد: حريف برمجة
  اريد كود الحذف والتعديل بدون الداتا جريد فيو سمير جمال 2 147 06-01-19, 07:31 PM
آخر رد: سمير جمال
  نقل صف من داتا جريد فيو احمد خطاب 5 190 28-12-18, 05:39 AM
آخر رد: حريف برمجة
  نسخ معلومات من داتا تيبل الى داتا تيبل ثانيه SonBasel 0 110 27-12-18, 04:27 PM
آخر رد: SonBasel
  [VB.NET] داتا جريد فيو M.SOFT 0 133 08-12-18, 03:51 PM
آخر رد: M.SOFT
  سؤال بخصوص الكتابة داخل داتا جريد احمد خطاب 3 179 05-12-18, 11:35 AM
آخر رد: احمد خطاب
  مشكلة نسخ ولصق في داتا كريد فيو kaiser_noori 5 209 26-11-18, 11:25 PM
آخر رد: HASAN6.0
  داتا جريد فيو SonBasel 1 178 19-11-18, 04:22 PM
آخر رد: SonBasel

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم