PDA

View Full Version : نیاز به کمک فری



benighted.boy
پنج شنبه 06 اردیبهشت 1386, 17:57 عصر
سلام به تمام دوستان عزیز
نیاز به کمک دارم اونم یه مقداری فوری :ناراحت:
من یه فرم دارم که روش یه list boxو یه Listview قرار داره.
listboxرو با مقادیر یکی ازفیلدهای جدولم پر کردم.(در ضمن از کنترل adodcاستفاده کردم )حالا کاری که می خوام بکنم اینه که هر کدوم از ایتمهای listboxرو که روش کلید کردم همون رکوردرو برام برگردونه منتحا در listview
توضیح : فرض کنید من یهtableدارم که توش یه سری فیلد مربوط به یوزرهام هست (شامل نام کاربری وکلمه عبور وIDCodeو...)حالا من اومدم لیست باکسم رو با فیلدIDcodeپر کردم حالا می خوامListviewرو طوری فیلتر کنه که با کلیک برروی هرکودوم از ایتمهای listboxرکورد مربوطش در listviewنمایش داده شه.البته این فقط یه نمونه مثال بود .که بدجورم کارمو پیچ داده .اگه کسی راه حلی داره دریغ نکنه :گریه:

CodeMasterX
پنج شنبه 06 اردیبهشت 1386, 23:14 عصر
من یه کد اینجا گذاشتم که این کار رو میکنه.کافیه شما رکورد مورد نظرت رو از روی لیست باکست تشخیص بدی و انون به این تابع ارجاع بدی:

http://barnamenevis.org/forum/showthread.php?t=66272

benighted.boy
جمعه 07 اردیبهشت 1386, 10:53 صبح
قبل از هرچیز ممنون که جواب دادین اما:
دوست عزیز من همه مشکلم اینه که نمی تونم شماره رکورد مورد نظرم رو در لیست باکس پیدا کنم .اگه لیست باکسو میشد مثل gridبه صورت باند در آورد مشکل حل بود اما لیست باکسم آن باند هست و فقط یه بار موقع لود شدن فرم پر میشه .حالا کمکی که می خوام اینه که چه طور میشه شماره رکوردم رو از تو لیستی که لود شده بگیرم یا چطور میشه لیستم رو باند کنم؟
آقا اگه کسی راهی داره خواهش میکنم دریغ نکنه بدجور گیره همین جوابم :گریه: :افسرده:

perfeshnal
جمعه 07 اردیبهشت 1386, 11:59 صبح
سلام

اگر منظورتو درست فهمیده باشم ببین این برنامه بدردت می خوره البته توش ListView نداره

CodeMasterX
جمعه 07 اردیبهشت 1386, 14:36 عصر
ببین شما با دو روش میتونی رکورد مورد نظرت رو از لیست باکس بگیری.
اول این که شما بیای اینکس آیتم انتخاب شده رو بگیری که این روش تنها در صورتی جواب میده که مثلا رکورد های ID در جدول مربوطه به ترتیب افزون بشن،یعنی 1،2،3،... :



Private Sub List1_Click()
Dim strCustID As String
strCusID = List1.ListIndex + 1
'دستورات مربوطه


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



Private Sub List1_Click()
Dim Rs As New ADODB.Recordset
Dim SQL As String

SQL = "SELECT CustomerID FROM tbl_Customers WHERE CustomerName='" & List1.Text & "'"
Rs.Open SQL , CN , adOpenStatic,adLockOptimistic
Me.Caption = Rs.RecordCount & " - " & Rs.Fields("CustomerID").Value

Rs.Close


اینجا هم فرض رو بر این گرفتم که شما توی لیست باکستون نام مشتری ها رو ریختین و با انتخاب هر نام،یه رکوردست باز میشه و ID اون مشتری رو برمیگردونه.
مشکل حله ؟

benighted.boy
شنبه 08 اردیبهشت 1386, 08:24 صبح
آقای CodeMaster ممنون از راه حلات منم از همونا استفاده کردم .همه چی هم به ظاهر درسته اما شرطه توی فبلتر اعمال نمیشه.یا همه رکوردارو بر می گردونه یا هیچ کدومو.یه تیکه از سورسم رو میزارم اگه زحمتی نیست یه نگا بنداز ببین کجای کار میلنگه:گریه:
ممنونم