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

تعلم اليوم - البحث في قاعدة البيانات

مغلق
بدأه MANSUR في 7 مارس 2001 · 30 رد · 18,564 مشاهدة · في قسم قواعد البيانات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سنتعلم اليوم ان شاء الله طريقة البحث في قواعد البيانات سواء

بكلمة محددة أو بجزء من الكلمة وسيكون برنامجنا مترجم

للكلمات ( قاموس بسيط )

افتح مشروع جديد وضع عليه مربعين نص وضع أداة Data

وزرين أمر كما في الصوره

TRN1.JPG

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

TRNTAB.JPG

قم بربط القاعدة عن طريق الكود الأتي :

ضع الكود تحت بدء تحميل النموذج Form1_Load

Me.Data1.DatabaseName = App.Path & "/" & "words.mdb"
Me.Data1.RecordSource = "TRN"
Me.Text1.DataField = "word"
Me.Text2.DataField = "meaning"

ومن الخصائص حول الخاصية data source لمربعي النص text1 and text2 إلى data1

تحت زر الامر المسمى بحث بالكلمة ضع الكود الأتي

txt = InputBox("أدخل الكلمة ", "تجربة")
TABN = "word Like '"
Form1.Data1.Recordset.FindFirst (TABN & txt & "'")
If Form1.Data1.Recordset.NoMatch Then MsgBox "تم البحث عن [" & txt & _
"] وهو غير موجود", vbExclamation, "نتيجة البحث"

وتحت الزر المسمى بحث بجزء من الكلمة

txt = InputBox("أدخل جزء من الكلمة ", "تجربة")
TABN = "word Like '*"
Form1.Data1.Recordset.FindFirst (TABN & txt & "*'")
If Form1.Data1.Recordset.NoMatch Then MsgBox "تم البحث عن [" & txt & _
"] وهو غير موجود", vbExclamation, "نتيجة البحث"

[M][F=Navy][F=4]ليست هذه هي الطريقة الوحيدة للبحث ...[/F][/F][/M]

[C][F=Red]وبالتوفيق يا شباب[/F][/C]

[عدلت بواسطة MANSUR ت:06-03-2001 س: 08:36 PM]

1
#2

جزاك الله خير

وهل هناك طريقة للبحث باستخدام SQl

#3

مساء الخير

شكرا لك أخي من كل أعماق قلبي .ولا يسعني الا أن اشكرك على هذه المعلومة القيمة وادعوا لك بالخير .

اود ان أسألك وهو لو ربطت جدول في قاعدة بيانات بأربعة مربعات نص حيث أن هذا الجدول به أربعة حقول الحقل الأول (الأسم الاول)وربطت هذا الحقل بمربع النص الأول .والحقل الثاني به(الأسم الثاني )وربطته بمربع النص الثاني .والحقل الثالث(الاسم الثالث)وربطته بمربع النص الثالث .والحقل الرابع وبه الاسم الرابع وربطته بمربع النص الرابع .

أنا أريد أن أبحث في هذا البرنامج عن شخص أسمه الرباعي (مثلا خالد مصطفى عمر سعد) كيف تكون الطريقة ؟ وأرجوك ساعدني على هذه الطريقة بالشرح الوافي .ولك جزيل الشكر .

#4

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

=== او اخبرني لماذ تريد تجزيئ الاسم ؟ == وسأجد الحل لك ان شاء الله ======

#5

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

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

فاضطررت الى وضع اربع مربعات نص بالاسم الاول والثاني وهكذا .

فاستطعت ان ابحث في الحقل الاول والثاني والثالث والرابع كل على حدة .

ولكن سؤالي الان هو كيفية عمل بحث عن اسم شخص أسمه الاول(مثلا) خالدواسمه الثاني(مثلا)مصطفى واسمه الثالث(مثال) سعد واسمه الرابع عمر (مثال) .

أرجو يا اخ منصور ان تكون قد فهمت سؤالي .

