تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اضافة زر امر للداتاجريد
#1
السلام عليكم.اخواني الهي يكرمكم ان شاء الله.كيف يمكن ان اضيف عمود للداتاجريد ( العمود 3 الاخير ) من نوع button .بارك الله فيكم


الملفات المرفقة
.rar   إضافة button للداتاجريد.rar (الحجم : 139.61 ك ب / التحميلات : 19)
الرد }}}
تم الشكر بواسطة:
#2
جرب هذا


يمكنك إضافة الأعمدة في التصميم بدلا من الكود

أو
كود :
Imports System.Data.OleDb
Public Class Form1

   Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB.mdb; "

   Dim Conn As New OleDbConnection(ConStr)
   Dim InfoCommand As OleDbCommand
   Dim InfoAdapter As OleDbDataAdapter
   Dim InfoTable As DataTable
   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       If Conn.State = ConnectionState.Closed Then
           Conn.Open()
       End If

       InfoCommand = New OleDbCommand("SELECT * FROM Materials ORDER BY Materials_Id", Conn)
       InfoAdapter = New OleDbDataAdapter()
       InfoAdapter.SelectCommand = InfoCommand
       InfoTable = New DataTable()
       InfoAdapter.Fill(InfoTable)
       DataGridView1.DataSource = InfoTable
       DataGridView1.Columns(0).HeaderText = "التّرقيم"
       DataGridView1.Columns(1).HeaderText = "السلعة"
       DataGridView1.Columns(2).HeaderText = "الكمية"

       Dim btn As New DataGridViewButtonColumn
       btn.HeaderText = "العمود"
       btn.DefaultCellStyle.NullValue = "Button"
       btn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       DataGridView1.Columns.Add(btn)

   End Sub

   Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
       If TypeOf sender.Columns(e.ColumnIndex) Is DataGridViewButtonColumn Then
           MsgBox("RowIndex: " & e.RowIndex)
       End If
   End Sub

End Class
الرد }}}
تم الشكر بواسطة: محمد خيري , محمد خيري
#3
يسلمو اخي rnmr و الله هذا ما ريده بالضبط كثر الف خيرك.فقط لي طلب اخير بعد اذنك كيف لما اضغط على زر الامر على الصف الذي واقف عليه تخبرني رسالة اذا كنت اريد نقل السجل الى الجدول الاخر ( matrials_djerd ) اذا نعم يتم حذف السجل من جدول materials و ينتقل الى جدول matrials_djerd ربنا يبارك فيك اخي
الرد }}}
تم الشكر بواسطة: rnmr , rnmr
#4
جرب هذا

كود :
Imports System.Data.OleDb
Public Class Form1

   Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB.mdb; "

   Dim Conn As New OleDbConnection(ConStr)
   Dim InfoAdapter As New OleDbDataAdapter("SELECT * FROM Materials ORDER BY Materials_Id", Conn)
   Dim InfoTable As New DataTable

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load

       InfoTable.Clear()
       InfoAdapter.Fill(InfoTable)
       DataGridView1.DataSource = InfoTable

       DataGridView1.Columns(0).HeaderText = "التّرقيم"
       DataGridView1.Columns(1).HeaderText = "السلعة"
       DataGridView1.Columns(2).HeaderText = "الكمية"

       Dim btn As New DataGridViewButtonColumn
       btn.HeaderText = "نقل للجدول الاخر"
       btn.DefaultCellStyle.NullValue = "نقل"
       btn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       DataGridView1.Columns.Add(btn)
   End Sub

   Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
       If TypeOf sender.Columns(e.ColumnIndex) Is DataGridViewButtonColumn Then
           If MsgBox("هل تريد نقل السجل إالى الجدول الاخر", MsgBoxStyle.YesNo) <> MsgBoxResult.Yes Then Return
           Try

               If Conn.State <> ConnectionState.Open Then Conn.Open()

               Dim row As DataGridViewRow = DataGridView1.CurrentRow
               Dim trans As OleDbTransaction = Conn.BeginTransaction
               Dim cmd As New OleDbCommand
               cmd.Connection = Conn
               cmd.Transaction = trans

               cmd.CommandText = "INSERT INTO [Materials_Djerd] ([Djerd_Id], [Djerd_Name], [Djerd_Quantity]) VALUES(?,?,?)"
               cmd.Parameters.Clear()
               cmd.Parameters.AddWithValue("@Id", row.Cells(0).Value)
               cmd.Parameters.AddWithValue("@Name", row.Cells(1).Value)
               cmd.Parameters.AddWithValue("@Quantity", row.Cells(2).Value)
               If cmd.ExecuteNonQuery > 0 Then ' إذا نجحت الإضافة في الجدول الثاني

                   cmd.CommandText = "DELETE FROM [Materials] WHERE [Materials_Id]=?"
                   cmd.Parameters.Clear()
                   cmd.Parameters.AddWithValue("@Id", row.Cells(0).Value)

                   If cmd.ExecuteNonQuery() > 0 Then ' إذا نجح الحذف من الجدول الأول

                       trans.Commit() ' اتمام العمليتين معا النقل والحذف

                       ' إعادة تعبئة الداتاجريدفيو
                       InfoTable.Clear()
                       InfoAdapter.Fill(InfoTable)

                       MsgBox("تم النقل")

                   Else
                       trans.Rollback() ' التراجع عن العمليتين معا
                   End If

               End If

           Catch ex As Exception
               MsgBox(ex.Message)
           Finally
               Conn.Close()
           End Try
       End If
   End Sub

