PDA

View Full Version : Combo و دیتا بیس



نعیم رضاییان
جمعه 23 اردیبهشت 1384, 15:56 عصر
سلام دوستان
من یک بانک اطلاعاتی دارم که می خوام تمام نامهای که در داخل بانک اطلاعاتی هستش رو در یک Combo نشون بدم و وقتی هر کدوم از نام ها رو در Combo انتخاب کرد بقیه مشخصات طرف رو نشون بده که در همون فیلد قرار داره
میشه یه نمونه بزارید یه راهنمایی کنید
مرسی

sasanhe
شنبه 24 اردیبهشت 1384, 00:36 صبح
اول روی فیلدی که نیاز داری باید select بزنی و تویه یک recordset اطلاعاتش رو نگه داری .
بعد بگی اگه recordset خالی نبود بیاد از اولش شروع کنه و هر بار که یک رکورد جلو میره تویه combo ,
Additem کنه . این کار کامبو رو پر میکنه .

حالا اگه مایلی که با انتخاب یک نام در کامبو , اطلاعات اون رو نشون بده باید تویه جدولی که اطلاعاتش هست
یک select روی اون نام انجام بدی ولی نامی که جستجو روی اون صورت میگیره باید یکتا باشه.
اگه مشکلت حل نشد یه نمونه پیدا میکنم .

موفق باشید

In_Chan_Nafar
شنبه 24 اردیبهشت 1384, 11:51 صبح
سلام
شما با استفاده از حلقه While کومبوباکست رو پر کنی و ضمن اینکه نام و نام خانوادگی رو به کومبوباکست AddItem می کنی باید ID رکوردت رو هم به ItemDataی کومبوباکس ربط بدی. وقتی هم می خوای نشون بدی از خاصیت ItemDataی کومبو استفاده کن.


While Rs.eof
Combo1.additem rs.fields("Name").value
Combo1.listindex=combo1.listcount-1
Combo1.Itemdata(combo1.listindex)=rs.fields("ID").value
rs.movenext
wend

نعیم رضاییان
یک شنبه 25 اردیبهشت 1384, 08:24 صبح
سلام
اقا از راهنمایی شما منونم مشگل در پر کردن comboنیست فقط می هوام نثلا وقتی اسم داخل کامبو رو انتخاب مبکنه بقیه مسخصات رو نشون بده اگه امکانش هست یک نمونه فایل بزارید
مرسی

In_Chan_Nafar
دوشنبه 26 اردیبهشت 1384, 01:25 صبح
شما فهمیدی من واسه چی ID رو در قسمت Item می نویسیم
خوب واسه اینکه با استفاده از اون بتونی (با استفاده از ID) دیگر مشخصات رو نشون بدی
توجه توجه با نام کاری نداریم با Item Data (که در بر گیرنده ID هست) کار داریم :mrgreen:

In_Chan_Nafar
دوشنبه 26 اردیبهشت 1384, 01:27 صبح
البته اگه نگرفتی بعدآ یه مثال می ذارم (دیگه حال نداشتم اون بالایی رو ویرایش کنم :mrgreen: ) :flower:

نعیم رضاییان
دوشنبه 26 اردیبهشت 1384, 09:50 صبح
اونو فهمیدم نمیدونم از این id باید چه جوری استفاده کنم
:flower:

In_Chan_Nafar
دوشنبه 26 اردیبهشت 1384, 23:39 عصر
این مثال رو ببین

نعیم رضاییان
سه شنبه 27 اردیبهشت 1384, 10:08 صبح
اقا دستت درد نکنه دقیقا همونی بود که می خواستم

:flower: :flower: :flower:

نعیم رضاییان
سه شنبه 27 اردیبهشت 1384, 14:43 عصر
سلام

اقا اگه من از ado استفاده کرده باشم باید کد ها رو به چه شکل تغییر بدم
ممنون میشم اگه توضیح بدید
مرسی
:flower:

In_Chan_Nafar
چهارشنبه 28 اردیبهشت 1384, 01:59 صبح
سلام
شما فقط دستور FindFirstet تونو باید عوض کنین. و بجاش از این استفاده کن

AdoDC1.recordset.find "ID=" & combo1.itemdata(combo1.listindex)
If adodc1.recordset.eof=True'یعنی هیچ رکوردی یافت نشد
بعدش عین همونییه که تو dao استفاده شده
اگه مشکلتون حل نشد یه مثال هم واسه این میذارم. :موفق:

نعیم رضاییان
چهارشنبه 28 اردیبهشت 1384, 08:29 صبح
اقا از راهنمایی شما منونم فقط من اینو به ایت شکل استفاده می کتن و هیچی نشون نمیده نمی دونم مشگل از کجاست


On Error Resume Next
Adodc1.Recordset.Find "ID=" & Combo1.ItemData(Combo1.ListIndex)
Text1.Text = Adodc1.Recordset.Fields("famil").Value

مرسی :flower:

In_Chan_Nafar
چهارشنبه 28 اردیبهشت 1384, 19:21 عصر
با سلام و خسته نباشید
من یه مثال واسه Ado هم اینجا میذارم امیدوارم مشکلت حل بشه. :موفق:

hadi2345
چهارشنبه 28 اردیبهشت 1384, 19:38 عصر
با سلام . میتونی از این کد هم استفاده کنی :



