تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
أريد كود اذا عدل المستخدم بنفسه فى ال txtFields
#1
أريد كود لاظهار الزرين cmdUpdate و cmdCancle اذا عدل المستخدم بنفسه فى ال txtFields

كتبت هذا الكود فوجدته يظهرهما فعلآ عند تعديل المستخدم فى ال txtFields
ولكنه يظهرهما أيضآ عند التنقل بين السجلات (أى عند الضغط على ال Adodc1)
PHP كود :
Private Sub txtFields_Change(Index As Integer)
  
cmdCancle.Visible False
  cmdUpdate
.Visible False
End Sub 
ولكم ألف شكر
الرد }}}
تم الشكر بواسطة:
#2
حاولت محاولة أخرى وهى وضع متغير يدل على تنقل ال Adodc1 بين السجلات فوضعت متغيراسمهmovv وكتبت الكود
PHP كود :
Dim movv As Boolean

Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnumadStatus As ADODB.EventStatusEnumByVal pRecordset As ADODB.Recordset)
movv True
End Sub

Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnumByVal pError As ADODB.ERRORadStatus As ADODB.EventStatusEnumByVal pRecordset As ADODB.Recordset)
movv False
  Adodc1
.Caption "Record: " CStr(Adodc1.Recordset.AbsolutePosition)
End Sub

Private Sub txtFields_Change(Index As Integer)
  If 
movv True Then GoTo 100
  cmdCancle
.Visible False
  CMDUpdate
.Visible False
100 End Sub 
كتبته ظنآ منى ان تسلسل الأحداث هوAdodc1_WillMove
ثم txtFields_Change
ثم Adodc1_MoveComplete
ولكن لم يفلح الكود لأن تسلسل الأحداث كان غير ذلك
الرد }}}
تم الشكر بواسطة:
#3
السلام عليكم...

ليس لدي VB الآن، و لكن أعتقد أن التعديلات التالية قد تفي بالغرض:
1. اترك كود الحدث WillMove كما هو.
2. احذف جملة movv = False من الحدث MoveComplete.
3. كود الحدث Change لمربعات النص يكو كالتالي:
كود :
If movv Then
    movv = False
Else
    cmdCancel.Visible = True
    cmdUpdate.Visible = True
End If

* حتى لو نجح هذا الكود - و أرجو أن ينجح - فإن هناك اعتبار آخر. فالحدث WillMove لا يحدث فقط عند الانتقال من سجل إلى آخر عن طريق الـ ADO Control أو بأوامر مثل MoveNext أو MoveLast، و إنما أبضاً عند إضافة سجل جديد (الانتقال إلى السجل الجديد) أو عند الحذف (الانتقال إلى السجل التالي عير المحذوف). و لهذا أعتقد أن عليك التعامل مع البارامتر adReason في الحدث WillMove حيث يبين هذا البارامتر سبب الانتقال إلى سجل آخر.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:
#4
لم[SIZE=1] ينجح هذا الكود
يا أستاذنا الكبير[/SIZE]
الرد }}}
تم الشكر بواسطة:
#5
إقتباس :أريد كود لاظهار الزرين cmdUpdate و cmdCancle اذا عدل المستخدم بنفسه فى ال txtFields
أليس لهذا الموضوع حل؟
ان لم يكن هناك حل لاظهار الزرين cmdUpdate و cmdCancle اذا عدل المستخدم بنفسه فى ال txtFields
فأخبرونى كيف تتعاملون فى برامجكم مع تعديلات المستخدم؟

أريد
أى طريقة :confused: أسمح بها للمستخدم بتعديل بياناته فى قاعدة البيانات

ولكم ألف شكر
الرد }}}
تم الشكر بواسطة:
#6
السلام عليكم

