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

[تمت الإجابة]كيف يعرف البرنامج هل تم التعديل على البيانات أو لم يتغير شيء ؟

بدأه فتى الوادي في 21 نوفمبر 2010 · 20 رد · 1,730 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي نموذج للتعديل على البيانات ,,,

لكن أريد أن يعرف البرنامج عند ضغط زر (حفظ التعديل ) إذا أختلف شيء من البيانات يتم الحفظ ...

وإذا لم يختلف شيء من البيانات تظهر رسالة بأنه لم يتم إجراء أية تغيرات .

شكرا لكم .

mk17481_26bccea871.gif
#2

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

تستطيع عمل ذلك من خلال هذه الطريقة ...

لنفترض ان لدينا هذا الجدول

post-139265-096253300 1290416085_thumb.p

لاحظ استخدمنا انواع مختلفة من البيانات

1- في نموذج عرض وادخال البيانات وفي أعلى صفحة الاجراء نعرف متغيرات باسماء حقول المراد التدقيق عليها ونضيف اليها old لكل اسم حقل كتعريف

Dim OldINdate As Date
Dim Oldsal As String
Dim Oldemp_name, OldTax1 As String

2- في حدث عند الحالي نستعمل الاكواد التالية لحفظ قيمة البيانات لحظة عرضها على النموذج لاستخدامها في عملية التدقيق فيما بعد.

Private Sub Form_Current()
On Error Resume Next
Call glrEnableButtons([Form])
Oldemp_name = Me!emp_name
Oldsal = Me!sal
OldTax1 = Me!Tax1
OldINdate = Me!INDate
End Sub

3-وعند الحفظ او الانتقال الى سجل جديد سوف نطلب الاجراء التالي الذي يقوم بالتدقيق على الحقول المعدلة فإذا كان أحد الحقول معدل سوف يظهر رسالة تفيد بحفظ أو عدم حفظ السجل الحالي اذا نعم سيحفظ السجل الحالي بدون أي أجراء واذا لا سيقوم بتنفيذ الأمر Undo للتراجع عن الحفظ .

Private Sub UpdateData()
On Error Resume Next

    If Oldemp_name <> Nz(Me!emp_name) Then GoTo prag1
    If Oldsal <> Nz(Me!sal) Then GoTo prag1
    If OldTax1 <> Nz(Me!Tax1) Then GoTo prag1
    If OldINdate <> Nz(Me!INDate) Then GoTo prag1

      Exit Sub