Dim S1 As String

If Not Adodc1.Recordset.EOF Then

While Not Adodc1.Recordset.EOF

Combo1.AddItem (Adodc1.Recordset!your_field)
Adodc1.Recordset.MoveNext

Wend

Combo1.Text = Combo1.List(0)

End If

S1 = "'" & Combo1.Text & "'"

Adodc1.RecordSource = "SELECT * FROM Table1 WHERE your_field=" & S1 & ""
Adodc1.Refresh

Text1.Text = Adodc1.Recordset!your_field

In_Chan_Nafar
پنج شنبه 29 اردیبهشت 1384, 00:23 صبح
سلام دوست عزیز(هادی 2345)
آقا هادی شما بهتره اول خوب تاپیکو مطالعه کنی تا بدونی که جوابت کاملا اشتباست.
بهتره مثالهارو دانلود کنی و نگاه کنی اگه مشکلی داشت بعد جواب بدی. :wise2:

hadi2345
پنج شنبه 29 اردیبهشت 1384, 06:30 صبح
سلام دوست عزیز in_chan_nafar
اینکه تاپیک رو مطالعه کنم . من این کارو کردم و بعد جواب دادم . در ضمن ارائه چند کد مختلف هیچ ایرادی نداره و باعث افزایش تجربه من و شما خواهد شد و حتما هم لازم نیست که کد شما مشکل داشته باشه تا کد دیگری ارائه شود و نوشته بودم که : از این کد نیز میتوانید استفاده کنید و مفهوم آن این نیست که کد شما مشکل داشته.
و در مورد اشکال کد :
کدی که من نوشته ام در جندین برنامه استفاده شده و دقیقا همان چیزی است که خواسته شده و هیچ ایرادی ندارد (اگر خواستید برنامه را بذارم) .
:)

In_Chan_Nafar
پنج شنبه 29 اردیبهشت 1384, 10:16 صبح
برادر من اگه این کد واسه چند تا اسمه تکراری اجرا بشه اون وقت دیگه اینو نمی گی :mrgreen:
ایشون می خواد که یک نفر رو انتخاب کنه وبعد دیگر مشخصات رو نشون بده ولی مال شما اگه جواب هم بده (که میده) واسه اسم های تکراری ..........
(فکر کنم بهتره بری تاپیک و خوب خوب خوب خوب بخونی) :D :mrgreen:

hadi2345
پنج شنبه 29 اردیبهشت 1384, 13:40 عصر
من برنامه شما رو برداشتم و اونو نگاه کردم . و اولین نفری هم بودم که اونو download کردم.
مطلبی که شما نوشتید درسته ولی اگر کدی که من نوشتم ایراد داره باید بگم که مال شما هم ایراد داره چون مثلا فرض کن 10 تا علی علوی داشته باشی اونوقت برای اینکه اونی رو که میخوای پیدا کنی باید یکی یکی بر روی اسمها کلیک کنی تا بالاخره پیداش کنی . برای اون مشکل هم باید ID رو تو COMBO گذاشت که PRIMARY KEY هست و همون کد من هم کافیه .

In_Chan_Nafar
پنج شنبه 29 اردیبهشت 1384, 19:30 عصر
ویرایش شد
دوست (یا دوستان )محترم خواهشمندم از هرگونه توهین و بکار بردن کلمات نامتجانس جدا خودداری کنید
ما در اینجا محیط صمیمی و علمی رو میخواهیم برای همه فراهم کنیم
دوستی ها رو فراموش نکنید

نعیم رضاییان
پنج شنبه 29 اردیبهشت 1384, 20:45 عصر
سلام
جناب In_Chan_Nafar
واقعا دستت درد نکنه کاملا مشگلم حل شد . در مورد کد hadi2345
چون واقعا من در این مورد اطلاعی ندارم نمی تونم نظر بدم اگه میشه یه مثال از فایل بزاریم شاید کد بهتری رو بتونیم اینجا قرارا بدیم و یاد بگیریم
مرسی :flower:

hadi2345
پنج شنبه 29 اردیبهشت 1384, 20:59 عصر
بازم که نگرفتی عزیز من . قبول کن که کدت ایراد دارد .

ابا IQ من ID رو تو ItemData ریختم

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

a_roshanfekr2
جمعه 30 اردیبهشت 1384, 02:47 صبح
با سلام
برای مساله مطرح شده یک پاسخ پیش بینی شده نیز وجود داره
و اون استفاده از کنترلهایی به نام
Microsoft DataList Controls(OLEDB)0
هستش . کافیه این کنترل ها رو به پروژه اضافه کنید
بقیه قضایا حله
خواص مهم این دو کنترل شبیه به هم:
RowSource نام کنترل ADO
ListField نام فیلد مورد نظر برای نمایش
BoundText نام فیلد مورد نظر برای کد هر فیلد نمایش داده شده

رویداد مهم:
Change برای فهمیدن تغییر گزینه انتخاب شده توسط کاریر
در صورتی که کاربر هیچ گزینه ای را انتخاب نکرده باشده
BoundText برابر ""(رشته با طول صفر) خواهد بود

امید وارم به دردتون بخوره

In_Chan_Nafar
جمعه 30 اردیبهشت 1384, 22:00 عصر
آقا هادی خوش باش :sunglass: