(04-09-15, 08:19 AM)khodor1985 كتب : [ -> ]تفضل اخي العزيز، لقد تم التعديل على المشروع بحسب طلبك
المشروع :
وهذه الصورة بعد التعديل :
أتمنى لك التوفيق
السلام عليكم ورحمة الله وبركاته
جزيت الجنة بغير حساب
وغفر الله لكـ ولوالديكـ ولمن احبكـ واحببته فيه
جزاكـ الله خير وجعله الله في صحائف اعمالكـ
واثابكـ خيراً
السلام عليكم ورحمة الله وبركاته
جزاكـ الله خير لكن هناكـ شئ وهو
بعد نقل السجل مثلاُ الثالث والثاني من الجدول الاول الى الجدول الثاني
يبقى سجل واحد عند اغلاق البرنامج واعيد فتحه اجد في ان السجلات في الجدول الاول ثلاثة
باركـ الله فيكـ
نعم صحيح، قم بالضغط على حفظ قبل اﻹغلاق
سوف اعدل على المشروع في المساء ﻷنني أتحدث على الهاتف اﻵن
(04-09-15, 05:59 PM)khodor1985 كتب : [ -> ]نعم صحيح، قم بالضغط على حفظ قبل اﻹغلاق
سوف اعدل على المشروع في المساء ﻷنني أتحدث على الهاتف اﻵن
السلام عليكم ورحمة الله وبركاته
سامحني اخي تعبتكـ معي ربي يحفظكـ ويرضى عنكـ

