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

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

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

السلام عليكم

هذا نموذج يحتوي على عدد كبير من الأسماء به حقل اختيار  (نعم/لا)

المطلوب تكرماً إضافة إمكانية البحث فى حقل الأسم بالحروف الأولى

بحيث يجعل الاختيار سهلاً من خلال تقليص المعروض على النموذج

دون اللجوء  لتحريك الأسماء أعلى وأسفل من خلال مسطرة الإنزلاق

وإذا تم حذف كل السجلات لا تخرج رسالة خطأ عقب هذا الحذف

( Debug )

img?id=993633

مع جزيل الشكر مقدمأ

 

db1.mdbFetching info...

تم تعديل بواسطه أحمد العيسى
قام بنشر
  في 14‏/9‏/2024 at 07:51, أحمد العيسى said:

المطلوب تكرماً إضافة إمكانية البحث فى حقل الأسم بالحروف الأولى

Expand  

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

تم عمل نموذج فرعى حتى يتم البحث بالانزلاق 

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

db1.mdbFetching info...

  • Like 1
قام بنشر

شكراً لك

للأسف  ليس هو المطلوب

لا أريد نموذج فرعى ، كما أن كلمة  name  ليست كلمة محجوزة ولا تؤثر فى عمل المثال

البحث لم يتم تلقائياً بالحرف الأول ثم الثانى ثم الثالث من كتابة كلمة البحث كما أريد

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

قام بنشر
  في 14‏/9‏/2024 at 09:45, أحمد العيسى said:

لا أريد نموذج فرعى ، كما أن كلمة  name  ليست كلمة محجوزة ولا تؤثر فى عمل المثال

Expand  

هذا ما اعرفه ان النموذج الفرعى يسمح بالبحث بالانزلاق

 

  في 14‏/9‏/2024 at 09:45, أحمد العيسى said:

البحث لم يتم تلقائياً بالحرف الأول ثم الثانى ثم الثالث من كتابة كلمة البحث كما أريد

Expand  

انت غلطان البحث يتم تلقائيا بالحرف الاول ثم الثانى .... من كتابة كلمة البحث راجع المثال مرة اخرى

وعلى العموم هذا الحل الذى اعرفه ويمكن احد الاخوة هنا يعرف حل اخر

قام بنشر
  في 14‏/9‏/2024 at 09:45, أحمد العيسى said:

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

Expand  

هنا ما علاقة الحذف بالبحث ؟

موضوعين مختلفين

والمفهوم من كلامك تريد الحذف بالجملة

لأن الحذف في البرامج محظور وخطير وغالبا يتم وضع ضوابط له

فلو اقتصرت على البحث .. وافردت للحذف عنوانا يخصه وهناك تشرح المطلوب بالتفصيل

قام بنشر

تمام كما  أسلفت

عدد السجلات يتجاوز  ٤٠٠ سجل وبالبحث عن بدايات اسماء  الحقول سوف يتقلص العدد الى  ١٠ سجلات  مثلا ..

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

إذا  أمكن  هل هذا التعديل متاح ؟؟

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

بارك الله فيك أخى موسى ، وأطال الله عمرك ونفع بك

تعديلك فى المثال ممتاز للبحث ، والحذف  للسجلات المختارة بعد البحث

جربته على أكسس 2010  وجدته يعمل بكفاءة

لكن عند تجربته على أكسس 2003 وهو الإفتراضى عندى

كانت هناك بعض أخطاء التوافق فى المكتبات

لكن الغريب عندما أردت إضافة تلك المكتبات وجدت الأمر  References  باهت ولا يمكن اختياره

img?id=994324

img?id=994325

img?id=994326

أما بخصوص كلمة Name لم أجد لها تأثير فى أكسس 2003 .. لكن جاري تغييرها فى أصل التطبيق

تحسباً  لعدم تسامح البرنامج  فى مواضع أخرى لكلماته المحجوزة

تم تعديل بواسطه أحمد العيسى
  • Like 1
قام بنشر
  في 14‏/9‏/2024 at 15:47, أحمد العيسى said:

