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

[ تمت الإجابة ]بحث عن اسم باستعلام توحيد

بدأه طه محمد حامد في 26 فبراير 2008 · 20 رد · 2,928 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم : (مشرفين و أعضاء هذا المنتدي العظيم)

* ارجو التعليق من جميع إخواني في الاسلام أو العروبة علي هذا الموضوع ومشاركتي فيه

[البحث عن اسم مثل (احمد اسامة علي) في خمس سنين سابقة في خمس جداول متشابهة (اي نفس الحقول ولكن بيانات مختلفة)

المشاكل:

1- اختلاف طريقة الكتابة من شخص لآخر مثل الاسم السابق كأن يكتب كالتالي: (أحمد أسامه على) بالهمزات أو الهاءفي اسامة بدلا من التاء المربوطة .... إلخ

2- أخطاء الكتابة كأن يترك مسافة قبل الاسم الأول أو أكثر من مسافة بين الأسماء أو لا تترك مسافات بين بعض الأسماء وتلصق مع بعضها .... إلخ

*** عند البحث أضطر إلي اللجوء إلي وضع * قبل كل اسم وبعده مثال البحث عن الاسم السابق كالاتي: [*حمد*سام*عل*] حتى لا نترك أي فرصة لعدم الحصر (كما بالصور المرفقة)

---- قمت بعمل الآتي:

* عمل استعلام توحيد للجمع بين الحقول المطلوبة

* عمل فورم للبحث مبنية علي استعلام التوحيد

* عمل قائمة لعرض النتائج ثم طباعة عن طريق التقرير

*** الصعوبات:

1- المثال المرفق يبحث في حوالي 4000 سجل فمإذا إذا تم البحث في حوالي 5.000.000 سجل؟

2- هل سوف يحدث هانك للجهاز؟ وماذا ستكون السرعة؟

تم التنفيذ ولكـــــــــــــــــــــــــــن :

* عندما يبحث ولا يجد شيئا تختفي الفورمة

=== أرجو حل هذه المشكلة وإبداء الآراء والمقترحات

وهل هذه الطريقة دقيقة أم أن هناك طريقة أدق منها؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

مع خالص تحياتي لكم جميعاً

مع رجاء سرعة الرد

post-54274-1203973600_thumb.jpg

Ser_ListBox1.rar

تم تعديل هذه المشاركة بواسطة طه محمد حامد في 26 فبراير 2008 في 23:31

Toty_Retos

(المبرمج الصغير)

#2

عند تنقيذ البحث ولا يجد اسماً مطابقا

تختفي الفورمة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

=== أرجو حل هذه المشكلة وإبداء الآراء والمقترحات

وهل هذه الطريقة دقيقة أم أن هناك طريقة أدق منها؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

=== إخواني الأعزاء أرجو :

* سرعة الرد

* تسجيل التعليقات

وشكرا

Toty_Retos

(المبرمج الصغير)

#4

الف شكر علي التعديل

ولكن هل يتم التنفيذ علي حوالي 5.000.000 سجل أم لا

Toty_Retos

(المبرمج الصغير)

#5
طه محمد حامد كتب:
الف شكر علي التعديل

ولكن هل يتم التنفيذ علي حوالي 5.000.000 سجل أم لا

الله اعلم بما لديك من مواصفات في الجهاز !!!!!!!!!!

وهذا عائد على قدرة معالج الكمبيوتر لديك ومقدار الذاكره RAM

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

ولكن لو كان لديك كمبيوتر حديث ذو معالج انتل او AMD وسرعته اكثر من 3 قيقابايت والذاكره RAM لا تقل عن 3 -4 قيقابايت فستظهر لك النتائج خلال ثواني .

#6

بارك الله فيك اخي طه وبارك الله فيك اختنا زهرة

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

هل يمكن عمل function لتقوم بتبديل وتنظيف القاعدة من الشوائب في حالة الادخال كان تحول الهاء في اسامه الى اسامة او بالعكس

مع تمنياتي للجميع بالموفقية

#7

اخي الفاضل

نعم يوجد داله مخصصة لذلك وهي من ضمن دوال برنامج الأكسيس وهي Replace function ووظيفة هذه الدالة هي استبدال الأحرف character في مربعات النص بما تريد ان يتم تغيره من احرف اخرى .

وصيغتها الأساسية كالتالي :

Replace ( string1, find, replacement, [start, [count, [compare]]] )

حيث string1 هي الكلمة او مربع النص المطلوب استبدال الحروف فيها

و find هي معامل البحث اي الحرف او الكلمة المطلوب استبداله مثل ( أسامة - إبراهيم - ...... )

و replacement هي معامل التغيير اي الحرف او الكلمة المستبدله مثل ( اسامه - ابراهيم - ...... )

و start - count - compare هي معاملات اختيارية قد لا تحتاجها

مثال لإستخدام الدالة :

الإستبدال في الكلمة .

Replace("أسامة";"أ";"ا")

Replace("أسامة";"ـة";"ـه")

لاحظ كيف استبدلنا حرف الألف بهمزه بحرف الف بدون همزه وكذلك حرف التاء المربوطة في نهاية الكلمة

الإستبدال في مربع نص مثل txtName

Replace([txtName];"أ";"ا")

Replace([txtName];"ـة";"ـه")

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

Function FindAndReplace(ByVal strInString As String, strFindString As String, strReplaceString As String) As String
Dim intPtr As Integer
	If Len(strFindString) > 0 Then  
		Do
			intPtr = InStr(strInString, strFindString)
			If intPtr > 0 Then
				FindAndReplace = FindAndReplace & left(strInString, intPtr - 1) &  strReplaceString
					strInString = Mid(strInString, intPtr + Len(strFindString))
			End If
		Loop While intPtr > 0
	End If
	FindAndReplace = FindAndReplace & strInString
End Function

وطريقة استدعاؤها بهذه الطريقة :

Call FindAndReplace([txtName],"zahra","zahrah")

ويمكن استخدام هذه الدالة في الإستعلام مباشرة

Expr:FindAndReplace([txtName],"zahra","zahrah")
#8

الاخوة الاعزاء وهل من الممكن استخدام دالة الاستبدال لاستبدال التاريخ حيث لدي تواريخ في قاعدة بيانات تظهر التاريخ مثلا 2007 ب1907 لانها حولت الى الاكسس من قاعدة بيانات قديمة الظاهر انها لم تتعامل مع التاريخ بل كانت كتابة التاريخ في جداول القاعدة على شكل نص وليس تاريخ وعند التحويل الى الاكسس بقيت تقرا التوارخ بعد الالفية على شكل 1900 وليس 2000 ومابعدها فهل نستخدم دالة الاستبدال وكود الاستبدال ام نعمل استعلام تحديث يقوم باضافة 100 سنة على هذه التواريخ وفق معيار يحصر هذه التواريخ ربما لم اجرب ذلك لاني اتوقع ان تضاف 100 سنة على كل التواريخ ويستحسن لو كان هناك مثال مساعد والدعاء لكم بالتوفيق

الالف ميل تبدأ بخطوة

#9

اخي الفاضل

لم توضح ماهية التواريخ فهل جميع التواريخ تنتهي بسنة 1907 ام انها سنوات مختلفه لأنك لو اضفت 100 سنة في استعلام تحديث او استخدمت دالة الإستبدال من 1907 الى 2007 فسوف ينتهي بك الأمر الى ان جميع التواريخ لهذه السنوات سيصبح 2007

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

#10

بارك الله فيك اخت زهرة

#11
R_IT كتب:
بارك الله فيك اخي طه وبارك الله فيك اختنا زهرة

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

هل يمكن عمل function لتقوم بتبديل وتنظيف القاعدة من الشوائب في حالة الادخال كان تحول الهاء في اسامه الى اسامة او بالعكس

مع تمنياتي للجميع بالموفقية

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

الحمد لله رب العالمين

والصلاة والسلام على اشرف المرسلين سيدنا ونبينا محمد بن عبد الله وعلى اله وصحبه اجمعين

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

بارك الله فيكم وعليكم وكثر الله من امثالكم فاعلى الخير لوجه الله سبحانه وتعالى

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

ولك مني جزيل الشكر والتقدير وآسف للاطالة والالحاح

امين تيسير

#12

اخي الفاضل أمين تيسير

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

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

اما سؤالك فهو يخص البحث عن الأسماء العربية مع تجاهل الهمزه بأي شكل من الأشكال وكذلك التاء المربوطة وكذلك الياء في آخر الكلمة .

واتمنى في المرات القادمة عدم الخلط في المشاركات

عموما هذه هي الإجابة على سؤلك

za_ExprSearch.rar

#13
zahrah كتب:
اخي الفاضل أمين تيسير

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

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

اما سؤالك فهو يخص البحث عن الأسماء العربية مع تجاهل الهمزه بأي شكل من الأشكال وكذلك التاء المربوطة وكذلك الياء في آخر الكلمة .

واتمنى في المرات القادمة عدم الخلط في المشاركات

عموما هذه هي الإجابة على سؤلك

za_ExprSearch.rar

اولاً شكرا لكى اختى الكريمة زهرة على سرعة اجابتك عن سؤالي واشكر لك رحابة صدرك وسعة افقك

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

آسف آسف آسف

جزاك الله كل خير

#14

في سؤال للأخ أمين:

اما سؤالك فهو يخص البحث عن الأسماء العربية مع تجاهل الهمزه بأي شكل من الأشكال وكذلك التاء المربوطة وكذلك الياء في آخر الكلمة .

هذا هو ما أريده بالضبط ولكن:

النموذج المرفق za-ExprSearch يبحث في اسم واحد فقط وأنا اريد البحث في اربعة أسماء علماً بأن الاسم في خانة واحدة مثل (اسامة احمد علي) وليس (اسامة) (أحمد) (علي)

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

ثم بعد :

طباعة تقرير به هذه الأسماء

Toty_Retos

(المبرمج الصغير)

#16

عند كتابتي للإسم ثم الضغط علي Enter أعطي لي الرسالة التالية:

run time error '2447':

هناك استخدام غير صالح لعامل التشغيل نقطة أو ! أو توجد أقواس غير صالحة

كذلك يعطي نفس الرسالة اذا ضغط علي زر معاينة النتائج

untitled.bmp

تم تعديل هذه المشاركة بواسطة طه محمد حامد في 29 فبراير 2008 في 21:16

Toty_Retos

(المبرمج الصغير)

#17

اخي الفاضل

ما نوع اصدارة برنامج الأكسيس لديك

هل هي اكسيس 2000 او اكسيس 2003 او اكسيس 2007

هذا البرنامج تم عمله على اكسيس 2003 عربي

عموما قم بالتجربة الان على البرنامج

za_Ser_ListBox1_UP4.rar

#18

أولاً: أشكرك لسعة صدرك وصبرك علي وعلي مجهودك معي

وجزاك الله خيراً علي كل ما تفعلينه من أجل العلم وزادكي الله علما فوق علمك وقلدكي أعلي المناصب بإذن الله

* أنا أعمل علي نفس الإصدار (اكسيس 2003 عربي)

عموما سوف أجربه علي جهاز آخر به نفس الإصدار أو إصدار آخر سوف أجرب

وألف ألف ألف ألف مليون شكر

Toty_Retos

(المبرمج الصغير)

#19

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

تمت الإجابة على الموضوع

إدارة الفريق العربي للبرمجة

#20

لقد قمت بتجربة البرنامج علي جهاز آخر به أكسيس XP وتمت عملية البحث بنجاح

وألف مليون شكر

وآسف علي تعبك معي في هذا الموضوع

وجزاكي الله خيرا

تم تعديل هذه المشاركة بواسطة طه محمد حامد في 29 فبراير 2008 في 23:45

Toty_Retos

(المبرمج الصغير)

#21

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

الحمد لله رب العالمين

والصلاة والسلام على اشرف المرسلين سيدنا ونبينا محمد بن عبد الله وعلى اله وصحبه اجمعين

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

بارك الله فيكم وعليكم وكثر الله من امثالكم فاعلى الخير لوجه الله سبحانه وتعالى

اشكرك اخي الكريم طه واشكر اختى الفاضلة زهرة وكل من ساهم معنا فى هذا الصرح العظيم

جزاكم الله كل خير تمت الاجابة على سؤالى شكرا جزيلاً

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

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

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

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

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