اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

وعليكم السلام:smile:

 

تفضل:smile:

Private Sub cmd_Select_All_Click()

'1
'   Dim rst As DAO.Recordset
'   Set rst = Me.RecordsetClone
'   rst.MoveLast: rst.MoveFirst
'   RC = rst.RecordCount
'
'    For i = 1 To RC
'        rst.Edit
'            rst!done = Not rst!done
'        rst.Update
'
'        rst.MoveNext
'    Next i
'
'    rst.Close: Set rst = Nothing
     
'2
    CurrentDb.Execute ("UPDATE fatora SET done =" & Not Me.done)
    Me.Requery
End Sub

.

جعفر

 

تم تعديل بواسطه jjafferr
تم إضافة طريقة ثانية ايضا
  • Like 3
  • Thanks 2
قام بنشر

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

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

الكود الذي كتبته أستاذي يقوم بتحديد الخانة الغير محددة و نزع التحديد عن الخانة محددة

لقد أضفت تعديل بسيط ليقوم الكود بتحديد كامل الخانات أو إزالة التحديد من جميع الخانات كما طلب السائل.

Dim f As String
Dim rst As DAO.Recordset
    Set rst = Me.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    f = rst!done
    For i = 1 To RC
     If f = "true" Then
        rst.Edit
        rst!done = False
        rst.Update
     Else
        rst.Edit
        rst!done = True
        rst.Update
     End If
        
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing

 

Selection.rar

  • Like 4
  • Thanks 1
قام بنشر
27 دقائق مضت, صالح حمادي said:

لقد أضفت تعديل بسيط ليقوم الكود بتحديد كامل الخانات أو إزالة التحديد من جميع الخانات كما طلب السائل.

التعديل جميل:smile:

 

ايش رايك نقلل الكود الذي وضعته انت ، بواسطة الامر Not ، ومعناه ، غيّر القيمة الحالية الى القيمة التي ليست فيه:

Dim f As Boolean
Dim rst As DAO.Recordset
    Set rst = Me.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    f = rst!done
    
    For i = 1 To RC
        rst.Edit
        rst!done = Not f
        rst.Update
        
        rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
    
End Sub

.

جعفر

30 دقائق مضت, صالح حمادي said:

الكود الذي كتبته أستاذي يقوم بتحديد الخانة الغير محددة و نزع التحديد عن الخانة محددة

ونعم كنت على علم بهذا ، ولكني كنت اعتقد بأن المبرمج كان سيقفل على المستخدمين تغيير الحقل يدويا ، وبالتالي تكون المشكلة تم حلها:smile:

 

ولكن ، وحتى بالحليين (الحل الثاني الذي تركته انا في الكود الاصلي) ، وحتى الطريقة التي تفضلت بها انت ، فنحن نعتمد على قيمة اول حقل ، وربما لم يكون صحيحا ، لذا سيضطر المستخدم الى الضغط على زر التغيير مرتين (بعض الاوقات للحصول على القيمة الصحيحة):smile:

 

جعفر

  • Like 4
  • Thanks 1
قام بنشر
منذ ساعه, jjafferr said:

CurrentDb.Execute ("UPDATE fatora SET done =" & Not Me.done)
Me.Requery

الله يرضى عليك استاذي جعفر 
هل اكو شي اجمل من هذا الكود اوبدات 
يعمل بسرعة اكبر

 

  • Like 3
قام بنشر
2 دقائق مضت, Shivan Rekany said:

يعمل بسرعة اكبر

حيا الله اخوي شفان:smile:

 

للعلم ، وهذا الكود كذلك يعتمد على الامر Not:smile:

 

الشئ الذي يجب ان يكون على بالنا وقت المشاركة في اي من المواضيع:

هذا المنتدى للتعلّم وتعليم الاخرين ،

لذلك ، بعض الاوقات ترى اني اضع اكثر من طريقة لحل الموضوع ، وبعض الاوقات اضع توضيح لكل سطر ، وبعض الاوقات افكك الحل لأسطر اكثر حتى يكون سهل على الشباب تغييره لاحقا ، وبعض الاوقات تحذير عن الوقوع في خطأ:smile:

 

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

في اعتقادي ، مشاركة أكثر من شخص في الرد على السؤال ، هو فائدة للجميع ، فمنه نتعلم الطرق الاخرى للإجابة على السؤال ، ونتعلم خبايا البرمجة :rol:

 

فبمشاركة الاخ صالح ، اصبح هذا الموضوع اكثر اثراءً:smile:

 

جعفر

 

  • Like 4
  • Thanks 1
قام بنشر (معدل)
9 دقائق مضت, jjafferr said:

فبمشاركة الاخ صالح ، اصبح هذا الموضوع اكثر اثراءً:smile:

 