لكن الغريب عندما أردت إضافة تلك المكتبات وجدت الأمر  References  باهت ولا يمكن اختياره

 

Expand  

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

قام بنشر

الملف يشتغل معى جيدا على الاوفيس 2016 وليس لدي اوفيس 2003 لكي اجرب جرب الدخول References   اي واحدة مؤشر عليها باسم MISSING  الغ التاشير ثم موافق وكنصيحة حاول ترقية الاوفيس لديك الى اصدار احدث

قام بنشر

ان لم ينجح الامر جرب الكود التالي 

تأكد من أن مكتبة DAO مفعلة في مشروعك. يمكنك تفعيلها من خلال الذهاب إلى Tools > References في محرر VBA، ثم التأكد من تفعيل Microsoft DAO 3.6 Object Library

Private Sub Form_Open(Cancel As Integer)
    Dim tb As DAO.Recordset
    Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset)
    
    If Not tb.BOF And Not tb.EOF Then
        tb.MoveFirst
        Do While Not tb.EOF
            tb.Edit
            tb.Fields("OnlyYou").Value = False
            tb.Update
            tb.MoveNext
        Loop
    End If
    
    tb.Close
    Set tb = Nothing
End Sub

 

قام بنشر

او هذا الكود  

تأكد من أن مكتبة DAO مفعلة في مشروعك. يمكنك تفعيلها من خلال الذهاب إلى Tools > References في محرر VBA، ثم التأكد من تفعيل Microsoft DAO 3.6 Object Library

Private Sub Form_Open(Cancel As Integer)
    Dim tb As DAO.Recordset ' التأكد من استخدام DAO Recordset
    Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset)
    tb.MoveFirst
    Do While Not tb.EOF
        tb.Edit ' وضع السجل في وضع التحرير
        tb.Fields("OnlyYou") = False ' تعديل قيمة الحقل
        tb.Update ' تحديث السجل في قاعدة البيانات
        tb.MoveNext ' الانتقال للسجل التالي
    Loop
    tb.Close ' إغلاق الكائن بعد الاستخدام
    Set tb = Nothing ' إلغاء الإشارة إلى الكائن
End Sub


 

  • Like 1
قام بنشر

ما زال المثال يحتاج إلى الكثير من التعديلات ، فمثلاً إذا حذفت كامل السجلات يقطع البرنامج مساره برسالة خطأ

img?id=995788

وقد استطعت التغلب على هذه الرسالة من خلال التعديل على الكود السابق

Private Sub Form_Open(Cancel As Integer)
    Dim tb As DAO.Recordset
    
    Dim Q As Integer
    Q = DCount("*", "tbl_Student1")
    If Q > 0 Then
    
    Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset)
    tb.MoveFirst
    Else
      MsgBox ("لا يوجد سجلات لعرضها "), vbOKOnly + vbMsgBoxRight, "تنبيه"
      Exit Sub
    End If
       
    Do While Not tb.EOF
        tb.Edit
        tb.Fields("OnlyYou") = False
        tb.Update
        tb.MoveNext
    Loop
    tb.Close
    Set tb = Nothing
End Sub

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

img?id=995785

img?id=995787

img?id=995786

 

قام بنشر (معدل)
  في 16‏/9‏/2024 at 09:14, أحمد العيسى said:

هل طلبي غير واضح ؟؟

مر  تقريبا يوم كامل ، ولا يوجد  رد   سواء  بالايجاب أو السلب   ..

Expand  

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

تم عمل الموضوع بطريقتين ، الأولى زرين للتحديد والغاء التحديد للكل

والثانية زر واحد فقط يقوم بالمهمتين دون الحاجة لزرين اثنين ..

 

db1 (Moosak).mdbFetching info...

تم تعديل بواسطه Foksh
قام بنشر
  في 16‏/9‏/2024 at 11:49, Foksh said:

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

 

Expand  

اهلا ومرحبا بك عودة محمودة ان شاء الله 

والله اشتقنا لك والى حلولك الجميلة

  • Like 1