وهذ الجدول يحتوي على العديد من الاسماء .

فأرجو ان تشرح لي الطريقة بالتفصيل حيث اني مبتدأ في عالم البرمجة .

وشكرا مقدما على مجهوداتك الواضحة في المنتدى .

#6

بالنسبة لطريقة البحث بالـ SQL هذي هي

طبعاً على نفس المثال السابق تنشئ زر أمر وتضع هذاالكود فيه

 TXT = InputBox("أدخل جزء من الكلمة ", "تجربة")
TABN = "word"
Me.Data1.RecordSource = "select * from TRN where " & TABN & " = '" & TXT & "'"
Me.Data1.Refresh
If Me.Data1.Recordset.EOF = True And Data1.Recordset.BOF = True Then
End If

[M-l][F=Red][F=2]==================================================================

================================================================================

=====[/F][/F][/M]

الاخ العزيز mf2001 ما رأيك لو عملنا سوى برنامج يقوم بنقل

الاسماء التي لديك في عدة خانات الى خانة واحد فقط هل توافق

على ذلك .. بحيث يكون البحث اسهل لأن مسألة البحث في اكثر من

خانه ( فيلد ) معقده شوي على حد علمي وممكن اذا كان مصر نحاول

فيها لعل وعسى

أسف على تأخري بالاجابه وتقبل تحياتي

اخوك

[عدلت بواسطة MANSUR ت:10-03-2001 س: 09:54 AM]

#7

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

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

وشكرا .

#8

--- السلام عليكم

--- بصراحه ليس لدي خبره بالفيجول بيسك ولكن خبرتي في الأكسيس

--- لابأس بها . ولهذا اسمحولي أن أنظم اليكم ....

---

--- الحل بإستخدام SQL طبعاً .

--- وهو سهل جداً ...

--- بنفس طريقة الأخ منصور بعد تخزين الأسماء المطلوبه في متغيرات (ولتكن ثلاثة أسماء مثلا ) .. نفذ جملة SQL التالية :

SELECT first_name, med_name, family_name

FROM names

WHERE (((first_name)="var1") AND ((med_name)="var2") AND ((family_name)="var3"));

معظم المبرمجين يستخدمون ثلاثة حقول فعلا للأسماء فهذا يخصص البحث والإستعلام .

[عدلت بواسطة ابو لمى ت:11-03-2001 س: 04:54 AM]

1
#9

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

SELECT *,[Fthname] & [sndname] & [trdnme] & [frtname] AS EmpName

FROM Emp

WHERE ((([Fthname] & [sndname] & [trdnme] & [frtname]) Like "م*"));

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

#10

بالعكس انا مثلكم أسعى للحل الصحيح ولان اغضب ابداً اذا لم يكن حلي ان الصحيح لأن هدفي ان نصل سوياً للحل السليم ..

ولست انا ممن عنده قناعه بأنه يملك العلم كله .. فانا عرفت جزئيه وغيري عرف جزئيه وهكذا نستفيد من بعضنا .

وليس هناك بيننا من هو صاحب جواب مقدس . لا MANSUR ولا غيره

اخوكم

#11

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

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

ويعطيني النتيجة .

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

وشكرا لما تقدموا من اراء بناءة

وشكرا

#12

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

ضع فورم وعليه تيكست بوكيس ودايتا كنترول واماس فليكس جريد

اربط الفليكس جريد مع الداتا كنترول

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

وفي التيكست بوكيس وفي الحدث تشينج اكتب الاتي

dim MySql 
mysql =SELECT *,[Fthname] & [sndname] & [trdnme] &  [frtname] AS EmpName _
FROM Emp _
WHERE ((([Fthname] & [sndname] & [trdnme] & [frtname])  Like ' & text1.text & '));
data1.recordsource =  mysql
data1.refresh