- طبعاً في البداية أكيد يوجد لكل مستخدم إسم وكلمة سر خاصه به تميزه عن غيره يدخل بها إلى البرنامج , فإذاً على ما أعتقد الشغله ستكون سهله أضف حقل في الجدول التي تعرض منه البيانات أو المخزنه فيه البيانات التي تعرض في التكستات وليكن لإسم المستخدم الذي عدل آخر تعديل , وعندما تتغيير البيانات في الtxtFlelds إستخدم كود للإستعلام عن الحقل الخاص بإسم المستخدم الذي عدل آخر تعديل إن كان مطابق لإسم المستخدم الذي هو مسجل الدخول في البرنامج أظهر الأزرار وإن كان الحقل فارغ أو غير مطابق فقم بإخفائها أو إلغاء تفعيلها , طبعاً ضع كود الإستعلام في حدث الـ Change لل الtxtFlelds بشرط أن يكون هناك تكست منها يحمل قيم غير قابله للتكرار كرقم ID مثلاً وإن لم يكن هناك مثل هذا التكست قم بإنشاء حقل في الجدول رقمي مثلاُ تسلسلي غير قابل للتكرار في بياناته وضع التكست الذي الخاص به مخفي مش شرط يكون ظاهر دعه فقط لكي تستفيد منه في الإستعلام . أرجوا أن تكون وصلت لك الفكرة .

- تحياتي .
الرد }}}
تم الشكر بواسطة:
#7
جزاك الله خيرآ
على ما فهمت منك ان هذين الزرين سيظهران فى بداية البرنامج
بمجرد التحقق من أن الحقل الخاص بإسم المستخدم الذي عدل آخر تعديل مطابق لإسم المستخدم الذي هو مسجل الدخول في البرنامج
ولكنى أريد ألا يظهر أى من الزرين الا اذا عدل المستخدم بنفسه فى ال txtFields
أما ان كان المستخدم يتصفح السجلات او يبحث عن شئ معين أو.........فلا داعى لوجود هذين الزرين

دعك من موضوع إسم المستخدم وكلمة السر الخاصه به وحاول أن تعطينى حلآ لسؤالى الأصلى
وشكرآ
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم

- في البداية يجب أن يكون هناك بيانات أو حقل مربوط بالمستخدم أو بيانات تكون خاصة بالمستخدم لكي نقدر نعرف عند التنقل بين السجلات أن السجل الحالي المنتقل اليه أو منه هو له علاقة بهذا المستخدم بعدها نقدر نفحص أو نستعلم عن القيمة التي في الحقل الخاص بإسم آخر من عدل على هذا السجل لأنه لو كان ليس له أي علاقة بهذا السجل فلايتم أصلاً الإستعلام ولايتم إظهار الزرين فلذلك بعد التعرف على السجل أنه له علاقة بهذا المستخدم وأن قيمة الحقل الخاص بإسم آخر من عدل تكون فارغه أو كانت القيمة أو الإسم مطابقه للمستخدم المسجل الدخول فيتم في كلا الحالتين إظهار الزرين . وكود الإستعلام يكون في حدث ال Change للتكستات .

- تحياتي .
الرد }}}
تم الشكر بواسطة:
#9
اعتبر أن الجهاز لا يستخدمه سوى فرد واحد
إقتباس :دعك من موضوع إسم المستخدم وكلمة السر الخاصه به وحاول أن تعطينى حلآ لسؤالى الأصلى
وشكرآ
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم

- يبدو أني لم أفهم ماتريد بالضبط في البداية ، والآن أعتقد أني فهمت أنك تقصد بالمستخدم للبرنامج هو الشخص الذي شغل البرنامج ويعمل عليه وتريد أنه إذا حصل تغيير في النصوص الموجودة في التكستات يتم إظهار الزرين وإذا إنتقل للسجل التالي أو السابق يتم إخفاء الزرين ، إذا كان فهمي صحيح ، فالحل هو أن يكون في جدول البيانات حقل تسلسلي رقمي لايقبل التكرار وضع تكست لهذا الحقل وهذا التكست يكون مخفي إذا لاتحتاجه وليكن إسم هذا التكست txtID ، ثم قم بإدراج تكست بوكس جديد وليكن إسمه Text1 هذا التكست لكي نضع فيه الرقم التسلسلي للسجل الحالي الذي تم تغييره أو تعديله ، ثم إستخدم هذا الكود :-

كود :
Private Sub txtFields_Change(Index As Integer)
IF Val(Trim(txtID.Text)) <> Val(Trim(Text1.Text)) Then
cmdCancle.Visible = False
CMDUpdate.Visible = False
Text1.Text = ""
End IF
End Sub

Private Sub txtFields_KeyPress(Index As Integer , KeyAscii As Integer)
Text1.Text = Trim(txtID.Text)
cmdCancle.Visible = True
CMDUpdate.Visible = True
End Sub

- تحياتي .
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم