الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة فى كود التعديل

بدأه سلمى محمد في 21 أبريل 2012 · 8 رد · 445 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

عندى مشكلة بخصوص التعديل على الحقول فى قاعدة البيانات

دة الكود فتح الجدول

rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

عند التعديل على السجلات يتم تعديل على جميع الحقول الا حقل name

عند التعديل على حقل name لا يعدل ويعمل اضافة سجل جديد

عند تغير الكود ل

rs.open "select *from name",db,1,2

بيعملى مشكلة لانى اربط السجلات باليست فيو

مش عارفة اعمل ايه ؟؟

تم تعديل هذه المشاركة بواسطة سلمى محمد في 21 أبريل 2012 في 21:50

#2

ياليت اختي اقدر افيدك.... بروحي انا مبتدئ.....

#3
الحياة امراة كتب:

ياليت اختي اقدر افيدك.... بروحي انا مبتدئ.....

تسلميلى يا رب ... ان شاء الله الاقى مساعدة عن قريب , هذا المنتدى رائع بجد ما فى سؤال وضعته الا لقيت اجابة شافية

:)

#5
راجعي الكود الأخير يوجد به الشرح
================================
كود الحفظ لوحده


If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "يجب كتابة الاسم والعنوان على الاقل ", vbCritical, "تنبيــه"
Exit Sub
End If

If rs.State = adStateOpen Then rs.Close
rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

If rs.EOF = True Then
rs.AddNew

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text


rs.Update

MsgBox ("تم حفظ السجل بنجاح"), 64, ("Program")

Else

MsgBox ("عفواً السجل موجود مسبقاً يمكنك تعديله"), 64, ("Program")
End If

Set rs = Nothing
If rs.State = adStateOpen Then rs.Close

Call deltxt
Call FillList
=====================================================================

كود التعديل لوحده


If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "يجب كتابة الاسم والعنوان على الاقل ", vbCritical, "تنبيــه"
Exit Sub
End If

If rs.State = adStateOpen Then rs.Close
rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

If rs.EOF = True Then

MsgBox ("عفواً السجل غير موجود قم بحفظه أولاً ثم قم بتعديله"), 64, ("Program")

Else

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text
rs.Update

MsgBox ("تم تعديل السجل بنجاح"), 64, ("Program")
End If

Set rs = Nothing
If rs.State = adStateOpen Then rs.Close

Call deltxt
Call FillList
===================================================================================

كود الحفظ والتعديل معاً ( في حالة لم يجد السجل يقوم بالحفظ وفي حالة وجد السجل يقوم بالتعديل عليه )

نحن وضعنا الشرط هنا 

rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

from a4 = اي الجدول المسمى a4

where name='" & Text1.Text & "'"    ( بشرط اذا تساوى النص الموجود في تكست1 مع الحقل المسمى بـ name

If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "يجب كتابة الاسم والعنوان على الاقل ", vbCritical, "تنبيــه"
Exit Sub
End If

If rs.State = adStateOpen Then rs.Close
rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

If rs.EOF = True Then   ' هنا في حالة لم يجد الشرط المطلوب في جملة فتح الجدول
rs.AddNew  'هنا اضافة سجل جديد

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text


rs.Update  ' حفظ السجل

MsgBox ("تم حفظ السجل بنجاح"), 64, ("Program")

Else  ' أو تعديل على نفس السجل بدون اضافة سجل جديد

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text

rs.Update

MsgBox ("تم تعديل السجل بنجاح"), 64, ("Program")
End If

Set rs = Nothing
If rs.State = adStateOpen Then rs.Close

Call deltxt
Call FillList
#6
If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "يجب كتابة الاسم والعنوان على الاقل ", vbCritical, "تنبيــه"
Exit Sub
End If

If rs.State = adStateOpen Then rs.Close
rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

If rs.EOF = True Then
rs.AddNew

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text


rs.Update