جرب ها الكود وإن شاء الله ينفعك، وان نجح او ما نجح اعلمني لاني ما جربته الحين ولكن سارد عليك بشرح تفصيلي في اقرب فرصة إن شاء الله

عزيزي لا حظ ان الاسم سيكون في مربع نص واحد وفي هذه الحالة تقريبا افضل للمستخدم النهائي من ان يكون في اربع مربع نص.

[عدلت بواسطة طارق موسى ت:12-03-2001 س: 01:25 PM]

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

#13

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

في البداية احب اقول من العايدين وكل عام وانت بخير ...

في الوسط احب تساعدني في حل هذه المشكلة :

لدي ملف قاعدة بيانات قمت بعملة بواسطة الاكسس ، وقمت بعمل تطبيق لدرس قراته في كتاب

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

خصائص data1 وقمت بتعديل connect الى access و databasename الى c:note.mdb و readonly الى true و recordsetTupe الى 0- table وعندما اردت ان اعدل recordSource ظهرت الرساله التالية :

unrecognized database format 'c:note.msd

وعندما ذهبت الى خصائص Text1 وعدلت datasource الى data1 واردت ان اعدل :datafield ظهرت الرساله التالية :

you need to fill in the recordsource property of the data control to get alist of field وانا وارط هنا كما انني حاولت تطبيق الشرح الذي قدمته ولكن نفس المشكلة والمطلوب مساعدتك اذا بتريد ، مامعنى هاذه الرساله وما هوا الحل والعمل بالتفصيل لو امكن ...

في النهاية اسف على الازعاج ، اخوك ياسر ...

سلام...

#14

الأخ ياسر ....

قد يكون الملف ليس قاعدة بيانات .. قواعد بيانات ميكروسوفت العاديه تنتهي بـ mdb وليس msd

#15

اخي ملاحظة بسيطة جرب المثال يلي كتبته لك ولكن اجعل الخاصية recordsetTupe تساوي 1 بدلا من 0

مع تحياتي

musatarek@hotmail.com

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

#16

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

وشكرا وبارك الله فيك .

أخوك

#17

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

أنا عضو جديد في هذا المنتدى اتمنى أن أكون عضوا فعالا بالتعاون مع زملائي الكرام.

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

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

آسف على الإطالة

لو يسمح لي الأخوان في إضافة رأي لي خاص فيما سبق من حديث عن البحث في قاعدة البيانات ولكن لو تسمحوا لي بأن أتجرأ وأشرح ما توصلت إليه من خلال العمل مع برنامجي والذي يتسائل فيه أخي mf2001 لأنه كانت لدي نفس المشكلة وهو وجود ثلاث حقول للإسم كيف كانت فكرتي ؟

وهو أنني ذهبت إلى ملف قاعدة البيانات التي قد ربطتها مع البرنامج وشغلته بواسطة برنامج لإدارة قواعد البيانات مثل الآكسيس وأضفت حقلا جديدا إليه وسميته Fullname وحفظت الملف ثم فتحت الفجوال بيسك واضفت إلى المشروع صندوق نص جديد وسميته txtFullname وربطته مع الأداة وعرفت له الحقل الذي أنشأته أخيرا ولكنني عندما أريد أن أضيف سجل فإن صندوق النص المنشأ أخيرا يختفي بواسطة خاصية الـVISIBLE وتضهر ثلاثة حقول أكتب فيها الاسم الأول والثاني والأخير وعندما أضغط الزر حفظ أو UPDATE كتبت له ما يلي:

txtFullname.text = txtFirstname.text + " " + txtSecondname.text + " " + txtFamilyname.text

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

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

#18

خلاص ما تزعل حا اعطيك خطوات الحل بالتفصيل ( اتبع ما ساكتبه بالتفصيل وبعدين غير )

كون جدول في قاعدة البيانات بنفس اسماء التالية

fstname

scdname

trdname

frtname

على ان يكون نوعها نصي ، مع مجموعة اخرى من الحقول حددها انت وادخل مجموعة ممن البيانات للتجريب الكود اللاحق