End Class
الرد }}}
تم الشكر بواسطة: محمد خيري , ابراهيم ايبو
#5
الله يبارك فيك و يمتعك بالصحة و الهناء اخي rnmr .كلو مضبوط منيش عارف كيف اشكرك.بقيت لي امسة بسيطة و ان شاء الله اغلق الموضوع .كيف يمكن استبدل هذا الرسالة

كود :
If MsgBox("هل تريد نقل السجل إالى الجدول الاخر", MsgBoxStyle.YesNo) <> MsgBoxResult.Yes Then Return
بحيث اذكر اسم السلعة داخل الرسالة هكذا مثلا لم اعرف كيف ابدل كلمة txtname بسطر الداتاجريد

كود :
           If MsgBox("  هل أنت متأكّد من أنك تريد حذف هذه السلعة و نقلها لجدول الجرد : " & TxtName.Text & " ? ", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تنبيه") = MsgBoxResult.No Then
الرد }}}
تم الشكر بواسطة: rnmr , rnmr
#6
جرب هذا

كود :
Imports System.Data.OleDb

Public Class Form1

   Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\DB.mdb; "

   Dim Conn As New OleDbConnection(ConStr)
   Dim InfoAdapter As New OleDbDataAdapter("SELECT * FROM Materials ORDER BY Materials_Id", Conn)
   Dim InfoTable As New DataTable

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
       Me.DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
       Me.DataGridView1.AllowUserToDeleteRows = False
       Me.DataGridView1.AllowUserToAddRows = False
       Me.DataGridView1.ReadOnly = True

       InfoTable.Clear()
       InfoAdapter.Fill(InfoTable)
       DataGridView1.DataSource = InfoTable
       DataGridView1.ClearSelection()

       DataGridView1.Columns(0).HeaderText = "التّرقيم"
       DataGridView1.Columns(1).HeaderText = "السلعة"
       DataGridView1.Columns(2).HeaderText = "الكمية"

       Dim btn As New DataGridViewButtonColumn
       btn.HeaderText = "نقل للجدول الاخر"
       btn.DefaultCellStyle.NullValue = "نقل"
       btn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
       DataGridView1.Columns.Add(btn)
   End Sub

   Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
       If TypeOf sender.Columns(e.ColumnIndex) Is DataGridViewButtonColumn Then

           ' قراءة السطر الحالي في الداتاجريدفيو
           Dim row As DataGridViewRow = sender.CurrentRow

           ' إعدادات رسالة التأكيد
           Dim msgstyle As MsgBoxStyle = &H180000 + MsgBoxStyle.YesNo + MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Exclamation
           Dim msgtext As String = _
               "هل أنت متأكّد من أنك تريد حذف هذه السلعة ونقلها لجدول الجرد: ?" & vbNewLine & _
               "رقم: " & row.Cells(0).Value & ": " & row.Cells(1).Value & " (كمية: " & row.Cells(2).Value & ")"
           ' عندما لا يكون الجواب ب(نعم) فقم بالتراجع
           If MsgBox(msgtext, msgstyle, "تنبيه") <> MsgBoxResult.Yes Then Return

           Try
               If Conn.State <> ConnectionState.Open Then Conn.Open()

               Dim trans As OleDbTransaction = Conn.BeginTransaction
               Dim cmd As New OleDbCommand
               cmd.Connection = Conn
               cmd.Transaction = trans

               cmd.CommandText = "INSERT INTO [Materials_Djerd] ([Djerd_Id], [Djerd_Name], [Djerd_Quantity]) VALUES(?,?,?)"
               cmd.Parameters.Clear()
               cmd.Parameters.AddWithValue("@Id", row.Cells(0).Value)
               cmd.Parameters.AddWithValue("@Name", row.Cells(1).Value)
               cmd.Parameters.AddWithValue("@Quantity", row.Cells(2).Value)
               If cmd.ExecuteNonQuery > 0 Then ' إذا نجحت الإضافة في الجدول الثاني

                   cmd.CommandText = "DELETE FROM [Materials] WHERE [Materials_Id]=?"
                   cmd.Parameters.Clear()
                   cmd.Parameters.AddWithValue("@Id", row.Cells(0).Value)

                   If cmd.ExecuteNonQuery() > 0 Then ' إذا نجح الحذف من الجدول الأول

                       trans.Commit() ' اتمام العمليتين معا النقل والحذف

                       ' إعادة تعبئة الداتاجريدفيو
                       InfoTable.Clear()
                       InfoAdapter.Fill(InfoTable)
                       sender.ClearSelection()

                       MsgBox("تم النقل")

                   Else
                       trans.Rollback() ' التراجع عن العمليتين معا
                   End If

               End If

           Catch ex As Exception
               MsgBox(ex.Message)
           Finally
               Conn.Close()
           End Try
       End If
   End Sub

