كيفية التخلص من تكرار تخزين البيانات - الرائد - 10-07-19
السلام عليكم اخواني
في كود الحفظ جعلت ملئ تكست بوكس واضافة الصورة واجبان ,(فيجوال بيسك 2010 / أكسس 2013)
في بعض الاحيان رسالة ملئ التكست بوكس للمستخدم تكون فقط تأكيدا له بفعل الامر ,
فحين الضغط على حفظ دون ادخال الصورة يقوم البرنامج بحفظ أمر التخزين مع العلم أنه يطالبني بالصور دون أن يشعرني أنه قام بعمل تخزين بيانات.
لكن حين اضيف الصورة أجد أن البرنامج خزن البيانات بشكل مضاعف حسب عدد مرات الحفظ التي قمت بها قبل اضافة الصورة.
أود منكم معاينة هذا الكود جيدا ونصحي بما يجب فعله
ومن لم يفهم ما اشرت اليه يمكنني الشرح أكثر .
كود :
Sub saving()
Try
dt.Rows.Add()
Dim pos As String = dt.Rows.Count - 1
dt.Rows(pos).Item(1) = ComboBox1.Text
dt.Rows(pos).Item(2) = langcombx1.Text
dt.Rows(pos).Item(3) = numeration.Text & " - " & annee.Text
dt.Rows(pos).Item(4) = DateTimePicker1.Value
dt.Rows(pos).Item(5) = TextBox3.Text
dt.Rows(pos).Item(6) = TextBox4.Text
dt.Rows(pos).Item(7) = TextBox5.Text
dt.Rows(pos).Item(8) = TextBox6.Text
dt.Rows(pos).Item(9) = RichTextBox1.Text
If numeration.Text = "" Then
MsgBox("ملئ خانة رقم 1 الشهادة واجب")
Return
End If
If annee.Text = "" Then
MsgBox("ملئ خانة رقم 2 الشهادة واجب")
Return
End If
If TextBox3.Text = "" Then
MsgBox("ملئ خانة الاسم واجب")
Return
End If
Dim txt As String = " - "
Dim EmpNum As String = numeration.Text & txt & annee.Text
If String.IsNullOrEmpty(pathimg.Text) Then
MessageBox.Show("الرجاء اختيار صورة")
Return
Else
If File.Exists("image\" & EmpNum & ".jpg") Then
If MessageBox.Show("توجد صورة لها نفس الاسم هل تريد استبدالها ؟", "عذرا", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
File.Delete("image\" & EmpNum & ".jpg")
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
Else
Return
End If
Else
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
End If
save_date()
clearrr()
MsgBox("تم الحفظ بنجاح")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
 ا خواني الكرام أنا متطوع في عمل برنامج مصلحة خيري لمؤسسة تعاونية
 وأتمنى منكم مساعدتي قدر الامكان وأجركم عند الله مضاعف
RE: كيفية التخلص من تكرار تخزين البيانات - سعود - 10-07-19
اخي الكريم الكود طويل لكن!
اعمل مشروع جديد وملف اكسس بالاعمدة التالية:
tid=ترقيم تلقائي
tname=الاسم
dob=تاريخ الميلاد
pic=كائن ole
واكتب اكوادك وارفع المثال ...إن احببت طبعا.
RE: كيفية التخلص من تكرار تخزين البيانات - ابراهيم ايبو - 10-07-19
السلام عليكم اخي الكريم رائد
ضع هذه السطور في نهاية الكود بعد End If اي بعد الانتهاء من الشروط كما ان كود حفظ الصورة مستقل يعمل قبل الحفظ
كود :
save_date()
clearrr()
MsgBox("تم الحفظ بنجاح")
وبذلك يكون الكود هكذا
كود :
Sub saving()
Try
dt.Rows.Add()
Dim pos As String = dt.Rows.Count - 1
dt.Rows(pos).Item(1) = ComboBox1.Text
dt.Rows(pos).Item(2) = langcombx1.Text
dt.Rows(pos).Item(3) = numeration.Text & " - " & annee.Text
dt.Rows(pos).Item(4) = DateTimePicker1.Value
dt.Rows(pos).Item(5) = TextBox3.Text
dt.Rows(pos).Item(6) = TextBox4.Text
dt.Rows(pos).Item(7) = TextBox5.Text
dt.Rows(pos).Item(8) = TextBox6.Text
dt.Rows(pos).Item(9) = RichTextBox1.Text
If numeration.Text = "" Then
MsgBox("ملئ خانة رقم 1 الشهادة واجب")
Return
End If
If annee.Text = "" Then
MsgBox("ملئ خانة رقم 2 الشهادة واجب")
Return
End If
If TextBox3.Text = "" Then
MsgBox("ملئ خانة الاسم واجب")
Return
End If
Dim txt As String = " - "
Dim EmpNum As String = numeration.Text & txt & annee.Text
If String.IsNullOrEmpty(pathimg.Text) Then
MessageBox.Show("الرجاء اختيار صورة")
Return
Else
If File.Exists("image\" & EmpNum & ".jpg") Then
If MessageBox.Show("توجد صورة لها نفس الاسم هل تريد استبدالها ؟", "عذرا", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
File.Delete("image\" & EmpNum & ".jpg")
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
Else
Return
End If
Else
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
End If
End If
save_date()
clearrr()
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
يبقى التأكد من صب الحفظ الذي عندك ان كان فيه شيء
دمت بخير
RE: كيفية التخلص من تكرار تخزين البيانات - الرائد - 10-07-19
(10-07-19, 09:56 AM)ابراهيم ايبو كتب : السلام عليكم اخي الكريم رائد
ضع هذه السطور في نهاية الكود بعد End If اي بعد الانتهاء من الشروط كما ان كود حفظ الصورة مستقل يعمل قبل الحفظ
كود :
save_date()
clearrr()
MsgBox("تم الحفظ بنجاح")
وبذلك يكون الكود هكذا
كود :
Sub saving()
Try
dt.Rows.Add()
Dim pos As String = dt.Rows.Count - 1
dt.Rows(pos).Item(1) = ComboBox1.Text
dt.Rows(pos).Item(2) = langcombx1.Text
dt.Rows(pos).Item(3) = numeration.Text & " - " & annee.Text
dt.Rows(pos).Item(4) = DateTimePicker1.Value
dt.Rows(pos).Item(5) = TextBox3.Text
dt.Rows(pos).Item(6) = TextBox4.Text
dt.Rows(pos).Item(7) = TextBox5.Text
dt.Rows(pos).Item(8) = TextBox6.Text
dt.Rows(pos).Item(9) = RichTextBox1.Text
If numeration.Text = "" Then
MsgBox("ملئ خانة رقم 1 الشهادة واجب")
Return
End If
If annee.Text = "" Then
MsgBox("ملئ خانة رقم 2 الشهادة واجب")
Return
End If
If TextBox3.Text = "" Then
MsgBox("ملئ خانة الاسم واجب")
Return
End If
Dim txt As String = " - "
Dim EmpNum As String = numeration.Text & txt & annee.Text
If String.IsNullOrEmpty(pathimg.Text) Then
MessageBox.Show("الرجاء اختيار صورة")
Return
Else
If File.Exists("image\" & EmpNum & ".jpg") Then
If MessageBox.Show("توجد صورة لها نفس الاسم هل تريد استبدالها ؟", "عذرا", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
File.Delete("image\" & EmpNum & ".jpg")
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
Else
Return
End If
Else
File.Copy(pathimg.Text, "image\" & EmpNum & ".jpg")
End If
End If
save_date()
clearrr()
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
يبقى التأكد من صب الحفظ الذي عندك ان كان فيه شيء
دمت بخير
شكرا لك / لازلت اعاني من نفس المشكل
أخي ابراهيم في الاول كنت قد وضعت الكود كما عدلته لي انت الان , ولم يعمل معي فقمت بتحديثه على الطريقة التي اشرت اليها أنا اعلاه , فاختفت بضع مشاكل , لكن تكرار المعلومات لازال يتكرر
الان قد ارفقت لكم كما اشار الي الاخ سعود اعلاه , ملف يمكنكم معاينته ومشاعدتي على حل المشكل
- رجاءا الملف المرفق لم يتم قبوله في رفع المنتدى (7.8mb) فقمت برفعه على موقع الخليج بشكل مؤقت
https://www.gulf-up.com/e37k44eltdce
RE: كيفية التخلص من تكرار تخزين البيانات - ابراهيم ايبو - 10-07-19
السلام عليكم اخي رائد
الملف لايحمل من الموقع يبدو فيه فيروس والله اعلم
اخي المشكلة في كود الحفط للبيانات عندك جرب تحفظ بدون الصورة فقط البيانات
وان ظهرت المشكلة عندها بوجد خلل في كود الحفظ
قم بارفاق مشروعك بدون صور وارفق قاعدة البيانات فيها سجل واحد مع الصورة التابعة له
دمت بألف خير
RE: كيفية التخلص من تكرار تخزين البيانات - الرائد - 11-07-19
(10-07-19, 11:58 PM)ابراهيم ايبو كتب : السلام عليكم اخي رائد
الملف لايحمل من الموقع يبدو فيه فيروس والله اعلم
اخي المشكلة في كود الحفط للبيانات عندك جرب تحفظ بدون الصورة فقط البيانات
وان ظهرت المشكلة عندها بوجد خلل في كود الحفظ
دمت بألف خير
الكود يعمل بشكل عادي خلال تجاهل كود اللصورة
RE: كيفية التخلص من تكرار تخزين البيانات - ابراهيم ايبو - 11-07-19
ضع كود نسخ الصورة في البداية لانه لاعلاقة له بأكواد حفظ البيانات فقط متزامن معه
RE: كيفية التخلص من تكرار تخزين البيانات - الرائد - 11-07-19
(11-07-19, 12:10 AM)ابراهيم ايبو كتب : ضع كود نسخ الصورة في البداية لانه لاعلاقة له بأكواد حفظ البيانات فقط متزامن معه
جرب الامر كذلك كما قلت تزامن الصورة هو من يجعل الكود يمرر التخزين ويتجاهل ذلك
هل توجد طريقة لعمل تحقق من جميع الخطوات من ثم يصرح بالتخزين
RE: كيفية التخلص من تكرار تخزين البيانات - ابراهيم ايبو - 11-07-19
الع المتغير txt
التحقق من الحقول اجعلها هكذا
كود :
If numeration.Text = "" Or annee.Text = "" Or TextBox3.Text = "" Then
MsgBox("الرجاء ملئ الحقول خانة او اكثر لم يتم ملؤها")
Return
End If
Dim EmpNum As String = numeration.Text & " - " & annee.Text
RE: كيفية التخلص من تكرار تخزين البيانات - الرائد - 11-07-19
(11-07-19, 12:33 AM)ابراهيم ايبو كتب : الع المتغير txt
التحقق من الحقول اجعلها هكذا
كود :
If numeration.Text = "" Or annee.Text = "" Or TextBox3.Text = "" Then
MsgBox("الرجاء ملئ الحقول خانة او اكثر لم يتم ملؤها")
Return
End If
Dim EmpNum As String = numeration.Text & " - " & annee.Text
شكرا لك .
في حالة ان اردت جعل if الشرطية تتحقق من جميع معلومات قائمة sub
|