السلام عليكم أخي العزيز ورحمة الله وبركاته
أنظر إلى الصورة جيدا
[
attachment=7801]
وهذا المشروع :
[
attachment=7802]
أتمنى لك التوفيق
ملاحظة : إلى الجدول الثاني في الصورة وليس الجدول الأول، لقد حصل خطأ مطبعي
(04-09-15, 09:04 PM)khodor1985 كتب : [ -> ]السلام عليكم أخي العزيز ورحمة الله وبركاته
أنظر إلى الصورة جيدا
وهذا المشروع :
أتمنى لك التوفيق
ملاحظة : إلى الجدول الثاني في الصورة وليس الجدول الأول، لقد حصل خطأ مطبعي
وعليكم السلام ورحمة الله وبركاته
اخي وحبيبي واستاذي الفاضل حفظكـ الله واثابكت خيراً وزادكـ بسطة في العلم والعمل
وفقكـ الله
الحمدلله وفضل من الله ثم لكـ البرنامج يعمل
لكن عند عمل نقل يجب ان اضغط على شكل save الحفظ لكي يتم حفظ العمل والسجل المنقول اما اذا لم اضغط على حفظ يعود السجل للظهور بعد اغلاق وفتح البرنامج هل هناكـ علاج لهذه الحالة جزاكـ الله خير
وسؤال اخر هل يمكن عند نقل السجل تغير بيانات احد الاعمده مثلاً العنوان
جزاكـ الله خير وباركـ الله فيكـ
سلام
مشاركتي هذه قد لا تعتبر مفيده من ناحيت الطريقه المطلوبه
لتجربت الكود يتم اضافت جدولين داتاجريدفيو وزر واحد
وما ننساش قاعدتين بيانات مع تغيير اسماء قاعدت البيانات واسماء الجداول عند اللزوم
توجد في هذا الكود ثلاث طرق لنقل اسطر بين جدولين:
1- ضغط الزر: مهمته عي نقل مجموعت اسطر بعد تحديدها في الجدول الاول عن طريق الماوس.
2- النقر المزدوج: ويعمل بلنقر مرتين على السطر في الجدول الاول لنقله.
3- السحب والاسقاط: تعمل بسحب سطر من الجدول الاول واسقاطه على الجدول الثاني.
تم وضع جملتين اتصال لاحتمال التطبيق على قاعدتين بيانات.
كود :
Public Class Form1
Dim connStr1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;"
Dim connStr2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb;"
Dim sql1 As String = "SELECT * FROM [table1]"
Dim sql2 As String = "SELECT * FROM [table2]"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.AllowDrop = True
DataGridView2.AllowDrop = True
Call fillDatagridviews()
End Sub
Dim dt1 As New DataTable
Dim dt2 As New DataTable
#Region " تعبئت الجدول من قاعدت البيانات "
Private Sub fillDatagridviews()
Dim c1 = New OleDb.OleDbDataAdapter("SELECT * FROM [table1]", connStr1).Fill(dt1)
DataGridView1.DataSource = dt1
Dim c2 = New OleDb.OleDbDataAdapter("SELECT * FROM [table2]", connStr2).Fill(dt2)
DataGridView2.DataSource = dt2
End Sub
#End Region
#Region " تحديث قاعدت البيانات "
Private Sub updateDatebase()
Using da As New OleDb.OleDbDataAdapter(sql1, connStr1)
Using builder As New OleDb.OleDbCommandBuilder(da)
da.Update(dt1)
End Using
End Using
Using da As New OleDb.OleDbDataAdapter(sql2, connStr2)
Using builder As New OleDb.OleDbCommandBuilder(da)
da.Update(dt2)
End Using
End Using
End Sub
#End Region
' الطريقه الاولى
#Region " زر النقل بعد اختيار اسطر من الجدول الاول "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each row As DataGridViewRow In DataGridView1.SelectedRows
If DataGridView1.AllowUserToAddRows And row.Index = DataGridView1.Rows.Count - 1 Then Exit For
dt2.Rows.Add((From cels In row.Cells Select cels.Value).ToArray)
DataGridView1.Rows.Remove(row)
Next
DataGridView2.DataSource = dt2
End Sub
#End Region
' الطريقه الثانيه
#Region " زر النقل بعد النقر المزدوج على سطر في الجدول الاول "
Private Sub DataGridView1_RowHeaderMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseDoubleClick
If sender.AllowUserToAddRows And e.RowIndex = sender.Rows.Count - 1 Then Return
dt2.Rows.Add((From cels In CType(sender, DataGridView).Rows(e.RowIndex).Cells Select cels.Value).ToArray)
sender.Rows.Remove(sender.Rows(e.RowIndex))
DataGridView2.DataSource = dt2
Call updateDatebase()
End Sub
#End Region
' الطر يقه الثالثه
#Region " طريقت سحب سطر من الجدول الاول واسقاطه على الجدول الثاني "
Private Sub DataGridView1_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView1.DragOver
e.Effect = DragDropEffects.Move
End Sub
Private Sub DataGridView1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles DataGridView1.MouseMove
If (e.Button And MouseButtons.Left) = MouseButtons.Left Then
If sender.CurrentRow.Index = If(sender.AllowUserToAddRows, sender.Rows.Count - 1, sender.Rows.Count) Then Return
sender.DoDragDrop(sender.Rows(sender.CurrentRow.Index), DragDropEffects.Move)
End If
End Sub
Private Sub DataGridView2_DragOver(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView2.DragOver
e.Effect = DragDropEffects.Move
End Sub
Private Sub DataGridView2_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles DataGridView2.DragDrop
If (e.Effect = DragDropEffects.Move) Then
Dim row As DataGridViewRow = e.Data.GetData(GetType(DataGridViewRow))
dt2.Rows.Add((From cels In row.Cells Select cels.Value).ToArray)
DataGridView1.Rows.Remove(DataGridView1.CurrentRow)
Call updateDatebase()
End If
End Sub
#End Region
End Class
موفقين
السلام عليكم ورحمة الله وبركاته
أخي العزيز الطالب، أشكرك جزيلا على هذا المجهود وأنا معجب جدا بطريقة تفكيرك في الأمور، أرجو أخي العزيز أن تضع هذه الطرق الثلاث في مثال لكي تعم الفائدة، والأخ مبرمج أحب إصراره المستمر والمتواصل للوصول إلى الغاية.
أخي العزيز مبرمج المثال عندي شغال التمام التمام، ولقد وضعت إجراء الحفظ في الحدث FormClosed ، أي عند الإغلاق سينفذ إجراء الحفظ، أما بالنسبة لتغيير إسم أحد الأعمدة بعد عملية النقل هلا أوضحت ما الفائدة من ذلك؟
ولا تنسى أيضا أن تنفذ فكرة الأخ طالب فهي أيضا ممتازة، ولو طريقة واحدة من الثلاث طرق، فالقاعدة تقول "أعلم الناس من جمع علوم الناس إلى علمه.
أتمنى لك التوفيق
سلام
اشكرك اخي خدور على مشاعرك الطيبه،،،
وانتم ما شاء الله لديكم ملكت الشرح فيديو صوت وصوره والتي لا استطيعها ابدا لاسباب خاصه.
يمكن سياستي غريبه شوي، وهي انني افضل عدم رفع مشروع جاهز لا يفيد من ناحيت التعليم،
ولكن في نظري البسيط ان اجعل صاحب الموضوع يطبق ليتمكن من التعلم بشكل افضل.
قد اضطر احيانا لوضع كود او مشروع دون شرحه لضيق الوقت.
لقد نسيت ان اضع DataGridView1.AllowDrop = True وكذلك لل DataGridView2 لاني غيرتها من نافذت الخصائص
وتمت اضافتها للكود اعلاه في الحدث Form_Load
موفقين