منتدى فيجوال بيسك لكل العرب

نسخة كاملة : كيف اجعل زر الحفظ يقوم بعمل حفظ وتعديل
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم اخوانى المحترمين 

انا مبتداء واحاول فى برنامج سوبر ماركت فكنت اريد ان اجعل زر الحفظ عندما اقوم بحفظ محتويات الفاتورة يقوم بالحفظ وعندما استدعى الفاتورة بعد الحفظ واقوم بالتعديل عليها فانة يقوم بحفظ نفس الفاتورة بعد التعديل فقط اى اريد زر الحفظ يقوم بالحفظ والتعديل ايضا

-  انا عندى زر للحفظ اى يحفظ الفاتورة بدون ترحيل وزر لترحيل الفاتورة او اغلاقها عندما اقوم باغلاق الفاتورة او ترحيلها فاننى اقوم بالحفظ اولا ثم استدعى الفاتورة مرة اخرى لترحيلها  اريد ان اجعل زر الترحيل يقوم بحفظ الفاتورة واغلاقها مباشرا اذا  اردت اى اذا كنت متاكد اننى لم اقوم بالعديل على الفاتورة قبل الاغلاق
ودا كود الحفظ 
PHP كود :
  '======= حفظ تفاصيل الفاتورة ===============

        DA = New OleDb.OleDbDataAdapter("SELECT * FROM Sell_Detl", con)
        DA.Fill(DT)
        For I = 0 To dgv.Rows.Count - 2
            Dim DR1 = DT.NewRow
            If dgv.CurrentRow.Cells(10).Value = Nothing Then
                dgv.CurrentRow.Cells(10).Value = 0

            End If
            DR1!BUYCODE = TXTID.Text
            DR1!Code = dgv.Rows(I).Cells(0).Value
            DR1!Name = dgv.Rows(I).Cells(1).Value
            DR1!Price = Val(dgv.Rows(I).Cells(2).Value)
            DR1!Unit = dgv.Rows(I).Cells(3).Value
            DR1!Quant = dgv.Rows(I).Cells(4).Value
            DR1!Cost_Unit = dgv.Rows(I).Cells(5).Value
            DR1!Total = dgv.Rows(I).Cells(6).Value
            DR1!Tax = dgv.Rows(I).Cells(7).Value
            DR1!TaxVal = dgv.Rows(I).Cells(8).Value
            DR1!DS = dgv.Rows(I).Cells(9).Value
            DR1!DSVAL = dgv.Rows(I).Cells(10).Value

            DR1!Stock = dgv.Rows(I).Cells(11).Value
            DR1!QTY_IN = dgv.Rows(I).Cells(12).Value
            DR1!RowNum = TextBox5.Text
            DT.Rows.Add(DR1)
            Dim CMD_ As New OleDb.OleDbCommandBuilder(DA)
            DA.Update(DT)
            
        Next
        dgv.Enabled = False
        DA = New OleDb.OleDbDataAdapter("SELECT * FROM t1", con)
        DA.Fill(DT)

        MessageBox.Show("تمت عملية حفظ فاتورة المشتريات بنجاح", "رسالة تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Button1_Click(sender, e) 

اشكركم اخوانى
كود :
Dim StrSQL as string = "Select * From Sell_Detl  Where BUYCODE = '" & TXTID.Text & "'"
Dim StrTableName As String ="Sell_Detl"
Dim da As New SqlDataAdapter(StrSQL, con)
Dim dt As New DataSet
da.Fill(dt,StrTableName)
If ds.Tables(StrTableName).Rows.Count > 0 Then
'Edit Code
Else If ds.Tables(StrTableName).Rows.Count = 0 Then
'Add Code
End If
(30-11-18, 05:03 PM)asemshahen5 كتب : [ -> ]
كود :
Dim StrSQL as string = "Select * From Sell_Detl  Where BUYCODE = '" & TXTID.Text & "'"
Dim StrTableName As String ="Sell_Detl"
Dim da As New SqlDataAdapter(StrSQL, con)
Dim ds As New DataSet
da.Fill(dt,StrTableName)
If ds.Tables(StrTableName).Rows.Count > 0 Then
'Edit Code
Else If ds.Tables(StrTableName).Rows.Count = 0 Then
'Add Code
End If
قمت بوضع هذا الكود تحت الكود المرفق فى رز الحفط فاتى هذا الخطاء 
[attachment=20247]
فى اى مكان اضع هذا الكود اخى الكريم
غير  dt ب ds خطأ مطبعي
(30-11-18, 06:41 PM)asemshahen5 كتب : [ -> ]غير  dt ب ds خطأ مطبعي

اخى الغالى دلوقتى مفيش خطاء فى الكود 

بس مفيش اى تغيير يعنى انا عملت تعديل على الفاتورة ولم يتم حفظ التعديل
ارفق البرنامج
ضع كود التعديل مكان 'Edit Code
ضع كود الإضافة مكان 'Add Code
كود :
Dim ret As Integer = (New OleDb.OleDbDataAdapter("SELECT BUYCODE FROM Sell_Det1 WHERE BUYCODE=" & Val(textBox1.Text), con).Fill(New DataTable))

If ret > 0 Then
' هنا يتم التعديل
Else
' هنا يتم الحفظ
End If
بالتوفيق للجميع
(01-12-18, 06:45 AM)حريف برمجة كتب : [ -> ]
كود :
Dim ret As Integer = (New OleDb.OleDbDataAdapter("SELECT BUYCODE FROM Sell_Det1 WHERE BUYCODE=" & Val(textBox1.Text), con).Fill(New DataTable))

If ret > 0 Then
' هنا يتم التعديل
Else
' هنا يتم الحفظ
End If
بالتوفيق للجميع

اشكرك اخى الكريم كيف يتم تعديل كود الصنف وهو مفتاح اساسى فى قاعدة بيانات access 2007
ودا نص الرسالة 
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship.  Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
(01-12-18, 04:35 PM)atef_020 كتب : [ -> ]
(01-12-18, 06:45 AM)حريف برمجة كتب : [ -> ]
كود :
Dim ret As Integer = (New OleDb.OleDbDataAdapter("SELECT BUYCODE FROM Sell_Det1 WHERE BUYCODE=" & Val(textBox1.Text), con).Fill(New DataTable))

If ret > 0 Then
' هنا يتم التعديل
Else
' هنا يتم الحفظ
End If
بالتوفيق للجميع

اشكرك اخى الكريم كيف يتم تعديل كود الصنف وهو مفتاح اساسى فى قاعدة بيانات access 2007

العفو اخي ،،

المفتاح الأساسي (الترقيم التلقائي) لا يتم تعديله او تغييرة ولكن هو الشرط لتعديل السجل ،، مثلاً


كود :
update table1 set fname=fname where id=" & textbox1.text & "
الصفحات : 1 2