PDA

View Full Version : نمونه برنامه ای که در اون جستجوی ترکیبی باشد.



Ali&Alex
سه شنبه 16 بهمن 1386, 16:11 عصر
با سلام یه نمونه برنامه ای می خوام که در اون از جستجوی ترکیبی استفاده شده باشد
به توضیحات زیر توجه کینید:

ببینید من منظورم از جستجوی ترکیبی اینه که مثلا ما یک پایگاه داده Access داریم که مربوط میشه به یک کلاس در که در اون نام دانش آموز ها، نام خواندگی ، نمرات یک درس ، سال ورود و ... .
حالا سوال از اینجا به دو بخش تقسیم میشه
قسمت اول :چگونه می توان برنامه ای نوشت که مثلا بر اساس نام X و نام خانوادگی Y جستجو کند؟ یا مثلا بر حسب چند کاراکتر( حداقل 2 تا) چطوریه ؟
قسمت دوم: حالا ما می خوایم که توی این کلاس فرضا افرادی رو پیدا کنیم که نام اونها X و نمره اونها 18 شده است . اینجا این مسئله مطرح میشه که شاید دونفری باشد یا چند نفری باشند که نام آنها یکی و نمره آنها نیز یکی باشد می خواهیم که وقتی جستجو انجام گرفت این افرادی رو که پیدا میکنه در یک لیست نمایش بده با تمام اطلاعات اونها.
برای اینکه بهتر متوجه بشید یه چنتا مثال دیگه هم میگم:
مثال 1:به فرض برنامه املاکی نوشته شده ما به دنبال ملکی می گردیم که متراژ اون به فرض 200 متر و موقعیت اون در سعادت آباد و ضمنا آپارتمان هم باشد.
مثال 2: به فرض برنامه کتابخانه نوشته ایم که می خواهیم در آن به دنبال کتابهایی بگردیم که نویسنده آن آقای X است و ضمنا اینکه این کتاب ها در سال مثلا 80 چاپ شده باشد یا مربوط به انتشارات خاصی باشد.
# توجه1# برای پاسخ به این سوال لطفا راهنمایی نکنید که چه کار بکنم خواهشا برای من یک نمونه برنامه قرار بدهید.
# توجه2 # در این برنامه حتما از پایگاه داده Access استفاده شود.
# توجه3 # در برنامه مورد نظر نوع جستجو خیلی مهم است که به صورت یک لیستی از کتاب ، ملک، دانش آموز و .... نشان داه شود یعنی خروجی جستجو به صورتی باشد که ما یک لیستی دریافت کنیم.
# توجه 4 # اگر بشود که در جستجو از Check Box استفاده کرد برای هرچه محدود کردن جستجو خیلی بهتر می شود( یعنی اینکه مثلا اگر Check Box نام تیک خورد در کنار اون Text Boxای برای نام روشن شود که بتوان در آن نام مورد نظر را نوشت و جستجو بر حسب آن که تیک دارد نیز انجام گردد. و اگر تیک نداشت خاموش باشد و جستجو بر حسب آن انجام نگیرد.)

این کاره هاش بیان جلو.

خیلی خیلی ممنون میشم که این مشکل واقعا بزرگ من رو حل کنید. چون در چندین و چند برنامه من نیاز به این نوع جستجو داشته ام که متاسفانه نمی دونستم.
امید وارم توضیحات برای اون چیزی که می خوام کافی باشه.



:متفکر: :خجالت:

Ali&Alex
سه شنبه 16 بهمن 1386, 19:12 عصر
فیلا نه همین خوبه :خجالت:

بالاخره ینفر پیدا می شه که سوال من رو جواب بده. :تشویق: :قلب:

Ali&Alex
چهارشنبه 17 بهمن 1386, 15:35 عصر
کسی نتونست کمکم کنه ؟؟؟

HjSoft
چهارشنبه 17 بهمن 1386, 16:47 عصر
منم همین سوال رو دارم

مبین رنجبر
چهارشنبه 17 بهمن 1386, 17:35 عصر
این جستجو کار زیاد مشکلی نیست .. فقط کافی از کاراکتر های WildCard مثل : * ، % در Syntax کد SQL اتون استفاده کنین

ramin1800
چهارشنبه 17 بهمن 1386, 18:34 عصر
سلام
این یک دیتا بیس هست که چند تا توش بکار رفته که باهاش میتونی در قسمتهای مختلف دیتابیس جستجو کنی مثل اسم یا فامیل یا ...
یکم باهاش کار کن میشه یکاریش کرد تا در چند قسمت مختلف همزمان جستجو بکنه...خودمم روش کار میکنم اگه تونستم درستش کنم برات میگذارم ولی حالا اول یک نیگا بهش بنداز

ادرس دیتا بیسشم تو درایو C هست.

Ali&Alex
چهارشنبه 17 بهمن 1386, 22:21 عصر
سلام
Ramin1800 ممنون از لطفت این برنامه ای که ضمیمه کردی خوبه و در برنامه نویسی گاهی کاربرد داره ولی خوب اون چیزی نیست که من دنبالشم.
در هر صورت ممنون.

vbhamed
چهارشنبه 17 بهمن 1386, 23:50 عصر
سلام
اینم برنامه این کار
فقط در مورد فایل nwind.mdb مسیرش رو در ADODC1 درست کن، این فایل در پوشه VB98 از پوشه اصلی Microsoft Visual Studio وجود داره

Ali&Alex
جمعه 19 بهمن 1386, 19:34 عصر
سلام
vbhamed دست شما درد نکه . ولی این چیزی نبود که من دنبالشم
این قصه هنوز باقیست.

ƒxmahdi
جمعه 19 بهمن 1386, 20:04 عصر
من قبلا این کار را کردم ولی مشکلی که هست اینه که سرعت جستجو را کمی پایین میاره و یه جورایی استاندارد نیست اگه بدرتون می خوره تا توضیح بدم چطوری؟

vbhamed
جمعه 19 بهمن 1386, 23:43 عصر
ببخشید پس منظور شما چیه ؟
برنامه ای که من فرستادم دقیقا مطابق با سؤال شماست
میشه بگین کجاش فرق داره ؟

Ali&Alex
یک شنبه 21 بهمن 1386, 15:12 عصر
اگه براتون ممکنه نمونه برنامه ای رو که درست کرده اید رو بزارید
ممنون.

vbhamed
دوشنبه 22 بهمن 1386, 00:22 صبح
سلام
اگر دو سه تاپست قبلی رو ببینید نمونه برنامه رو گذاشتم

Ali&Alex
دوشنبه 22 بهمن 1386, 15:41 عصر
ببخشید پس منظور شما چیه ؟
برنامه ای که من فرستادم دقیقا مطابق با سؤال شماست
میشه بگین کجاش فرق داره ؟

دوست عزیز نمونه ای که شما گذاشته بودی زمین تا آسمون با اون چیزی که من گفته بودم فرق داشت اصلا اون نبود. :افسرده:

HjSoft
دوشنبه 22 بهمن 1386, 15:53 عصر
دوستان لطفا جستو و جوی ترکیبی بذارید یعنی : مثلا حا زدی حامد رو بیاره ____ فکر کنم متوجه شدین

Ali&Alex
دوشنبه 22 بهمن 1386, 16:23 عصر
نه من منظورم این نیست
من کاملا توضیح دادم چی می خوام
ولی اگه این رو بخوای با وجود این که خودم یه عمر دنبال این برنامه بودم می تونم برات بزارم.

HjSoft
دوشنبه 22 بهمن 1386, 17:29 عصر
خوبه اگه بذارین

مبین رنجبر
دوشنبه 22 بهمن 1386, 19:30 عصر
شما میتونی از دستور SQL و WildCard ها استفاده کنی .. یعنی مثلا برای سرچ ترکیبی میتونی از کد زیر استفاده کنی :


"Select * From Table WHERE Table.Name Like '%حا%'"

در کد بالا اگر فیلد Name از جدول Table حاوی کلمه "حا" بود رو میاره

ƒxmahdi
دوشنبه 22 بهمن 1386, 20:12 عصر
دوستان همانطور که گفتم روش جستجوی ترتیبی را توضیح می دم
فرض کنیم که قصد جستجو در فیلدهای NAME , TEL, MOBIL را داریم
بایستی این فیلد ها در برنامه توسط Label یا Text Box و ... با بانک اطلاعاتی متصل باشند
بعد با یک حلقه For بایستی از اول تا آخر دیتابیس را بررسی می کنیم
حال فرض کنیم به انتخاب از لیست کمبو نام یا تلفن یا موبایل را برای جستجو تعیین می کنیم



Data1.Recordset.MoveFirst
For i = 0 To Data1.Recordset.RecordCount - 1
lens= Len(Trim(Tsearch.Text))
Select Case Combo1.Text
Case Is = "نام"
nums = Left(Text1.Text, lens)
Case Is = "تلفن"
nums = Left(Text2.Text, lens)
Case Is = "موبایل"
nums = Left(Text3.Text, lens)
End Select
If nums =Trim( Tsearch.Text )Then
در اینجا مقدار تکست باکس ها را به لیست جستجو شده اضافه می کنه
end if
Data1.Recordset.MoveNext
next i


Tsearch تکست باکس مورد نظر که کلمه جستجو در آن نوشته شده
براساس تعداد کارکتر مقدار از تکست باکس جدا شده و با Tsearch مقایسه می شود
در مورد حال اگه نام طرف مساوی بود و با سن اون یا ... مقایسه شود چه باید کرد خیله راحته فقط باید برای برنامه مشخص کنید که دوبار مقایسه کنه اگه سوال هست بفرمایید

HjSoft
دوشنبه 22 بهمن 1386, 20:23 عصر
ممنون مشکل من حل شد مونده مشکل جناب alex

