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

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


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



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

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


الرد }}}
تم الشكر بواسطة:
#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 ك ب / التحميلات : 14)



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

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


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

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

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

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

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

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

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

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

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

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

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


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

الرد }}}
تم الشكر بواسطة:
#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
الحمد لله والشكر لله

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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 152 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  [C#.NET] طباعة بيانات داتا جرد فيو h2551996 0 84 25-02-24, 02:31 PM
آخر رد: h2551996
  [VB.NET] ستايل داتا جرد فيو h2551996 10 343 17-01-24, 02:52 PM
آخر رد: aljzazy
  الحذف للسجل بشروط معينة محمد خيري 4 361 05-01-24, 04:46 AM
آخر رد: محمد خيري
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 710 15-12-23, 07:47 AM
آخر رد: foad8920
  يوجد مشكلة عند تحميل البيانات فى كمبوبوكس داخل داتا جريد new_programer 2 473 17-10-23, 06:51 PM
آخر رد: new_programer
  [VB.NET] مشكلة في داتا جرد فيو h2551996 4 404 13-09-23, 01:26 PM
آخر رد: h2551996
  [سؤال] دمج جدولين في داتا جريد فيو alhuraibi 0 353 04-08-23, 12:08 AM
آخر رد: alhuraibi
  مساعده في كود ترحيل البيانات الى اكسل من داتا قرايد فيو maherhaddaf 1 621 27-06-23, 08:03 PM
آخر رد: Shade0001
  مساعدة كتابة التاريخ داخل داتا جريد فيو كريم عبودي 2 523 22-06-23, 12:28 AM
آخر رد: كريم عبودي

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


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