كون مشرزع جديد

ضع فيه ادوات داتا كنترول و تيكست بوكس وفليكس جريد

عدل الخصائص التالية فقط

الداتا كنترول

حدد مكان وموقع قاعدة البيانات

اجعلها قابلة للقراة فقط

الخاصية recordsourcetype اكتب فيها

SELECT Employees.*, [FstName] & Space(1) & [scdname] & Space(1) & [trdname] & Space(1) & [frtname] AS FullName
FROM Employees;

وفي الفليكس جريد حدد الخاصية

datasource=data1

وثم افتح صفحة الكود واكت الكود التالي

Private Sub Text1_Change()
Dim Mysql
Mysql = " SELECT Employees.*, [FstName] & space(1) &  [scdname] & space(1) & [trdname] & space(1) &[frtname] AS FullName"
Mysql = Mysql & " From Employees"
Mysql = Mysql & " WHERE ((([FstName] & Space(1) & [scdname] & Space(1) & [trdname] & Space(1) & [frtname]) Like '" & Text1.Text & "*'));"
Data1.RecordSource = Mysql
Data1.Refresh
End Sub

وبعدها اعمل رن للبرنامج في حالة التشغيل تجد جميع الحقول ومعها الحقل الجديد في الفليكس جريد، وعندما تكتب في التيكست بوكس لا تبقى سوى السجلات التي تبداء بنفس الحروف يلي في التيكست

جرب واخبرنا بالنتائج

musatarek@hotmail.com

مع تحياتي

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

#19

ارشدني احد الاخوان ان بناء قاعدة بيانات في اكسس 2000 لا تعمل مع فجول بيسك 6 والحل بناء قاعدة بيانات مع اكسس 97 وجربت ونفع معاية ومشكورين على كل حال المشكلة الجديدة انا جربت طريقة البحث بجزء من كلمة ولم يعمل واعطاني مشكلة كما انني لدي في قاعدة البيانات مجموعة من الخانات مثل الاسم والعنوان ورقم الهاتف ... اريد البحث يمر على حسب اختيار المستخدم للبحث عن طريق الاسم او العنوان او ... الخ

#20

اخي اولا يمكن ربط اكسيس 2000 مع فيجول بيسك بس لازم تتوفر المكتبة الخاصة بهدا الربط وهدا مش موضوعنا ،

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

مع تحياتي

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

#21

الله يعطيك العافية انا مبتدئ اكثر مما تتصور وخلفيتي صغيرة جداً ورغبتي وطموحي كبيرة جداً فوق ما تتصور وما تدري كيف انا سعيد بالمنتدى ، المهم انا جملة البحث نفسها ماني عارف كيف اعملها جربت اللي مكتوب هنا وما نفع ولو فيك طول نفس تشرح لي sql على قدر ماتستطيع انا ملهوف لذلك وشكرا الف شكر مقدماً وياليت البريد على شان اراسلك بشكل خاص اذا بتريد ... سلام

#22

خلاص ولا يهمك اخي

ها اليومين ساقوم بشرح لكيفية استعمال SQL في الفيجول بيسك سوء في ال dao او ado بس اتحصل على شويت وقت وانا ماراح اتخر عليك

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

#23

الله يبارك فيك يا اعز صديق والله انك رجال وكريم

#24

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

جزاكم الله خير الجزاء على هالشرح المفيد

اخوي طارق و لايهونون باقي الربع

كيف اعمل بحث باستخدام ado على نفس قاعدة البيانات المكونة من اربع حقول

فلقد استطعت بفضل من الله ثم بفضل شرحكم عمل ذلك باستخدام data ولكن اريد ان استخدم ado

وللجميع جزيل الشكر

ياليت الشرح يكزن مفصل ترى اخوكم يبغاله هدا هدا

#25

الله يعطيك العافية

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</

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

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