Yaool قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 عندي قاعدة بيانات كبيرة قمت بإنشاء نموذج بحث لها, ولكن كنت أرغب بجعل البحث يتجاهل التفريق بين الهمزات والهاء والتاء المربوطة وهكذا. بحث في المنتدى عن مواضيع مشابهة ولكن المرفقات بها لا تعمل. لكم جزيل الشكر.
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 1 minute ago, SEMO.Pa3x said: استخدم الدالة Like للبحث. نعم انا استخدمها بالفعل عند البحث عن اسم معين بالشكل التالي Like ""[ءاآإأ]*" ولكن سؤالي عن كيفية تطبيق نفس المبدأ بشكل عام في نموذج بحث مع بقية الحروف المتشابهة
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 9 minutes ago, SEMO.Pa3x said: Like "*" & Forms!frm_Main!txt_search & "*" هذا بالفعل ما استخدمه في الكويري, لكن عند البحث عن "ادهم" مثلا والإسم مسجل في القاعدة بالهمزة "أدهم" فإن البحث يفشل في العثور على الحقل
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 طيب, قم بعمل استعلام يقوم بإستبدال جميع الهمزات والحركات للنصوص المسجلة في القاعدة وريح راسك حسنين
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 هذا تحديدا ما أحاول تجاوزه. مهم ان تبقى النصوص في القاعدة بإملاءها السليم لأنها تطبع فيما بعد وتستخدم في معاملات حكومية.
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 (معدل) حسنا جداً، بهذا الأمر يجب ان نستخدم العتاد الثقيل وهو الـ VBA قم بإنشاء وحدة نمطية واعطها اي اسم مثلا ( Clear_Text ) وقم بألصاق هذا الفنكشن بداخلها Public Function ReplaceString(tshkeel As String) Dim i As Integer Dim fld As String, wr As String, spa As String wr = "" fld = tshkeel i = 1 Do While i <= Len(fld) spa = Mid(fld, i, 1) If Asc(spa) = 240 Or Asc(spa) = 241 Or Asc(spa) = 242 Or Asc(spa) = 243 Or Asc(spa) = 244 Or Asc(spa) = 245 Or Asc(spa) = 246 Or Asc(spa) = 247 Or Asc(spa) = 248 Or Asc(spa) = 249 Or Asc(spa) = 250 Then Else wr = wr & spa End If i = i + 1 Loop ReplaceString = wr End Function ثانياُ: قم بعمل استعلام وضع بداخله الحقل الذي يتضمن الاسماء التي تحتوي على الحركات الهمزة والكسرة والضمة.. الخ ثم قم بإنشاء حقل جديد في الاستعلام لكي نقوم بمناداة الوحدة النمطية كالاتي: Clearing_Text: ReplaceString( [اسم الحقل الذي يتضمن الاسم] ) اذا واجهت مشكلة ارفق القاعدة, لكي نقوم بمساعدتك. حسنين تم تعديل أبريل 5, 2019 بواسطه SEMO.Pa3x
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 (معدل) جميل, قمت بمعالجة مشكلة التشكيل باستخدام الدالة أعلاه.. شكرا لاهتمامك. الآن تبقى ان نجد حل لمدخلات البحث التي تحتوي على همزات وحروف المد و الهاء والتاء المربوطة .. الخ هل يمكن كتابة استعلام من خلال الفيجوال بيسك؟ اظن ان الحل سيكون سهلا لو وضعنا شرط يقوم بعمل فحص للنص المدخل ثم يعدل الاستعلام ليتناسب مع المدخلات. مثلا لو كان النص يحتوي على (ءاآإأ) مثل (ادهم) فيقوم بمناداة الاستعلام التالي: SELECT * FROM employees WHERE (employees.title Like " *ءاآإأ]دهم]* ") ولو ادخلنا "زهرة" يقوم بمناداة هذا الاستعلام: SELECT * FROM employees WHERE (employees.title Like " *[زهر[ةه* ") ولكنني لا ادري كيفية تنفيذ هذه الآلية فخلفيتي في الفيجوال بيسك ضعيفة. تم تعديل أبريل 5, 2019 بواسطه Yaool
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 اقتباس الآن تبقى ان نجد حل لمدخلات البحث التي تحتوي على همزات وحروف المد و الهاء والتاء المربوطة .. الخ تقصد حل للحقل الذي ستكتب به عبارة البحث؟ حسنين
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 11 minutes ago, SEMO.Pa3x said: تقصد حل للحقل الذي ستكتب به عبارة البحث؟ نعم
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 استخدم الدالة Replace عند الحدث After_Update لإستبدال الهمزة والتاء..الخ حسنين
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 (معدل) 33 minutes ago, SEMO.Pa3x said: استخدم الدالة Replace عند الحدث After_Update لإستبدال الهمزة والتاء..الخ ياعيني عليك بالفعل المشكلة انحلت 😀 هذا الكود الذي استعملته Private Sub txt_title_AfterUpdate() Dim searchtext As String searchtext = Replace(txt_title.Text, "ا", "[ءاآإأ]") txt_title.Value = searchtext End Sub التنسيق العربي ملخبط قليلا ولكنه يستبدل كل "ا" في النص ب ءاآإأ بين قوسين [] وبالتالي الاستعلام يعمل بالشكل المطلوب. بقي ان اعيد استخدام دالة الاستبدال لعمل التغيير مع بقية الحروف الحل اسهل بكثير مما تصورت الحقيقة. لكن بقي تعديل صغير في كودي, وهي ان النص في مربع البحث يتم استبداله بالنص الجديد الذي يحتوي على التعديلات, هل هناك طريقة لجعل الدالة تعمل "خلف الكواليس" بشكل او بآخر؟ تم تعديل أبريل 5, 2019 بواسطه Yaool
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 (معدل) @Yaool اقتباس لكن بقي تعديل صغير في كودي, وهي ان النص في مربع البحث يتم استبداله بالنص الجديد الذي يحتوي على التعديلات, هل هناك طريقة لجعل الدالة تعمل "خلف الكواليس" بشكل او بآخر؟ استخدم حقل ثاني, عند الكتابة في الحقل الاول تبقى الكتابة كما هي لا تتغير لكنها سوف تكتب في الحقل الثاني وتكون مفرغة من الحركات وو.الخ وهذا الحقل سوف يكون مخفي Visible = False ثم الاستعلام سوف يأخذ معيار البحث من الحقل الذي قمنا بأخفاءه وبالتالي سوف يكون لديك حقل يعمل في الكواليس. حسنين تم تعديل أبريل 5, 2019 بواسطه SEMO.Pa3x
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 الحقيقة كنت افكر في تخزين النص الجديد بهذا الشكل توفيرا للمجهود: txt_title.Tag = searchtext ولكن لا أعرف كيف اقوم بتمرير قيمة التاج في الاستعلام Like "*" & Forms!frm_Main!txt_search & "*"
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 @Yaool ولماذا تستخدم Tag ؟ اكتفي فقط بكتابة txt_title = searchtext حسنين
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 لا أدري لماذا اعقد الحلول على نفسي😅 Like "*" & Forms!frm_Main!txt_search.Tag & "*" يعمل بالشكل المطلوب أشكرك جزيل الشكر اخي حسنين على مساعدتك 1 minute ago, SEMO.Pa3x said: @Yaool ولماذا تستخدم Tag ؟ اكتفي فقط بكتابة txt_title = searchtext حسنين بدلا من انشاء حقول اضافية واخفائها اقوم بتخزين النص في تاج مربع البحث الاصلي لان نموذج البحث عندي فيه عدة حقول بحث وليس حقلا واخدا.
Yaool قام بنشر أبريل 5, 2019 الكاتب قام بنشر أبريل 5, 2019 4 minutes ago, SEMO.Pa3x said: @Yaool هل حُلت مشكلتك نهائياً ؟ نعم الآن كل شيء يعمل بالشكل المطلوب , أشكرك.
SEMO.Pa3x قام بنشر أبريل 5, 2019 قام بنشر أبريل 5, 2019 @Yaool حياك الله عزيزي واهلا وسهلا بك في أي وقت. حسنين
ًعبد من عباد الله قام بنشر أبريل 7, 2019 قام بنشر أبريل 7, 2019 السلام عليكم الأخوة الكرام هل يمكن رفع مثال يحتوي تطبيق لما سبق ولكم جزيل الشكر
ًعبد من عباد الله قام بنشر أبريل 7, 2019 قام بنشر أبريل 7, 2019 (معدل) الأخوين Yaool & SEMO.Pa3x السلام عليكم في مثالي المرفق ونظراً إلي أن معلوماتي بهذا العلم للأسف ليست كبيرة ولا مكتملة فقد (غرقت في شبر ميه) عند محاولة تطبيق ما دار بينكم ولم أستطع الإكمال مع العلم أني أريد البحث في حقلي عنوان المرجع و اسم المؤلف فهل يمكنكما مساعدتي في ذلك تفضلاً وشكرا البحث مع اهمال الهمزات والحروف المتشابهة مثل (ه, ة ي,ى و,ؤ)1.accdb تم تعديل أبريل 7, 2019 بواسطه وائل أبو عبد الرحمن
SEMO.Pa3x قام بنشر أبريل 9, 2019 قام بنشر أبريل 9, 2019 @وائل أبو عبد الرحمن تفضل طلبك عزيزي. بالتوفيق. حسنين بحث.accdb 2
ًعبد من عباد الله قام بنشر أبريل 9, 2019 قام بنشر أبريل 9, 2019 6 دقائق مضت, SEMO.Pa3x said: تفضل طلبك عزيزي كل الشكر لك أخي حسنين لاستجابتك واهتمامك جواك الله خيرا واسمح لي أن انهل بمزيد من علمكم نظراً لتعلق عملي بالتعامل مع كثرة النصوص لذا فلدي أهتمام بـ (سرعة وسهولة ودقة نتائج البحث) ونظرا إلي أهمية الاستعلامات باعتبارها العمود الفقري لقواعد البيانات فقد رأيت خلال رحلتي لإخراج عملي ثلاثة صور أو أشكال لعمل الاستعلام: 1- إنشاء الاستعلام النمطي من خلال معالج الاستعلامات 2- إنشاء استعلام من داخل النموذج. 3- إنشاء استعلام داخل الكود. فهل لأحدهما أفضلية من حيث السرعة ودقة البيانات ؟ وجزاكم الله خيراً
SEMO.Pa3x قام بنشر أبريل 9, 2019 قام بنشر أبريل 9, 2019 بالنهاية كلها استعلامات ولا فرق بينهما في السرعة. اما دقة البيانات فهذا الامر راجع لك، اذا قمت ببناء الاستعلام بالشكل الصحيح مهما كان نوعه ستحصل على بيانات صحيحه والعكس. حسنين
الردود الموصى بها