ورود

View Full Version : فرم جستجو



azamkaboutari
شنبه 10 شهریور 1386, 23:01 عصر
من در برنامم فرم جستجویی دارم شامل یک TextBox و یک Listbox که توی ListBox نام و نام خانوادگی دانشجویان رو نشون می دم که البته از جدول دانشجویان Load میشه . می خواستم ببینم چطور می تونم با وارد کردن هر حرفی در TextBox دانشجویانی که اسمشان با اون حرف شروع میشه به اول لیست بیان .
این کار خیلی تو برنامه های ویندوز انجام میشه مثلا در اکسل تو کادر Format Cells وقتی در textbox زیر فونت می نویسیم T در لیست پایین Tahoma به اول لیست میاد این کار رو چطور میشه تو برنامه هامون انچام بدیم . متشکرم

MH2538
یک شنبه 11 شهریور 1386, 08:13 صبح
خیلی ساده می تونی از یکی از دوتا راه زیر رو انتخاب کنی.
1-بر اساس حروف وارد شده در textbox دیتاستت رو فیلتر کنی
2- یک دستور sql با استغاده از like‌بنویسی. (این دومی زیاد توصیه نمیشه)

azamkaboutari
یک شنبه 11 شهریور 1386, 08:50 صبح
می تونید راه حل اولتون رو یه کم بیشتر توضیح بدید.ممنونم

MH2538
یک شنبه 11 شهریور 1386, 10:37 صبح
سلام
نمونه کد


txtGoods.Text=DSGoodsProperties.Tables[0].Select("GoodID=" + txtGoodID)[0]["GoodName"].ToString();

azamkaboutari
پنج شنبه 22 شهریور 1386, 18:31 عصر
سلام
نمونه کد


txtGoods.Text=DSGoodsProperties.Tables[0].Select("GoodID=" + txtGoodID)[0]["GoodName"].ToString();


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

azamkaboutari
جمعه 23 شهریور 1386, 11:03 صبح
دوستان عزیز لطفا به من بگید این کدی که MH2538 چیه و کجا باید این کد رو نوشت ؟

omidmehraban
جمعه 23 شهریور 1386, 16:58 عصر
قابلیت جدیدی برای TextBox ها وجود داره که میشه به شکل ساده تری این کار را کرد و اون هم AutoComplete هست.

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

تو رویداد TextChanged بنویس:


For Each Item As Object In LstStudents.Items

If Item.Tostring Like txtStudent.Text Then
lstStudent.SelectedItem=Item

Next

omidmehraban
جمعه 23 شهریور 1386, 16:59 عصر
http://vbapr.blogfa.com/

PC2st
جمعه 23 شهریور 1386, 17:46 عصر
دوستان عزیز لطفا به من بگید این کدی که MH2538 چیه و کجا باید این کد رو نوشت ؟


txtGoods.Text=DSGoodsProperties.Tables[0].Select("GoodID=" + txtGoodID)[0]["GoodName"].ToString();

DSGoodsProperties نام شیئ DataSet است.
txtGoodID یک متغیر است.
هر شیئ DataTable (مثلا [Tables[0) دارای یک متد SELECT هست که پارامتر آن رشته ای است که قسمت شرطی برای یافتن رکوردها است. که در اینجا از GoodID=" + txtGoodID" استفاده شده که به معنی رکوردهایی است که فیلد GoodID آن برابر txtGoodID باشد.
توسط قسمت [0] به اولین رکورد یافته شده، دسترسی می یابیم.
توسط قسمت ["GoodName"] ، مقدار فیلد GoodName از این رکورد را میگیریم.

البته این کدها برای سی شارپ بود، در بیسیک.نت، چیزی شبیه به زیر باید باشد:


txtGoods.Text = DSGoodsProperties.Tables(0).Select("GoodID=" + txtGoodID)(0)("GoodName").ToString();

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

کد فوق، رکوردهای جدول (Table(0 رو میگرده و رکوردهایی که فیلد GoodID آن برابر txtGoodID باشد را پیدا میکند و مقدار فیلد GoodName از اولین رکورد یافته شده را در txtGoods.Text قرار میدهد.

azamkaboutari
شنبه 24 شهریور 1386, 09:25 صبح
ممنونم از دوستانی که راهنماییم کرده بودن ولی مشکل من حل نشد.
شاید سوالم رو درست مطرح نکردم .

کاری که من میخوام بکنم تو خیلی از برنامه های ویندوز از جمله Notepad انجام میشه .

اگه لطف کنید و در Notepad برید از منوی Format گزینه Font رو انتخاب کنید می بینید که در قسمت Font به محض نوشتن حرفی ، فونت هایی که با این حرف شروع میشن به اول لیست میان ، کاری که اینجا انجام میشه دقیقا همون کاریه که من می خوام تو فرمم انجام بدم .
منتهی من لیستم را از یک جدول پر می کنم تا نام دانشجویان رو نشون بده .

خیلی ممنون میشم اگه کمکم کنید مشکلم حل بشه . لطفا بی جواب نزارید.

azamkaboutari
شنبه 24 شهریور 1386, 20:38 عصر
دوستان محترم لطفا این تاپیک رو بی جواب نزارید.