الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن للأكسس ان يتجاهل حروف معينة اثناء عملية البحث

مغلق
بدأه Hiarab في 23 يناير 2003 · 15 رد · 1,376 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الى جميع الإخوة خبراء إكسس

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

لقد بحثت عن هذا الموضوع في جميع الصفحات و لم اصل الى نتيجة ، فرأيت ان اشرحه لكم وكلي امل في ان اجد من يساعدني في ذلك.

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

لدي نموذج للبحث عن بيانات في جدول أو إستعلام ، و أقوم بعمليات بحث كثيرة. اثناء عملية البحث يعطيني الأكسس ما ابحث عنه تمام - الى هذة النقطة و انا و الأكسس ماشيين في السليم - و لكن كيف اجعل صاحبنا الأكسس بتجاهل حروف معينة اثناء عملية البحث؟!!!

بمعنى:

انا ابحث عن إسم salim ، و لكن في قاعدة البيانات تم إدخال هذا الإسم بطريقتين هما: salim و salem اي إستبدل الحرف i بالحرف e

ففي عملية البحث عن salim سيقوم صاحبنا - و صاحبكم - الأكسس بإظهار كل الأسماء salim و لا يظهر salem الأمر الذي يعرضني لإحراج أمام مديري و إتهامه لي و لصاحبي الأكسس بعدم الدقة في جميع البيانات - و يتجاهل الخطأ الذي قام به غيري عندما إستبدل الحرف i بالحرف e - على اية حال ، فإن الحل الوحيد هنا لضمان ظهور كلا الإسمين هو ان اقوم بإعطاء التعليمات المناسبة للأكسس بأن يتجاهل الحرفين i و e اثناء عملية البحث.

الخلاصة:

كيف يمكن للأكسس ان يتجاهل حروف معينة اثناء عملية البحث وكأنها ليست موجودة أصلاً. وعندما اقوم بالبحث على كلمة salim احصل على salim و salem اي يتجاهل الحرفين i و e في عملية البحث و يجنبني الإحراج اما مديري الذي يجب ان يعلم بأن الأكسس يفهم اكثر منه.

تحياتي القلبية للجميع

#2

أخي الكريم

السلام عليكم

إذا كنت تعرف بالضبط ما هي الحروف التي تريد أن تتجاهلها فذلك أمر يسير

مثلاً أثناء البحث في اللغة العربية من المفضل عادة أن نتجاهل شكل الهمزة ( أ ، ا ، إ ) لأنه كثيراً ما يحصل الخطأ فيها

يمكنك مثلاً استخدام أمر كالتالي لتجاهل شكل الهمزة

Dim b As Integer



Dim tempstr As String

Dim tempend As String

tempstr = Me.ser_txt



        If tempstr Like "*[أاإ]*"Then

        tempend = ""

            For b = 1 To Len(tempstr)

                If mid(tempstr, b, 1) = "ا" Or mid(tempstr, b, 1) = "إ" Or mid(tempstr, b, 1) = "أ" Then

                    tempend = tempend & "*[أاإ]*"

                Else

                    tempend = tempend & mid(tempstr, b, 1)

                End If

            Next

        End If

وتلاحظ أن الكود السابق يبحث عن أي همزة في النص الذي أدخله المستخدم ويقوم باستبدالها بالحروف المشابهة مع وضعها بين قوسين معقوفين [] والقوسان المعقوفان في أكسس هما أحد المعايير التي تسخدم في أكسس لإخباره بأنه يبحث عن أي مع الأحرف الموجودة داخلها والمفصول بينها بفاصل

ومع كل ذلك فلست قادراً دائماً على معالجة إدخالات المستخدم إذا كانت خاطئة والأمريكيون يقولون Garbage in garbage out

تحياتي

أخوك / أبو هاجر

#3

أخي الكريم

هل جربت هذا التعبير :

Like "*Sal?m*"

كما يوجد لدي اقتراح بالمنتدى لإدخال الأسماء عن طريق قاموس أسماء وذلك لإجبار المستخدمين على إدخال الأسماء بشكل واحد .. قديم بعض الشيء ، آمل أن تبحث عنه .

تحياتي

#4

abohajr إنك رائع ..

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