prag1:
   If MsgBox("áÞÏ Êã ÊÍÏíË ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÍÝÙ ÇáÊÍÏíËÇÊ", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
   DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

    Else

    End If

End Sub

استعملنا الدالة nz للسيطرة على الكود عندما تكون قيمة الحقل فراغ أو عند الغاء قيمة الحقل .

4- عند الانتقال من سجل الى آخر نطلب اسم الاجراء السابق شرحه في البند رقم 3

UpdateData

ارجو أن تكون الفكرة مناسبة لك ، وبالتأكيد هناك طرق أخرى ولكن هذا ما استطعت أن أفيدك به .

الكود واضح وسهل ولكني أحببت شرحه لأخواني المبتدئين أمثالي ..

تحياتي ..

msak_UpdateRecord.rar

المرفقات
22.png

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 22 نوفمبر 2010 في 12:43

1
27169617.gif
#3

بارك الله فيك وفي علمك ونفع الله بك ...

استخدمت طريقة اخرى بسيطة ومفيدة وأدت الغرض المنشود .. وهي وضعت مربعات نص تقرأ من السجل نفسه ..

وعند ضغط زر حفظ التعديل يعمل مقارنة إذا الحقول هذه تساوي الحقول الأصلية أو لا

فإذا الحقول متساوية معناته أنه لم يدث أي تغيير .. وغذا أحد الحقول مختلف فهذا يعني انه حدث تغيير .

ومن له حيلة فليحتل .

شكرا لك مجدد .

1
mk17481_26bccea871.gif
#4

بارك الله فيكم وجزاكم الله خير

فكره رائعه جدا

اخي فتى الوادي

هل بالامكان انك تضع لنا مثال بالفكره اللي سويتها

حتى تعم الفائده

وفقك الله ونفع بعلمك

شكرا

اتق الله حيث ماكنت

#5
فتى الوادي كتب:

بارك الله فيك وفي علمك ونفع الله بك ...

استخدمت طريقة اخرى بسيطة ومفيدة وأدت الغرض المنشود .. وهي وضعت مربعات نص تقرأ من السجل نفسه ..

وعند ضغط زر حفظ التعديل يعمل مقارنة إذا الحقول هذه تساوي الحقول الأصلية أو لا

فإذا الحقول متساوية معناته أنه لم يدث أي تغيير .. وغذا أحد الحقول مختلف فهذا يعني انه حدث تغيير .

ومن له حيلة فليحتل .

شكرا لك مجدد .

وبك أخي الكريم .. جزاك الله خير ...

يا سيدي الحمد لله تم لك ما أردت بصورة أو بأخرى ..

وكما قلت ... ومن له حيلة فليحتل....فالأحتيال هنا مشروع :wink:

أخي الفاضل at-aziz الأخ الكريم فتى الوادي طبق نفس الطريقة ولكن عوض البند رقم 1 في مثالي فقد عرف مربعات نص في النموذج بنفس الاسماء فقط لا غير .

هذا ما فهمته منه ..واذا أحب التكرم بإرفاق مثاله فهذا كرم منه لتعم الفائدة على الجميع .

تحياتي ..

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 22 نوفمبر 2010 في 14:32

27169617.gif
#6

ماشاء الله ابو عدنان

وحيله جميله من فتى الوادى

وجزاكم الله كل خير على هذه المعلومات الجميله تمنيات لكم بالتوفيق ولكم منى +1

تم تعديل هذه المشاركة بواسطة طالب علم مبتدىء في 22 نوفمبر 2010 في 18:29

1
#7
طالب علم مبتدىء كتب:

ماشاء الله ابو عدنان

وحيله جميله من فتى الوادى

وجزاكم الله كل خير على هذه المعلومات الجميله تمنيات لكم بالتوفيق ولكم منى +1

جزاك الله خير أخي العزيز أحمد .... لم نقدم شئ الى حد الآن يليق بما تعلمناه من هذا المنتدى للأسف :blush: ...

بارك الله بك على هذا التواصل +

تحياتي

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 22 نوفمبر 2010 في 22:38

27169617.gif
#8

تواضع منك ياابو عدنان

جزاك الله كل خير ابو عدنان وزادك من العلم

تمنياتى لك وللجميع بالتوفيق ومزيد من التقدم وجعله الله فى خدمة المسلمين

#9

بارك الله فى جميع الاخوة

و بعد اذن الجميع

الموضوع ابسط من ذلك بكثير

هناك خاصية للنموذج هى dirty

و خاصية لعناصر التحكم هى oldvalue

يمكننا استخدامها لتحقيق المطلوب

و هذا الكود يوضح ذلك ارجو ان يكون به الفائدة

Sub DataEdits()

 If Me.Dirty Then
    Dim ctl As Control
        For Each ctl In Me.Controls
            'If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acCheckBox Then
               If ctl.Value <> ctl.OldValue Then DoCmd.RunCommand acCmdSaveRecord
            'End If
        Next ctl
    End If

End Sub

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 22 نوفمبر 2010 في 23:32

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#10

شكرا لك استاذنا أبا يوسف وبارك الله بك ..

طريقتك فعلا مختصرة ورائعة فقد قمت بتجربتها واستخدمت الخاصية dirty فقط في نفس المثال وتم بها عمل اللزم ..

جعلها الله في ميزان حسناتك ..

ولتسمح لي بتجربة بسيطة جدا نضيفها باستخدام OlDValue مع نظام المصفوفة .

والهدف من كل هذه الطرق تعليمي ،ربما أستفيد منها مع أخواني المبتدئين أمثالي لتعم الفائدة على الجميع ان شاء الله

لاستخدام الطريقة الثانية :

سنلغي البند رقم 1 .

سنلغي البند 2 .

سنغير البند 3 فقط

Private Sub UpdateData()
On Error Resume Next
    Dim MsField(4) As String
    Dim MsText(4) As String
    Dim I As Integer
       MsField(0) = Me.ID.OlDValue
       MsField(1) = Me.emp_name.OlDValue
       MsField(2) = Me.INDate.OlDValue
       MsField(3) = Me.sal.OlDValue
       MsField(4) = Me.Tax1.OlDValue

       MsText(0) = Me.ID.Value
       MsText(1) = Me.emp_name.Value
       MsText(2) = Me.INDate.Value
       MsText(3) = Me.sal.Value
       MsText(4) = Me.Tax1.Value

       For I = 0 To 4
       If MsText(I) <> MsField(I) Then
       GoTo prag1
       End If
       Next I
       Exit Sub
prag1:

    If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
     DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

    Else

    End If

End Sub

MsField هي مصفوفة قيمة الحقول في السجل الحالي ومصدر بياناتها من الجدول بواسطة الأمر OlDValue .

MsText هي مصفوفة قيمة مربعات النص ومصدر بياناتها من مربعات النص للسجل الحالي

الكود واضح جدا ، هنا استخدمنا المصفوفتان لمقارنة التعديل الذي حدث في مربعات النص بالنموذج .

البند 4 لم يتغير به شئ.

ربما الطريقة طويلة حبتين مقارنة بطريقة أستاذنا أبو يوسف ولكن كل كود ربما له ظروفه عند استخدامه بمنطق البرنامج :wink:

مرفق المثال بعد التعديل كما تم شرحه

تحياتي ..

msak_UpdateRecord2.rar

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 23 نوفمبر 2010 في 10:46

27169617.gif
#11

بارك الله فيك وجزاك الله خير اخي الفاضل ابو عدنان

مثال رائع

وفقك الله ونفع بعلمك

اتق الله حيث ماكنت

#12

الاخوة المشرفين

الاخ ابو عدنان ...

اذا سمحت لي : لقد عدلت على مثالك بهذا الكود وجدته في احد الامثلة لاحد الاخوة

حيث 1- يظهر في الرسالة التغيير الذي احدثته

2- والاهم انه لاتضطر لاضافة اسماء الحقول في الكود ( ربما يكون هناك اكثر من عشرون حقل في النموذج كما هو عندي الان )

ارجو الاطلاع عليه ربما يحتاج الى تعديل او اضافة حسب طلب الاخ صاحب السؤال ،،

msak_UpdateRecord3.rar

2

سيد الاستغفار

{ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك وأنا على عهدك ووعدك ما استطعت أعوذ بك من شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت}

من قالها من النهار موقنا بها فمات من يومه قبل أن يمسي فهو من أهل الجنة ومن قالها من الليل وهو موقن بها فمات قبل أن يصبح فهو من أهل الجنة .رواه البخاري

#13
malik2010 كتب:

الاخوة المشرفين

الاخ ابو عدنان ...

اذا سمحت لي : لقد عدلت على مثالك بهذا الكود وجدته في احد الامثلة لاحد الاخوة

حيث 1- يظهر في الرسالة التغيير الذي احدثته

2- والاهم انه لاتضطر لاضافة اسماء الحقول في الكود ( ربما يكون هناك اكثر من عشرون حقل في النموذج كما هو عندي الان )

ارجو الاطلاع عليه ربما يحتاج الى تعديل او اضافة حسب طلب الاخ صاحب السؤال ،،

ما شاء الله عليك أخي مالك تعديل ممتاز بارك الله بك وتقريبا نفس فكرة أستاذنا أبو يوسف جزاه الله كل خير والشكر موصول لصاحب الفكرة بمثالك المرفق بارك الله بكم جميعا على هذا التواصل..

اقتباس
2- والاهم انه لاتضطر لاضافة اسماء الحقول في الكود ( ربما يكون هناك اكثر من عشرون حقل في النموذج كما هو عندي الان )

كلامك صحيح مئة بالمئة أخي الحبيب ولكن ربما أحيانا تحتاج الى التنبيه الى حقول معينة عند تعديلها أو اجراء آخر يتطلب ذلك فالطريقة الثانية تفي بهذا الغرض أما اذا كان المطلوب جميع الحقول فبالتأكيد هذه الطريقة أفضل :cool:

لنشرحها لتعم الفائدة :

نفس الاكواد بالمثال بالطريقة رقم 2 والتغيير بالند رقم 3 فقط.

Private Sub UpdateData()
 Dim ctlControl As Control
If Me.Dirty Then
For Each ctlControl In Me.Controls

If ctlControl.ControlType = acTextBox Then
If Nz(ctlControl.OldValue, "ÞíãÉ ÎÇáíÉ") <> Nz(ctlControl.Value, "ÞíãÉ ÎÇáíÉ") Then
strPrompt = strPrompt & "(" & Nz(ctlControl.OldValue, "ÞíãÉ ÎÇáíÉ") & ")" & " Åáì ÇáÞíãÉ " & "(" & Nz(ctlControl.Value, "ÞíãÉ ÎÇáíÉ") & ")" & vbCrLf
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End If
End If
Next ctlControl
 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
MsgBox "ÍÕá ÊÛííÑ Ýí ÇáÍÞá ÇáÊÇáí " & vbCrLf & strPrompt, vbInformation + vbMsgBoxRight, "ÊÛíÑ Ýí ÅÍÏì ÇáÍÞæá"
If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
   DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
    End If
Else
MsgBox "áã íÍÕá ÊÛííÑ !!", vbInformation + vbMsgBoxRight
End If
strPrompt = Empty
End Sub

بعد أذنك أخي مالك أجريت بعض التعديلات على الكود لعدم الحفظ الا بالموافقة من المستخدم ...

جزاك الله خير أخي مالك وإلى الأمام وأرجو أن نكون جميعا استفدنا من هذه التجربة ..++++

تحياتي ..

msak_UpdateRecord3.rar

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 23 نوفمبر 2010 في 14:23

1
27169617.gif
#14

حياك الله اخي ابو عدنان

تلميذك ..

سيد الاستغفار

{ اللهم أنت ربي لا إله إلا أنت خلقتني وأنا عبدك وأنا على عهدك ووعدك ما استطعت أعوذ بك من شر ما صنعت أبوء لك بنعمتك علي وأبوء لك بذنبي فاغفر لي فإنه لا يغفر الذنوب إلا أنت}

من قالها من النهار موقنا بها فمات من يومه قبل أن يمسي فهو من أهل الجنة ومن قالها من الليل وهو موقن بها فمات قبل أن يصبح فهو من أهل الجنة .رواه البخاري

#15

سلمت يداك استاذنا ابو عدنان

لكن كل ما اقصده هو الاقتصاد فى الكود

ما قمت به رائع و جميل و لكن ماذا لو لدينا عدداكبر من عناصر التحكم فى النموذج سيزداد الكود طولا بالطبع

لذلك سأعيد وضع الكود الذى تفضلت به ( بعد اذنك طبعا ) مع دمجه مع الكود الذى وضعته انا من قبل حتى يستفيد من يطلع على الكود بعد ذلك

Private Sub UpdateData()

On Error Resume Next
    If Me.Dirty Then
    Dim ctl As Control
        For Each ctl In Me.Controls
            If ctl.ControlType = acTextBox Then
               If ctl.Value <> ctl.OlDValue Then
                  GoTo myupdate
                   Exit Sub
                 End If
            End If
        Next ctl
    End If

 Exit Sub
myupdate:
     If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
     DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

    Else

    End If

End Sub

فقط التعديل على الاجراء updatedata و بدون اى تغييرات اخرى

استخدام الخاصية dirty هنا من الممكن الاستغناء عنها و لن يتأثر الكود نظريا فى أى شىء

و لكن وضعها هنا سيقلل من احتمالية حدوث بطأ فى النموذج اذا كان عدد العناصر كبير

لانك لم لم يحدث اى تعديل لن تكون مضطرا للمرور على كل العناصر لتحديد هل هناك تعديل بها ام لا

و بالتوفيق للجميع

1

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#16

يعطيكم العافية على هذا الأبداع ...

وفق الله الجميع لما يحبه ويرضاه ..

mk17481_26bccea871.gif
#17
Abo_Yossof كتب:
لكن كل ما اقصده هو الاقتصاد فى الكود

ما قمت به رائع و جميل و لكن ماذا لو لدينا عدداكبر من عناصر التحكم فى النموذج سيزداد الكود طولا بالطبع

شكرا أستاذنا أبا يوسف وبارك الله بك

- كان هذا ردي للاخ مالك على ما تفضلت به بالملاحظة الأولى

محمد أبو عدنان كتب:

كلامك صحيح مئة بالمئة أخي الحبيب ولكن ربما أحيانا تحتاج الى التنبيه الى حقول معينة عند تعديلها أو اجراء آخر يتطلب ذلك فالطريقة الثانية تفي بهذا الغرض أما اذا كان المطلوب جميع الحقول فبالتأكيد هذه الطريقة أفضل :cool:

فنحن نتعلم ونحاول وضع عدة حلول وكل واحد يأخذ الأمر الذي يناسبه بمنطق البرنامج هذا ما قصدته بالطرق المختلفة التي أقدمها.

Abo_Yossof كتب:

لذلك سأعيد وضع الكود الذى تفضلت به ( بعد اذنك طبعا ) مع دمجه مع الكود الذى وضعته انا من قبل حتى يستفيد من يطلع على الكود بعد ذلك

Private Sub UpdateData()

On Error Resume Next
    If Me.Dirty Then
    Dim ctl As Control
        For Each ctl In Me.Controls
            If ctl.ControlType = acTextBox Then
               If ctl.Value <> ctl.OlDValue Then
                  GoTo myupdate
                   Exit Sub
                 End If
            End If
        Next ctl
    End If

 Exit Sub
myupdate:
     If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
     DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

    Else

    End If

End Sub

بارك الله بك أخي أبا يوسف مجهود جميل وتشكر عليه وفي ملاحظتين لو سمحت لي طبعا

1- تعديل السطر التالي فقط

If Nz(ctl.Value) <> ctl.OlDValue Then

لانه يقبل الفراغ بالتعديل ودون تنبيه طبعا الموضع بسيط جدا.

أما باقي الكود فما شاء الله تعمل بشكل جيد.

2- أرى أختصار الكود الذي أرفقته الى ما يلي فالأمر Dirty يكفي لاتمام المهمة ولا داعي لبقية الأكواد .

If Me.Dirty Then

     If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
     DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
    End If
    End If

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

أخواني الأعزاء تم تطوير المثال على الشكل التالي :

1- لا حاجة الى أي أكواد في النموذج فقد تم تعريف أمر الفحص بالوحدة النمطية وتم اضافة الأمر مع أجراء المسمى basNavigate وهو الكونترول الخاص بالتنقل بيم السجلات

هذه هو الكود المضاف الى الوحدة النمطية

Function Up_Data(frm As Form)
On Error Resume Next
    If frm.Dirty Then
    If MsgBox("áÞÏ ÞãÊ ÈÊÚÏíá ÈÚÖ ÇáÈíÇäÇÊ åá ÊÑíÏ ÝÚáÇ ÍÝÙ ãÇ Êã ÊÚÏíáå..¿", vbMsgBoxRight + vbYesNo + vbDefaultButton2, "") = vbNo Then
     DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
    End If
    End If
  End Function

2- لتسطيع استخدام هذا المثال ببرنامجك فقط استورد الوحدة النمطية المرفقة الى برنامجك

ضع في مفتاح الحفظ أو في مفاتيح التنقل بين السجلات الأمر التالي

Call Up_Data([Form])

اذا لم ترغب باستخدام خاصية التدقيق على السجلات المحدثة فلا تضع الأمر السابق ويكفي أمر التنقل .

المثال الآن له وظيفتان بنفس الوقت التنقل بين السجلات مع كونترول بداية ونهاية السجل والتبيه على السجلات المحدثة اليس هذا اختصارا :wink: ..

أرجو أن أكون وفقت بتطوير المثال ..

مرفق المثال بعد التحديث

تحياتي للجميع

msak_UpdateRecord4.rar

27169617.gif
#18

تمام اخى الحبيب أبو عدنان

هكذا الموضوع اسهل عند استخدامه من قبل الاخوة

لكن فى ملاحظة على استخدام الخاصية dirty

لان استخدامها وحده سيجعلك تشغل الكود عند حدوث تعديل او محاولة للتعديل

بمعنى

اذا عدلت فى قيمة مربع النص و رجعت بعد ذلك الى القيمة القديمة ( الان انت لم تعدل شىء ) سيعتبر النموذج هذا تعديلا .

عموما سلمت يداك الاخوة الان امامهم الكثير من الخيارات

و كلا يختار ما يناسبه

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#19

بسم الله الرحمن الرحيم

بارك الله فيكم جميعا اخواني

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

#20
Abo_Yossof كتب:

اذا عدلت فى قيمة مربع النص و رجعت بعد ذلك الى القيمة القديمة ( الان انت لم تعدل شىء ) سيعتبر النموذج هذا تعديلا .

مشكور أخي ابو يوسف على المتابعة والمثال يعدل البيانات 100% بفعل التأكيد على الحفظ أو عدمه بارك الله بك .

شكرا أخي sx1 وان شاء الله راضي عنا هذه المرة ....سامحنا على التقصير .. :blush:

تحياتي ..

تم تعديل هذه المشاركة بواسطة محمد أبو عدنان في 24 نوفمبر 2010 في 12:10

27169617.gif

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