اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم 
كيف أمنع التحديد المتعدد في خانة مربع الاختيار؟

وشكرا لكم

قام بنشر
  في 26‏/1‏/2025 at 21:32, abofayez1 said:

السلام عليكم 

Expand  

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

هل لك أن توضح أكثر مطلبك !؟!؟

هل تقصد الـ Checkbox ؟؟؟؟؟؟؟؟؟؟

ارفق مثال لتتوضح فكرتك وهدفك

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

تفضل استاذ @abofayez1

Private Sub y_n_AfterUpdate()
    If Me.y_n.Value = True Then
        Dim strSQL As String
        strSQL = "UPDATE a SET y_n = False WHERE ID <> " & Me.id
        CurrentDb.Execute strSQL, dbFailOnError
        Me.Requery
    End If
End Sub

 

aa-1.accdbFetching info...

تم تعديل بواسطه kkhalifa1960
  • Thanks 1
قام بنشر

أشكرك أخي kkhalifa1960

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

  • تمت الإجابة
قام بنشر
  في 27‏/1‏/2025 at 12:11, abofayez1 said:

لم يعمل الكود الذي تفضلت بإضافته.... حيث يمكن تحديد اكثر من خيار في وقت واحد

Expand  

يعمل عندي 100%100

يمكن جربت ملف آخر بداله جرب الكود في حدث كليك  y_n


CurrentDb.Execute ("UPDATE a SET a.y_n=false")
DoCmd.RunCommand acCmdSaveRecord

 

  • Thanks 1
قام بنشر

بيض الله وجهك... وجزاك خير الجزاء

الكود الأخير عمل بامتياز

شكرا لك

  • Thanks 1
قام بنشر

السلام عليكم

 

اجابات الشباب كانت تغير القيم في الجدول ،

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

 

طريقة العمل:

في النموذج اعمل حقل مخفي اسمه myID ،

ثم نعمل حدثين على الحقل y_n :

قبل التحديث: يتأكد انك اخترت صح ، وانك على سجل غير السجل السابق ،

                  فعليه ، يغير قيمة الصح من السجل السابق (ID  السجل موجود في myID) ، الى 0
بعد التحديث: نعطي رقم ID  السجل للحقل myID

Private Sub y_n_BeforeUpdate(Cancel As Integer)
    
    If Me.y_n = -1 And Me.id <> Me.myID Then
        '- y_n checked, and Record ID <> myID
        
        With Me.RecordsetClone
            .FindFirst "[ID]=" & Me.myID
            .Edit
                !y_n = 0
            .Update
        End With
        
    End If
  
  End Sub
  
  
  
  
  Private Sub y_n_AfterUpdate()

    Me.myID = Me.id
  End Sub

.

1622.gif.d3c959564ea464d016ca65ae58b17ace.gif

 

 

1622.aa.accdb.zipFetching info...

  • Thanks 1
قام بنشر

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

جزاك الله خيرا ... ورحمك الله ووالديك أخوي jjafferr

فعلا حل إبداعي ومميز ... عمل بامتياز

شكرا لك

  • jjafferr changed the title to منع التحديد المتعدد في خانة مربع الاختيار، في النموذج المستمر
قام بنشر
  في 27‏/1‏/2025 at 16:05, jjafferr said:

في النموذج اعمل حقل مخفي اسمه myID ،

ثم نعمل حدثين على الحقل y_n :

Expand  

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

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

املاه اخونا الشايب

 

الشايب529.gif

قام بنشر

أخوي الشايب

لحل هذه المشكلة أضفت كود عند فتح النموذج يتم تفريغ مربعات الاختيار ... فاحتلت كل المشكلة التي  ذكرتها

قام بنشر

اهلا بالشايب الخبير 🙂

  في 27‏/1‏/2025 at 17:38, شايب said:

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

Expand  

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


Private Sub Form_Load()

    '- Find the Checked y_n field
    Me.y_n.SetFocus
    DoCmd.FindRecord "-1", , , , , , True
    Me.myID = Me.id
    
End Sub

.

 

اما النقطة الثانية ، فالمفروض ان يتم تغيير البيانات من النموذج فقط ، وإلا ، فيجب تحدبث الجدول (سيكون اسرع من تحديث آلاف السجلات في النموذج)

  • Thanks 1
قام بنشر
  في 27‏/1‏/2025 at 20:06, jjafferr said:

وإلا ، فيجب تحدبث الجدول (سيكون اسرع من تحديث آلاف السجلات في النموذج)

Expand  

هذا قابلة اهتمام أكثر بنسبتة لي

  في 27‏/1‏/2025 at 20:06, jjafferr said:

اما النقطة الثانية ، فالمفروض ان يتم تغيير البيانات من النموذج فقط

Expand  

هذا كود بطريقة ثانية (في حدث واحد فقط و بدون اضافة كائنات اخرى)

Dim RecNum As Integer
RecNum = CurrentRecord
DoCmd.SearchForRecord , , acFirst, "y_n=true": y_n = False
DoCmd.SearchForRecord , , acLast, "y_n=true": y_n = False
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acGoTo, RecNum: y_n = True

aa.accdbFetching info...

قام بنشر
  في 27‏/1‏/2025 at 19:51, abofayez1 said:

أخوي الشايب

لحل هذه المشكلة أضفت كود عند فتح النموذج يتم تفريغ مربعات الاختيار ... فاحتلت كل المشكلة التي  ذكرتها