الكود ممتاز .. و لكن كيف لي ان استخدمة؟!! لأنني بصراحة لا اعرف اين اضع هذا الكود ، هل اضعه بمساعدة code builder ام بشكل اخر؟؟

اعذرني على هذا الطلب .. بس انا اتعلم

أخي أبو هادي ..

اشكرك على الإفادة الطيبة ، و بصراحة انا اعرف هذا الكود من الأول و لا ارغب في إستخدامه .. اكرر شكري لك

#5

معذرة أخطأت في كتابة الكود والصحيح التالي

Dim tempstr As String

Dim tempend As String

tempstr = Me.ser_txt



        If tempstr Like "*[أاإ]*"Then

        tempend = ""

            For b = 1 To Len(tempstr)

                If mid(tempstr, b, 1) = "ا" Or mid(tempstr, b, 1) = "إ" Or mid(tempstr, b, 1) = "أ" Then

                    tempend = tempend & "[أاإ]"

                Else

                    tempend = tempend & mid(tempstr, b, 1)

                End If

            Next

        End If
#6

اشكرك على التعديل ..

ولكن لم تعلمني طريقة إستخدام هذا الكود؟!! :-(

#7

أخي الكريم

السلام عليكم

آمل إرفاق مثال حتى أعدل لك عليه بما أنك مبتدئ

تحياتي

#8

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

إذا ممكن إضافة كود في الإستعلام للبحث بحيث يطلب إدخال الإسم ، و يتجاهل بعض الحروف في عملية البحث و ليكن الحرفين i و e

وهل ممكن تطبيق ذلك على النموذح؟!!

اشكر لكم التعاون و ادعو لكم بدوام العز ..

db1.zip

#9

أخي الكريم

السلام عليكم

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

جرب البحث بـ SALIM أو SALEM وسوف تلاحظ أن النتيجة واحدة

تحياتي

أخوك / أبو هاجر

db1.zip

#10

اشكرك عظيم الشكر على تعاونك الطيب و السريع و اسأل الله ان يكون في ميزان حسناتك ..

لقد حللت اكثر من 90 في المائة من المشكلة ، و لكن بقت بعد الملاحظات البسيطة و اعتقد انها مهمة. و تكمن في انه عندما ابحث عن إسم لا يحتوي على الحرفين iو e على سبيل المثال samar فإنني لا احصل على نتائج إطلاقاً.

واعتقد لحل هذة المشكلة هو ان تجعل الأكسس يتجاهل - ignore - الحرفين iو e - في عملية البحث ، اما في المثال الذي قمت بإعداده فانا مقيد بهذين الحرفين ، و الأسماء التي لا تحتوي على هذين الحرفين فلم احصل على نتائج بحث لها.

و اذا كانت هناك إمكانية للأكسس في ان يتجاهل - ignore - أو بمعنى أخر لا يقرأ حروف معينة أثناء عملية البحث فأرجو منك إضافة الحروف التالية:

e - i - o - u - y - h - a

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

#11

أخي الكريم

السلام عليكم

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

المهم هو المحاولة أولاً والمثابرة ثانياً والإصرار ثالثاً ثم السؤال بعد ذلك

تحياتي

أخوك / أبو هاجر

#12

أشكرك على ما تقوم به من مجهودات طيبة.

وفي الحقيقية حاولت ان اصل الى ما اريد لكنني لم اتمكن من ذلك ..

على العموم اشكرك عظيم الشكر ...

#13

بسم الله الرحمن الرحيم

إخوتي الكرام

لا أريد أن أزيد على ما كتب أخونا أبو هاجر فهو أستاذنا نأخذ منه ونتعلم من مشاركاته البنائة، إلا أنني أريد أن أوضح فكرة إذا كتب الأخ المريد الإستفهام عن أي جزء من الكلمة فما عليه إلا أن يكتب هذه الجملة في المعايير في الأستعلام

"*" & [أدخل الإسم ] & "*" Like

والسلام

#14

أخي الكريم Hiarab

السلام عليكم

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

تحياتي لك

أخوك / أبو هاجر

#15

أخي الكريم HIARAB

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

search.zip

#16

اشكرك عظيم الشكر ..

المثال الذي قمتم بإعدادة موجود عندي. فلم اجد طريقة اخرى سواها.

اشكركم على اية حال و ارحب بتجارب اخرى .. :-)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…