End Class

أو حسب طلبك

كود :
If MsgBox("  هل أنت متأكّد من أنك تريد حذف هذه السلعة و نقلها لجدول الجرد : " & Me.DataGridView1.CurrentRow.Cells(1).Value & " ? ", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تنبيه") = MsgBoxResult.No Then
الرد }}}
#7
بجد كثر الف خيرك اخ rnmr كلو مضبوط بارك الله فيك و جزاك كل الخير
الرد }}}
تم الشكر بواسطة: rnmr , rnmr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 0 49 13-04-24, 12:59 PM
آخر رد: new_programer
  اضافة ادوات لفيجوال بيسك خالد20 10 1,988 18-12-23, 07:51 PM
آخر رد: ابراهيم عبدالباقى
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 354 05-08-23, 02:29 PM
آخر رد: moh61
  [سؤال] كيفية اضافة في اكثر من جدول ahmed_king2023 0 366 29-07-23, 12:03 PM
آخر رد: ahmed_king2023
  اقتناص حدث تحديث او حذف او اضافة ملف ابو محمد محمد محمد 6 564 21-04-23, 05:49 PM
آخر رد: ابو محمد محمد محمد
  [سؤال] كيفية اضافة اكثر من ثلاث معاملات الى عامل التشغيل بواسطة If asmarsou 7 1,182 26-02-23, 11:34 PM
آخر رد: asmarsou
  مشكلة فى اضافة عناصر فى الداتا جريد فيو خالد كامل1 14 1,631 16-02-23, 03:10 AM
آخر رد: خالد كامل1
  [VB.NET] اضافة كرستال ريبورت MOHAMMED ALZWI 2 377 20-12-22, 11:19 AM
آخر رد: MOHAMMED ALZWI
  إضافة عمودين للداتاجريد قبل نشر ايام الشهر محمد خيري 0 261 15-12-22, 11:28 PM
آخر رد: محمد خيري
  [VB.NET] خطأ عند اضافة فاتورة مشتريات MOHAMMED ALZWI 2 442 10-12-22, 12:25 PM
آخر رد: MOHAMMED ALZWI

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


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