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

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

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

السلام عليكم

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

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

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

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

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

( Debug )

img?id=993633

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

 

db1.mdb

تم تعديل بواسطه أحمد العيسى
قام بنشر
1 ساعه مضت, أحمد العيسى said:

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

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

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

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

db1.mdb

  • Like 1
قام بنشر

شكراً لك

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

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

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

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

قام بنشر
منذ ساعه, أحمد العيسى said:

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

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

 

منذ ساعه, أحمد العيسى said:

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

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

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

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

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

راجع معلوماتك ..

بل هي اشهر كلمة محجوزة . ليس في اكسس فقط

 

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

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

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

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

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

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

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

قام بنشر

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

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

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

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

قام بنشر

جرب هذا التعدل ..
التعديل تم على البحث فقط ..

image.png.5c5dfb2593e8860d1bd4a39b17eca295.png

لو أردت البحث عن اسم الأب أو الجد بعد اسم الطالب أكتب * بدل المسافة 

image.png.53fc339368fe6d7ca8716f5bc83469d6.png

 

db1 (Moosak).mdb

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

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

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

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

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

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

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

img?id=994324

img?id=994325

img?id=994326

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

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

تم تعديل بواسطه أحمد العيسى
  • Like 1
قام بنشر
16 دقائق مضت, أحمد العيسى said:

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

 

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

قام بنشر

 

5 دقائق مضت, عبدالله بشير عبدالله said:

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

تمام  حصل .. وأصلحت المكتبة المعطلة ( فى أكسس 2003 )

لكن ظهر خطأ آخر 

img?id=994378

قام بنشر

الملف يشتغل معى جيدا على الاوفيس 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

 

قام بنشر (معدل)
2 ساعات مضت, أحمد العيسى said:

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

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

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

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

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

 

db1 (Moosak).mdb

تم تعديل بواسطه Foksh
قام بنشر
1 دقيقه مضت, Foksh said:

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

 

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

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

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

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

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

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

 

قام بنشر (معدل)
8 ساعات مضت, Foksh said:

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

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

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

 

db1 (Moosak).mdb 420 kB · 5 downloads

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

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

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.mdb

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

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

db2.mdb

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

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

قام بنشر (معدل)
7 ساعات مضت, أحمد العيسى said:

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

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

db2.mdb

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

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

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

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

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

img?id=1005060

 

db3.mdb

تم تعديل بواسطه أحمد العيسى
قام بنشر
40 دقائق مضت, أحمد العيسى said:

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

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

 

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