قام بنشر
  في 16‏/9‏/2024 at 11:52, الحلبي said:

اهلا ومرحبا بك عودة محمودة ان شاء الله 

والله اشتقنا لك والى حلولك الجميلة

Expand  

أهلا يا دكتور ,, الله يسلمك ، و أشكرك يا غالي  :wub:

 

قام بنشر (معدل)
  في 16‏/9‏/2024 at 11:49, Foksh said:

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

تم عمل الموضوع بطريقتين ، الأولى زرين للتحديد والغاء التحديد للكل

والثانية زر واحد فقط يقوم بالمهمتين دون الحاجة لزرين اثنين ..

 

db1 (Moosak).mdb 420 kB · 5 downloads

Expand  

تم التعديل على هذا الملف من مشاركة الأخ العزيز /

عبدالله بشير عبدالله

Private Sub Form_Open(Cancel As Integer)
    Dim tb As DAO.Recordset ' التأكد من استخدام DAO Recordset
    Dim Q As Integer
    Q = DCount("*", "tbl_Student1")
    If Q > 0 Then
      Set tb = CurrentDb.OpenRecordset("tbl_student1", dbOpenDynaset)
      tb.MoveFirst
    Else
       MsgBox ("لا يوجد سجلات لعرضها "), vbOKOnly + vbMsgBoxRight, "تنبيه"
       Exit Sub
    End If

    Do While tb.EOF = False
        tb.Edit ' وضع السجل في وضع التحرير
        tb.Fields("OnlyYou") = False ' تعديل قيمة الحقل
        tb.Update ' تحديث السجل في قاعدة البيانات
        tb.MoveNext ' الانتقال للسجل التالي
    Loop
    tb.Close ' إغلاق الكائن بعد الاستخدام
    Set tb = Nothing ' إلغاء الإشارة إلى الكائن
End Sub

وإلى الآن التجربة مع المثال  تبشر بعمل شبه كامل

لكن لماذا عملية البحث بطيئة جداً  بهذا الشكل ؟؟؟

 

 

 

db2.mdbFetching info...

تم تعديل بواسطه أحمد العيسى
قام بنشر

رجاء التعديل على كود البحث فى الملف السابق لأنه بطئ جداً

db2.mdb

فقد رأيت طرق بحث ممتازة للأخ الحبيب أبو هاجر قديماً

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

قام بنشر (معدل)
  في 20‏/9‏/2024 at 05:25, أحمد العيسى said:

رجاء التعديل على كود البحث فى الملف السابق لأنه بطئ جداً

Expand  

السلام عليكم ورحمة الله وبركاته
مشاركة مع الاساتذة الاكارم
عملية البحث بطيئة بسبب عملية البحث اثناء الكتابة التي تريد لذ انصح بأن تكون عملية البحث بعد التحديث حتي تصل لعملية بحث سريعة 
جرب هذا التعديل 
ملاحظة نتائج البحث ستتغير بعد التحديث وليس اثناء تحديث حقل البحث (يعني اضغط انتر بعد الكتابة 😀)

db2.mdbFetching info...

تم تعديل بواسطه أبو عبدالله الحلوانى
قام بنشر (معدل)

تمام أخى أبو عبدالله

يبدو  أن التعديل فى هذا النموذج ( OnlyYou1 )  أخذ الكثير من جهد الزملاء (شكراً لهم) ولم يصل للمستوى المطلوب

سوف أضيف  بالملف المرفق التالى أسلوب أبو هادى فى البحث (  البحث يتم اثناء كتابة كل حرف  ولكن سريع جداً)

والمطلوب فقط وضع  الكود المناسب  لزر  " حذف سجلات ناتج البحث " والاستغناء عن النموذج "OnlyYou1"

img?id=1005060

 

db3.mdbFetching info...

تم تعديل بواسطه أحمد العيسى
قام بنشر
  في 20‏/9‏/2024 at 14:48, أحمد العيسى said:

" والاستغناء عن النموذج "OnlyYou1"

Expand  

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

 

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