PDA

View Full Version : listbox-database



komeil64
شنبه 08 شهریور 1382, 18:18 عصر
سلام
من با یه دستور سرچ توی یه فیلد رو سرچ میکنم
البته من سه فیلد دارم نام و ایمیل و آدرس
مثلا توی نام رو سرچ کردیم میخام بدونم چطور مثلا تو 2 تا تکست باکس فیلدهای روبرویی اون یعنی ایمیل و آدرس رو نشون بدم
مثلا اگه تو فایل اکسس یکی اسمش علی تلفن 2222222 آدرس تهرانه
وقتی علی رو سرچ کردیم و وقتی روی اون تو لیست باکس زدیم تو اون 2 تا تکست تلفن222222و آدرس تهران رو نشون بده :roll: :lol:

Abbas Arizi
شنبه 08 شهریور 1382, 18:28 عصر
اگر از Ado استفاده میکنید میتونید با استفاده از متد Find مکان نمای رکوردست رو بیارید روی اون رکورد و توی TextBox ها فیلدها رو نمایش بدید.
اگر از DAO هم استفاده کنید فکر کنم بتونید همین کار رو انجام بدید(دقیقا تست نکرده ام). فیلدی که باید با Find جستجو کنید همون آیتم انتخاب شده ListBox هست.

komeil64
یک شنبه 09 شهریور 1382, 12:50 عصر
سلام
من خوب متوجه جواب شما نشدم
با دستور find چطور؟؟
در ضمن اون تکست ها تو یه فرم دیگه هست

Abbas Arizi
یک شنبه 09 شهریور 1382, 13:27 عصر
راستش من به این مساله دقت نکردم که ممکنه شما توی ListBox ممکنه چند تا اسم همنام داشته باشید که اگر اینطوری باشه دیگه استفاده از Find کمکی نمیکنه.
وقتی که شما از ListBox استفاده میکنید، به دست آوردن اطلاعات از رکوردست در همچین حالتی یه مقدار سخت میشه. اگه از DataGrid استفاده کنید کارتون خیلی راحت میشه. چون روی هر سط DataGrid که کلیک کنید خودبخود مکان نمای رکوردست میاد رو اون رکورد و همه کنترلهایی که به Recordset، متصل هستند خودبخود Update میشن.
حتی اگر از ListView استفاده کنید، میتونید فیلد کلید جدول رو به عنوان کلید آیتمها در نظر بگیرید و یه کارایی بکنید.
در نهایت اگه بخواید از ListBox هم استفاده کنید میتونید اطلاعات پیدا شده رو خودتون از طریق یک کلاس توی یک Collection قرار بدید و عملیات جستجو رو توی اون Collection انجام بدید.
البته اینها راه حلهایی بود که به نظر من رسید. امکان داره دوستان دیگه راه حل های بهتری هم داشته باشند.

روح اله معینی زاده
سه شنبه 11 شهریور 1382, 11:57 صبح
:lol: با سلام خدمت دوستان گرامی

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

اگه بگی چی کار کردی باز می شه یک فکری واسش کرد.

با احترام - خدانگهدار.

A.Noor
سه شنبه 11 شهریور 1382, 14:25 عصر
با سلام
شما می‌تونید موقعی که لیست‌باکس را پر می‌کنید پراپرتی itemdata اون سطر لیست‌باکس را مساوی bookmark رکوردست قرار دهید


with LstStdName
.AddItem "رشته یا اسم مورد نظر شما "
.ItemData(.NewIndex) = MainRS.Bookmark
End With


در رویداد Click لیست‌باکس هم

Dim aa As Double
If LstStdName.ListIndex <> -1 Then
aa = LstStdName.ItemData(LstStdName.ListIndex)
MainRS.Bookmark = aa
TxtName = MainRS("Name")
TxtAddress = MainRS("Address")
End If


در این مثال MainRS نام رکوردست و LstStdName نام لیست‌باکس است

الهام تفریشی
سه شنبه 11 شهریور 1382, 15:19 عصر
سلام
دوست عزیز
چون احتمالا شما یعنی 100% شما اسم های مشابه دارین
پس باید از فیلدی که در جدول مربوطه کلید هست استفاده کنی
بهترین چیز برای این کار استفاده از
Datalist یا datacombo هست که در componnent Datalist contorol 6.0 می باشد
به این علت میگم که
در datalist ‌یک property ‌به نام Boundcolumn , ListField هست که شما میتونید
فیلدی که میخواین نمایش بده رو تو Listfield میذاری و اونی که میخوای باهاش Find کنی رو
تو Boundcolumn ‌قرار بده
نحوه خوندن ان هم به این صورت aa = DataList1.BoundText