Expand  

احسنت بارك الله فيك

  في 27‏/1‏/2025 at 20:06, jjafferr said:

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

Expand  

يا ابا عبد الله احسنت فزد

ويمكن ايضا الاستغناء عن مريع النص الغير منضم

واستبداله بمتغير عام حينها سيتم خفظ قيمة id في المتغير حتى لو اغلقنا النموذج واعدنا فتحه

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

الشايب

 

قام بنشر
  في 28‏/1‏/2025 at 04:43, ابو عارف said:

هذا كود بطريقة ثانية (في حدث واحد فقط و بدون اضافة كائنات اخرى)

Expand  

هنا بالنسبة للنقطة الثانية 👇

  في 27‏/1‏/2025 at 17:38, شايب said:

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

Expand  

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

طبعا ممكن حل هذه المشكلات ولكن النقاش مع الاساتذه اكثر فائدة ومتعه

اخونا الشايب

 

الشايب540.gif

قام بنشر
  في 28‏/1‏/2025 at 04:43, ابو عارف said:

في حدث واحد فقط و بدون اضافة كائنات اخرى

Expand  

احسنت اخوي ابو عارف

بس ياريت تحل الخطأ:
اختار صح في آخر سجل ، ثم روح لأول سجل واعمل صح ، بتحصل على خطأ.

 

  في 28‏/1‏/2025 at 06:36, شايب said:

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

Expand  

يحتاج لها مزاج 🙂

قام بنشر

في هذا الموضوع ، اتضح جليا ان مقولتي صحيحة (للعلم ، اخونا العود @ابوخليل هو الذي صحح واخرج هذه الجملة بهذه الديباجة الجميلة ، شكرا لك 🙂 ) :

  اقتباس

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

Expand  

 

 

  في 28‏/1‏/2025 at 04:43, ابو عارف said:

في حدث واحد فقط و بدون اضافة كائنات اخرى

Expand  

 

ولا يهمك ، وهاي طريقة بحدث واحد فقط


Private Sub y_n_BeforeUpdate(Cancel As Integer)

    '- اشارة الى سجلات النموذج
    With Me.RecordsetClone
    
        '- حذف الصح السابق
        .FindFirst "[y_n]=-1"
        .Edit
            !y_n = 0
        .Update
    
    End With
    
End Sub

.

 

  في 28‏/1‏/2025 at 06:36, شايب said:

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

طبعا ممكن حل هذه المشكلات ولكن النقاش مع الاساتذه اكثر فائدة ومتعه

Expand  

ولا يزال قيد التجربة 🙂

قام بنشر
  في 28‏/1‏/2025 at 06:36, شايب said:

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

2. طبعا ممكن حل هذه المشكلات ولكن النقاش مع الاساتذه اكثر فائدة ومتعه

Expand  

1.

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

للعلم ، عند تقديمي لإقتراح ، فانا انظر لقاعدة البيانات وكأن بها على الاقل 10,000 سجل.

 

2.

في انتظار مشاركتك

قام بنشر
  في 28‏/1‏/2025 at 08:01, jjafferr said:

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

Expand  

الحقيقة انك صرحت بما في نفسي تمام

ولكني تعمدت عدم ذكره لغرض الحصول على اكثر من فكره

  في 28‏/1‏/2025 at 08:01, jjafferr said:

2.

في انتظار مشاركتك

Expand  

بكل امانة قبل مشاركة الاساتذة جربت طريقتين

  • التعامل مع مصدر السجلات في الجدول
  • استعلام مشابه لعمل الاستاذ ابو عارف وعمل بشكل ممتاز واعتقد هو الافضل والاسهل

اما بشأن 👇

  في 28‏/1‏/2025 at 06:36, شايب said:

طبعا ممكن حل هذه المشكلات

Expand  

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

اخيرا مشاركتك الاخير تؤدي المطلوب

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

وانا اعلم كما اشرتم 👇

  في 27‏/1‏/2025 at 20:06, jjafferr said:

فالمفروض ان يتم تغيير البيانات من النموذج فقط

Expand  

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

الشايب

 

  • Like 1
قام بنشر (معدل)
  في 28‏/1‏/2025 at 06:36, شايب said:

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

Expand  

نظرا لوجهة نظر الاستاذ/جعفر  حاليا نتعامل مع نموذج فقط و في مشاركتي القامة سنعالج تلك الخطاء ان شاء الله

  في 28‏/1‏/2025 at 06:57, jjafferr said:

اختار صح في آخر سجل ، ثم روح لأول سجل واعمل صح ، بتحصل على خطأ.

Expand  

أخي حعفر ربما تقصد سجل جديد لا سجل الأخير ، في العادة نستخدم اختيار صح/خطاء لسجلات موجودة مسبقا لا لجديدة ولكن لانستبعد ان مستخدم يقوم  وضع  العلامة بالخطاء، و لتخطي تلك الخطاء التعديل في مرفق

aa.accdbFetching info...

 

تم تعديل بواسطه ابو عارف
قام بنشر
  في 28‏/1‏/2025 at 10:56, ابو عارف said:

أخي حعفر ربما تقصد سجل جديد لا سجل الأخير

Expand  

لا ، هو السجل الاخير ، ثم عمل الصح في السجل الاول:

1622_error.gif.00faea7232dade9069060ea426228c7e.gif

 

 

واشوف انك تداركت الخطأ في النسخة الاخيرة 🙂

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