جعفر

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

تم تعديل بواسطه Shivan Rekany
  • Like 1
قام بنشر
4 دقائق مضت, Shivan Rekany said:

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

نعم انا فهمت قصدك من البداية ، شكرا:smile:

 

جعفر

  • Like 1
قام بنشر
34 دقائق مضت, الحســـام said:

فعلا الكود سريع جزاكم الله خيرا جميعا

كما قلت سابقا

برأيي هذا الكود احسن من الاخرين

قام بنشر

 

14 ساعات مضت, jjafferr said:

ايش رايك نقلل الكود الذي وضعته انت ، بواسطة الامر Not ، ومعناه ، غيّر القيمة الحالية الى القيمة التي ليست فيه:

فكرة أحلى

14 ساعات مضت, Shivan Rekany said:

CurrentDb.Execute ("UPDATE fatora SET done =" & Not Me.done)
Me.Requery

الكود يعمل جيدا شكرا

قام بنشر

الأستاذ صالح هل من الممكن جعل الكود يحدد السجلات في النموذج فقط لان الكود يحدد كل السجلات بما فيهم السجلات الغير ظاهرة في النموذج ؟؟

قام بنشر

وعليكم السلام

 

الكود السابق كان يستعمل سجلات الجدول fatora ،

بينما الكود التالي يستخدم سجلات مصدر النموذج ، والذي هو الاستعلام esfatora :

CurrentDb.Execute ("UPDATE esfatora SET done =" & Not Me.done)

 

جعفر

  • Like 1
قام بنشر

أستاذ جعفر شكرا على المساعدة

لا يعمل الكود على الاستعلام  عندى

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

 

قام بنشر

تفضل:smile:

 

الكود يشتغل ، بس بسبب انك كنت علامة صح بالكود القديم ، فالجدول كله عليه علامة صح ،

انا الغيت الصح من الجدول بالكامل ، وارفقت لك البرنامج بكود الاستعلام:smile:

 

 

جعفر

523.Selection.accdb.zip

  • Like 1
قام بنشر

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

واعتقد ان الحل لو الكود اشتغل على النموذج مش الاستعلام  :fff::fff:

قام بنشر
1 ساعه مضت, الحســـام said:

واعتقد ان الحل لو الكود اشتغل على النموذج مش الاستعلام

في هذه الحالة يجب ان تستعمل الطريقة رقم 1 في اول مشاركة لي:smile:

 

جعفر

قام بنشر
في ٤‏/١‏/٢٠١٧ at 17:28, jjafferr said:

rivate Sub cmd_Select_All_Click() '1 ' Dim rst As DAO.Recordset ' Set rst = Me.RecordsetClone ' rst.MoveLast: rst.MoveFirst ' RC = rst.RecordCount ' ' For i = 1 To RC ' rst.Edit ' rst!done = Not rst!done ' rst.Update ' ' rst.MoveNext ' Next i ' ' rst.Close: Set rst = Nothing

قصد حضرتك الكود دا ؟

طيب مفيش حل يكون سريع

قام بنشر
1 دقيقه مضت, الحســـام said:

1. قصد حضرتك الكود دا ؟

2. طيب مفيش حل يكون سريع

1. نعم :smile:

2. نعم ، حل الاستعلام اللي ما اشتغل عندك:blink:

طيب ، ممكن تخبرني ما هو مصدر النموذج ؟

 

جعفر

قام بنشر
7 ساعات مضت, الحســـام said:

لا يعمل الكود على الاستعلام  عندى

طيب ممكن توضح اكثر ، ماذا يحدث لما تشغل الكود الذي يشتغل على الاستعلام ، وبالتفصيل؟

 

جعفر

بدل الكود السابق ، استعمل هذا الكود ، واخبرني الخطأ الذي يعطيك:

docmd.runsql ("UPDATE esfatora SET done =" & Not Me.done)

 

جعفر

قام بنشر
3 دقائق مضت, الحســـام said:

تمام الله ينور يا استاذ جعفر شغال مية مية

بس ممكن اعرف الخلل كان فى اية ؟

الحمدلله:smile:

بعض الاوقات الامر currentdb.execute ما يشتغل لسبب او آخر ،

وهو يعمل عمل مجموعة مختلفة من اوامر تشغيل الاستعلامات ، ولكنه يعمل ولا يخبرك اذا كان في اخطاء في الاستعلام ،

بينما الامر الآخر docmd.runsql او docmd.openquery ، فانها تخبرك اذا في خطأ ، وتعطيك رسائل التحذير ايضا ، والتي يجب ان نتغلب عليها ، هكذا:

 

docmd.setwarnings false
docmd.runsql ("UPDATE esfatora SET done =" & Not Me.done)
docmd.setwarnings true

 

جعفر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information