MsgBox ("تم حفظ السجل بنجاح"), 64, ("Program")

Else

MsgBox ("عفواً السجل موجود مسبقاً يمكنك تعديله"), 64, ("Program")
End If

Set rs = Nothing
If rs.State = adStateOpen Then rs.Close

Call deltxt
Call FillList
=====================================================================

بالنسبة للكود دة اخى الكريم

بيحفظ عادى مفيش اى مشكلة لكن عند التعديل على حقل name بيظهرلى الرسالة ومش بيعدل

===================================================================================

كود الحفظ والتعديل معاً ( في حالة لم يجد السجل يقوم بالحفظ وفي حالة وجد السجل يقوم بالتعديل عليه )

نحن وضعنا الشرط هنا 

rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

from a4 = اي الجدول المسمى a4

where name='" & Text1.Text & "'"    ( بشرط اذا تساوى النص الموجود في تكست1 مع الحقل المسمى بـ name

If Text1.Text = "" Or Text2.Text = "" Then
MsgBox "يجب كتابة الاسم والعنوان على الاقل ", vbCritical, "تنبيــه"
Exit Sub
End If

If rs.State = adStateOpen Then rs.Close
rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

If rs.EOF = True Then   ' هنا في حالة لم يجد الشرط المطلوب في جملة فتح الجدول
rs.AddNew  'هنا اضافة سجل جديد

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text


rs.Update  ' حفظ السجل

MsgBox ("تم حفظ السجل بنجاح"), 64, ("Program")

Else  ' أو تعديل على نفس السجل بدون اضافة سجل جديد

rs!Name = Text1.Text
rs!address = Text2.Text
rs!about = Text3.Text
rs!religion = Combo2.Text
rs!phone = Text4.Text
rs!From = Combo1.Text
rs!mob = Text5.Text
rs!email = Text6.Text

rs.Update

MsgBox ("تم تعديل السجل بنجاح"), 64, ("Program")
End If

Set rs = Nothing
If rs.State = adStateOpen Then rs.Close

Call deltxt
Call FillList

بالنسبة للكود التعديل والحفظ مع بعض نفس الشمكلة مش بيعدل على name ويعمل اضافة

مش عارفة فين المشكلة بجد

انا اسفة اخى الكريم ممكن يكون العيب فيا انا ,, يا ريت تقدر توضحلى اكتر

#7

انا فاهم عليك ولكن انتي مش فاهمة عليه

احنا وضعنا في جملة فتح الجدول شرط ماهو الشرط :

الاسم يتساوى مع النص الموجود في تكست1

لو وجد السجل يقوم بالتعديل

لو السجل غير موجود يقوم بحفظ السجل كسجل جديد

والسيناريو اللي حضرتك تعمليه هو كالتالي مثال :

لدينا سجل بأسم احمد

عند عرض السجل في التكستات اذا قمنا بتعديل بيانات السجل الآخرى غير الأسم فأنه سيقوم بتعديلها طبيعي

أما لو قمنا بتغيير احمد إلى محمود ،،،، وقمنا بالتعديل فأنه سيقوم بإضافة سجل جديد بإسم محمود

والسجل القديم بأسم احمد كما هو والسبب :::::: لأنه لم يجد سجل بأسم محمود لكي يقوم بالتعديل عليه

#8

طيب ايه العمل ؟

#9

اخى انا لقيت حل بس ناقص

انا غيرت

rs.Open "select * from a4 where name='" & Text1.Text & "'", db, 1, 2

الى

rs.open "a4",db,1,2

وحطين label

وحطيت شرط if label6.visbal=false then

يعمل اضافة

else

بيعمل تعدبل

ونججت الطريقة والحمد لله واقدرت اعدل على كل السجلات

لكن

لم تنجع الفكرة فى اليست التانية

؟؟؟؟؟؟؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة سلمى محمد في 22 أبريل 2012 في 13:46

مواضيع مشابهة