Ali&Alex
دوشنبه 22 بهمن 1386, 22:14 عصر
ممنون مشکل من حل شد مونده مشکل جناب alex


اینجا هرچی بخوای بررسی شد الا سوال من. کسی نتونست بالاخره یه نمونه برنامه به من معرفی کنه.
:متفکر:

mosab_vb
دوشنبه 22 بهمن 1386, 22:37 عصر
مثل اینکه هیچکس منظور دوستمون رو متوجه نشد.
خوب کمی براتون توضیح بدم که سوال چیه.منظور ایشون این هست که اگه ما دو تا فیلد یا بیشتر برای اینکه به جواب جستجو نزدیک بشیم هر دو تا فیلد یا یکیش رو با اطلاعات بانک مقایسه.مثلا ما دو تا تکست باکس داریم یکی نامش هست tname و دیگری tlast هستش.
حالا می خوایم عمل جستجو رو با استفاده از این دو تکست باکس انجام بدیم.وقتی که روی جستجو کلیک می کنیم لیست افرادی که نامشان با tname یکی هست ظاهر بشه.وقتی که tlast هم پر باشه لیست افرادی که نام و فامیلی اونها با tlast و tname یکی باشه رو نمایش بده.کشتم خودمو.

mosab_vb
دوشنبه 22 بهمن 1386, 22:40 عصر
آقا یعنی اینجوری:


ado.recordsource="select * from table where name='"+tname.text+"' or last='"+tlast.text"'"

mosab_vb
دوشنبه 22 بهمن 1386, 22:42 عصر
آقا یعنی اینجوری:


ado.recordsource="select * from table where name=' "+tname.text+' " or last=' "+tlast.text" ' "

mosab_vb
دوشنبه 22 بهمن 1386, 23:20 عصر
بیا داداش اینم نمونه.

ƒxmahdi
سه شنبه 23 بهمن 1386, 08:54 صبح
جناب Ali&Alex اول بفرمایید توضیحاتی که من دادم بدر خورد یا نه من می خواستم برای شما پروژه را بگذارم ولی یکی حجمش زیاد بود و مطمئن بودم که نمی تونید مشکل خود را باحاش حل کنید چون خیلی پیچیده بود سعی می کنم یه برنامه نمونه بگذارم چطوره؟

mosab_vb
سه شنبه 23 بهمن 1386, 09:22 صبح
خیلی عالیه.حتما بگذارید.

Ali&Alex
سه شنبه 23 بهمن 1386, 21:31 عصر
جناب Ali&Alex اول بفرمایید توضیحاتی که من دادم بدر خورد یا نه من می خواستم برای شما پروژه را بگذارم ولی یکی حجمش زیاد بود و مطمئن بودم که نمی تونید مشکل خود را باحاش حل کنید چون خیلی پیچیده بود سعی می کنم یه برنامه نمونه بگذارم چطوره؟


عالیه استقبال می کنم هم من و هم دیگر دوستان. :تشویق:
چون برنامه ای که دوستمون mosab_vb قرار داده بود مشکلی داشت که کار نمی کرد :افسرده:
ممنون.

vbhamed
چهارشنبه 24 بهمن 1386, 01:14 صبح
دوست عزیز آقای Ali&Alex

مگه شما طبق گفته خودت همچین چیزی نمی خوای


مثال 1:به فرض برنامه املاکی نوشته شده ما به دنبال ملکی می گردیم که متراژ اون به فرض 200 متر و موقعیت اون در سعادت آباد و ضمنا آپارتمان هم باشد.
خب منم نمونه ای که برات گذاشتم بر اساس دو فیلد جستجو می کنه یعنی اگر هر دو textbox رو پر کنی مواردی رو لیست می کنه که باهر دو فیلد مطابقت داشته باشه، ضمن اینکه جواب هم به صورت لیستی هست

حالا این کجاش زمین تا آسمون با درخواست شما فرق داره ؟
شما به همه می گین این چیزی نیست که من می خواستم
پس لطفا واضح تر بگین شما چی می خواستید چون ظاهرا هیچکس متوجه منظور شما نشده

Ali&Alex
جمعه 26 بهمن 1386, 00:42 صبح
با عرض تشکر از دوست عزیز vbhamed (http://barnamenevis.org/forum/member.php?u=10624) پاسخ این سوال با نمونه برنامه ایشون البته با کمی دست کاری داده شد. ممنون.
البته اگر کسی بخواهد بازم نمونه برنامه رو بزارد خوشحال می شم من چون بالاخره هرکسی یه جوری فکر می کنه برنامه می نویسه.

ƒxmahdi
دوشنبه 29 بهمن 1386, 19:54 عصر
می بخشید که یخورده دیر شد در این برنامه جستجوی ترتیبی وجود داره این برنامه را من برای پروزه سال سوم (رشته کامپیوتر ) نوشتم یخورده مشکله که بفهمی چکار می کنه ولی اگه روش کار کنی خیلی بهتر هم می شه