المشاركات : 232
المواضيع 31
الإنتساب : Feb 2014
السمعة :
1
الشكر: 83
تم شكره 39 مرات في 34 مشاركات
26-02-19, 03:22 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 04:12 PM {2} بواسطة atef_020.)
(20-02-19, 05:04 PM)asemshahen5 كتب : أعتذر عن التأخر بالرد و لكن الخطأ بسيط ضع بدل t1 اسم الجدول و بدل code اسم العامود و بدل t4 القيمة المراد البحث عنها ليكون الكود كالتالي :
PHP كود :
CheckBox1.Checked = CheckCode("t1", "code", t4.text)
فرغ الداتا سيت أو الداتاتيبل ليتم التعبئة بالمعلومات الجديدة .
لا يا اخى الكريم asemshahen5 جزاك الله خيرا انا اللى بعتذر عن التاخير فى الرد ...... ولكن لم افهم ما تقصد حضرتك عندى اسم الجدول بالفعل t1 واسم العمود code ولا يوجد عندى CheckBox1
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
26-02-19, 04:17 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 04:26 PM {2} بواسطة asemshahen5.)
ده CheckCode("t1", "code", t4.text) بيدي قيمة True أو False و ممكن تضعها في أي Checkbox أو تستخدم قيمتها في الكود دون الرجوع لعرضها في Checkbox .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 232
المواضيع 31
الإنتساب : Feb 2014
السمعة :
1
الشكر: 83
تم شكره 39 مرات في 34 مشاركات
26-02-19, 04:49 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 04:53 PM {2} بواسطة atef_020.)
(26-02-19, 04:17 PM)asemshahen5 كتب : ده CheckCode("t1", "code", t4.text) بيدي قيمة True أو False و ممكن تضعها في أي Checkbox أو تستخدم قيمتها في الكود دون الرجوع لعرضها في Checkbox .
وفى اى مكان اضع هذا الكود هل فى زر الحفظ ام الفكشن تحياتى لك اخى
PHP كود :
CheckBox1.Checked = CheckCode("t1", "code", t4.text)
دا الفاكشن اللى استخدمتة
PHP كود :
Public Function CheckCode() As Boolean Dim dt As New DataTable Dim SqlSt As String = "select * from t1 where code='" & T4.Text & "'"
If con.State = ConnectionState.Closed Then con.Open() Dim adp As New OleDb.OleDbDataAdapter(SqlSt, con) adp.Fill(dt) If dt.Rows.Count = 0 Then 'MsgBox("الكود غير موجود") CheckCode = False Else 'MsgBox("الكود موجود") CheckCode = True End If If con.State = ConnectionState.Open Then con.Close() Return CheckCode End Function
ودا زر الحفظ والتعديل معا
PHP كود :
Private Sub bsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsave.Click
If con.State = ConnectionState.Open Then con.Close() If Val(T7.Text) > Val(T8.Text) Then MessageBox.Show("سعر التكلفة أكبر من سعر البيع", "رسالة تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If Val(T7.Text) = Val(T8.Text) Then MessageBox.Show("سعر البيع يساوي سعر التكلفة", "رسالة تأكيد", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If
If CheckCode() = True Then ' في حالة كود الصنف موجود Edit() Else ' في حالة كود الصنف غير موجود Save()
End If
End Sub
ولا يوجد لدى اى CheckBox1
.......... اشكرك اخى واسف لتعبك معى
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
26-02-19, 05:20 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 05:31 PM {2} بواسطة asemshahen5.)
PHP كود :
If CheckCode("t1", "code", t4.text) = True Then ' في حالة كود الصنف موجود Edit() Else ' في حالة كود الصنف غير موجود Save()
End If
بسيطة بس كدة .
و ده كود المديول :
PHP كود :
Module Module1 Public Function CheckCode(t1 As String, code As String, t4 As String) As Boolean Dim dt As New DataTable Dim SqlStr As String = "select * from " & t1 & " where " & code & " ='" & t4 & "'" If con.State = ConnectionState.Closed Then con.Open() Dim adp As New SqlClient.SqlDataAdapter(SqlStr, con) adp.Fill(dt) If dt.Rows.Count = 0 Then MsgBox("الكود غير موجود") CheckCode = False Else MsgBox("الكود موجود") CheckCode = True End If If con.State = ConnectionState.Open Then con.Close() Return CheckCode End Function End Module
و بدا المديول تستطيع عمل إستعلام عن أي قيمة بأي جدول بدل كل مرة تكتب فانكشن جديد لكل جدول تستخدم واحد بس .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 232
المواضيع 31
الإنتساب : Feb 2014
السمعة :
1
الشكر: 83
تم شكره 39 مرات في 34 مشاركات
26-02-19, 05:32 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 06:06 PM {2} بواسطة atef_020.)
(26-02-19, 05:20 PM)asemshahen5 كتب : PHP كود :
If CheckCode("t1", "code", t4.text) = True Then ' في حالة كود الصنف موجود Edit() Else ' في حالة كود الصنف غير موجود Save()
End If
بسيطة بس كدة .
و ده كود المديول :
PHP كود :
Module Module1 Public Function CheckCode(t1 As String, code As String, t4 As String) As Boolean Dim dt As New DataTable Dim SqlStr As String = "select * from " & t1 & " where " & code & " ='" & t4 & "'" If con.State = ConnectionState.Closed Then con.Open() Dim adp As New SqlClient.SqlDataAdapter(SqlStr, con) adp.Fill(dt) If dt.Rows.Count = 0 Then MsgBox("الكود غير موجود") CheckCode = False Else MsgBox("الكود موجود") CheckCode = True End If If con.State = ConnectionState.Open Then con.Close() Return CheckCode End Function End Module
اخى الكريم الكود شغال كويس جدا معى حفظ وتعديل بس المشكلة كلها انى لما اعمل تعديل لكود الصنف من كود 10 مثلا الى كود 20 فبيكرر البيانات يعنى بينشى صنف جديد بنفس بيانات الصنف كود 10 بس بكود 20 يعنى يوجد صنف كود 10 ونفس البيانات بس بكود 20 ...........تحياتى لك اخى المحترم
ودا كود التعديل
PHP كود :
Sub Edit() Try Dim str As String = ("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\h1.accdb") Dim con As New OleDbConnection(str) Dim issql As String = "select * from T1 where CODE='" & Me.T4.Text & "'" Dim isds As New DataSet Dim isda As New OleDb.OleDbDataAdapter(issql, con) isda.Fill(isds, "CODE") If Me.BindingContext(isds, "CODE").Count = 0 Then MsgBox("كود الصنف غيرموجود ", MsgBoxStyle.Critical, "خطا") Exit Sub End If cmd = New OleDb.OleDbCommand("delete from t1 where code ='" & Me.T4.Text & "'", con) con.Open() cmd.ExecuteNonQuery() con.Close()
Dim strqury1 As String
strqury1 = " update t1 set [code]=@code, [name]=@name, [cost]=@cost, [price]=@price,[supl]= @supl, [Unit]=@Unit, [Tax]=@Tax, [Ds]=@Ds, [Exper]=@Exper, [DeprtNUM]=@DeprtNUM ,[Stock_ORD]=@Stock_ORD ,[priceFtax]=@priceFtax ,[costFtax]=@costFtax ,[Q_RAITAL]=@Q_RAITAL ,[BOX]=@BOX ,[COST_R]=@COST_R where code= '" & T4.Text & "'"
cmd = New OleDb.OleDbCommand(strqury1, con)
cmd.Parameters.Add(New OleDbParameter("@code", OleDbType.VarChar)).Value = T4.Text cmd.Parameters.Add(New OleDbParameter("@name", OleDbType.VarChar)).Value = T6.Text cmd.Parameters.Add(New OleDbParameter("@cost", OleDbType.Currency)).Value = T7.Text cmd.Parameters.Add(New OleDbParameter("@price", OleDbType.Currency)).Value = T8.Text cmd.Parameters.Add(New OleDbParameter("@supl", OleDbType.VarChar)).Value = TextBox7.Text cmd.Parameters.Add(New OleDbParameter("@unit", OleDbType.VarChar)).Value = ComboBox1.Text cmd.Parameters.Add(New OleDbParameter("@Tax", OleDbType.Integer)).Value = T16.Text cmd.Parameters.Add(New OleDbParameter("@Ds", OleDbType.Currency)).Value = T15.Text cmd.Parameters.Add(New OleDbParameter("@Exper", OleDbType.Date)).Value = d2.Value.Date cmd.Parameters.Add(New OleDbParameter("@DeprtNUM", OleDbType.VarChar)).Value = TextBox15.Text cmd.Parameters.Add(New OleDbParameter("@Stock_ORD", OleDbType.Currency)).Value = T12.Text cmd.Parameters.Add(New OleDbParameter("@priceFtax", OleDbType.Currency)).Value = T20.Text cmd.Parameters.Add(New OleDbParameter("@costFtax", OleDbType.Currency)).Value = t19.Text cmd.Parameters.Add(New OleDbParameter("@Q_RAITAL", OleDbType.Currency)).Value = T9.Text cmd.Parameters.Add(New OleDbParameter("@BOX", OleDbType.Currency)).Value = T10.Text cmd.Parameters.Add(New OleDbParameter("@COST_R", OleDbType.Currency)).Value = T11.Text con.Open() cmd.ExecuteNonQuery()
MsgBox("تمت التعديل بنجاح ", MsgBoxStyle.Information, "تعديل") clear()
Catch ex As Exception Finally con.Close() End Try
End Sub
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
فرغ الداتا سيت أو الداتاتيبل الخاصة بمعلومات الصنف القديمة قبل الاستعلام على معلومات الصنف الجديد أي 20 ليتم التعبئة الداتاسيت أو الداتاتيبل بمعلومات الصنف = 20 .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 232
المواضيع 31
الإنتساب : Feb 2014
السمعة :
1
الشكر: 83
تم شكره 39 مرات في 34 مشاركات
(26-02-19, 06:09 PM)asemshahen5 كتب : فرغ الداتا سيت أو الداتاتيبل الخاصة بمعلومات الصنف القديمة قبل الاستعلام على معلومات الصنف الجديد أي 20 ليتم التعبئة الداتاسيت أو الداتاتيبل بمعلومات الصنف = 20 .
اسف والله اناا عارف انى تعبتك معايا بجد سامحنى
ممكن الطريقة
انا عملت dt.Clear() بس نفس المشكلة
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
26-02-19, 10:54 PM
(آخر تعديل لهذه المشاركة : 26-02-19, 10:55 PM {2} بواسطة asemshahen5.)
أريد أن أسألك عن سبب وضع كود الحذف هذا قبل التعديل :
كود :
cmd = New OleDb.OleDbCommand("delete from t1 where code ='" & Me.T4.Text & "'", con)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
الغ هذا من البارا ميترات :
PHP كود :
cmd.Parameters.Add(New OleDbParameter("@code", OleDbType.VarChar)).Value = T4.Text [code]=@code,
لأنك تستخدمه في البحث بقيمة التكست .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 232
المواضيع 31
الإنتساب : Feb 2014
السمعة :
1
الشكر: 83
تم شكره 39 مرات في 34 مشاركات
(26-02-19, 10:54 PM)asemshahen5 كتب : أريد أن أسألك عن سبب وضع كود الحذف هذا قبل التعديل :
كود :
cmd = New OleDb.OleDbCommand("delete from t1 where code ='" & Me.T4.Text & "'", con)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
الغ هذا من البارا ميترات :
PHP كود :
cmd.Parameters.Add(New OleDbParameter("@code", OleDbType.VarChar)).Value = T4.Text [code]=@code,
لأنك تستخدمه في البحث بقيمة التكست .
اخى المحترم asemshahen5 جزاك الله هيرا على الاهتمام والمساعدة التى تقدمها لى ولجميع اعضاء المنتدى المحترمين فلكل كل الشكل والاحترام وجزاك الله خيرا انت وكل من يقدم المساعدة الى الاعضاء .......تحياتى لك وللجميع
اخى الكريم بالنسبة لكود الحذف انا فكرت انى اقوم بحذف الصف كلة بكل بيانات واضيف الصنف الجديد بالكود الجديد ودى كانت الفكرة .... انى اضغط كود الصنف فى t1.text فيظهر بيانات هذا الصنف فى باقى التكتس وفى t4 الخاصة بكود الصنف اقوم بتغيير هذا الكود واعمل تعديل ففكرتى انة يقوم حذف الكود القديم واضافة الكود الجديد
بالنسبة انى الغى الباميترات ..... قمت بالغاءة ولكن بدل التعديل بيضيف صنف جديد
المشاركات : 1,554
المواضيع 14
الإنتساب : Apr 2013
السمعة :
253
الشكر: 3504
تم شكره 4879 مرات في 1244 مشاركات
27-02-19, 03:57 PM
(آخر تعديل لهذه المشاركة : 27-02-19, 04:00 PM {2} بواسطة حريف برمجة.)
اخي الواضح من سؤالك تريد زر الحفظ يعمل فحص اذا السجل موجود يقوم بالتعديل عليه وإذا لم يجد السجل يقوم بحفظه ،،
الحل انسخ الكود وجربه :
كود :
Dim cmd As OleDbCommand
cmd.Connection = con
Dim ret As Integer = (New OleDb.OleDbDataAdapter("SELECT code FROM t1 WHERE code='" & T4.Text & "'", con).Fill(New DataTable))
Dim strqury As String
If ret > 0 Then
' هنا يتم التعديل
strqury = "Update t1 Set [code]=@code,[name]=@name,[cost]=@cost,[price]=@price,[supl]=@supl,[unit]=@unit,[Tax]=@Tax,[Ds]=@Ds,[Exper]=@Exper,[DateItem]=@DateItem,[DeprtNUM]=@DeprtNUM,[priceFtax]=@priceFtax,[Stock_ORD]=@Stock_ORD,[costFtax]=@costFtax,[Q_RAITAL]=@Q_RAITAL,[BOX]=@BOX,[COST_R]=@COST_R where [code]=@code"
Else
' هنا يتم الحفظ
strqury = "Insert into t1 ([code],[name],[cost],[price],[supl],[unit],[Tax],[Ds],[Exper],[DateItem],[DeprtNUM],[priceFtax],[Stock_ORD],[costFtax],[Q_RAITAL],[BOX],[COST_R])values(@code,@name,@cost,@price,@supl,@unit,@Tax,@Ds,@Exper,@DateItem,@DeprtNUM,@Stock_ORD,@priceFtax,@costFtax,@Q_RAITAL,@BOX,@COST_R)"
End If
cmd = New OleDb.OleDbCommand(strqury, con)
cmd.Parameters.AddWithValue("@code", T4.Text)
cmd.Parameters.AddWithValue("@name", T6.Text)
cmd.Parameters.AddWithValue("@cost", T7.Text)
cmd.Parameters.AddWithValue("@price", T8.Text)
cmd.Parameters.AddWithValue("@supl", TextBox7.Text)
cmd.Parameters.AddWithValue("@unit", ComboBox1.Text)
cmd.Parameters.AddWithValue("@Tax", T16.Text)
cmd.Parameters.AddWithValue("@Ds", T15.Text)
cmd.Parameters.AddWithValue("@Exper", d2.Value.Date)
cmd.Parameters.AddWithValue("@DateItem", t23.Value.Date)
cmd.Parameters.AddWithValue("@DeprtNUM", TextBox15.Text)
cmd.Parameters.AddWithValue("@Stock_ORD", T12.Text)
cmd.Parameters.AddWithValue("@priceFtax", T20.Text)
cmd.Parameters.AddWithValue("@costFtax", t19.Text)
cmd.Parameters.AddWithValue("@Q_RAITAL", T9.Text)
cmd.Parameters.AddWithValue("@BOX", T10.Text)
cmd.Parameters.AddWithValue("@COST_R", T11.Text)
cmd.Parameters.AddWithValue("@QTY", 0)
con.Open()
cmd.ExecuteNonQuery()
MsgBox("تمت العملية بنجاح ", MsgBoxStyle.Information, "الاضافة")
clear()
con.Close()
[/code]
[/code]
[/code]
يا رحمن الدنيا والآخرة ورحيمهما
|