PDA

View Full Version : سوال: یه سوال در مورد کمبو



look20
دوشنبه 03 آبان 1389, 18:55 عصر
با سلام و خسته نباشید یه مشکل کوچیک داشتم:
می خوام چند تا کمبو داشته باشم با این قابلیت که وقتی یه چیزی رو از کمبو انتخاب میکنم توی کمبو بعدی چیزی انتخاب بشه ببخشید نتونستم بهتر از این توضیح بدم
مثلا توی combo1 حروف الفبا رو داشته باشم (الف ب ج چ ح خ د ....)
و به تعداد آیتم هایی که دارم کمبو داشتم باشم
فرضا همین مثال بالا 32 حرف در کمبو بالا دارم حالا میخام هر کدوم از حروف توی کمبو1 رو انتخاب کردم کمبو مربوط به اون حرف نمایش داده بشه
فرضا حرف الف انتخاب شد یه کمبو نشون داده بشه که این آیتم ها رو داره(1-2-3-4)
حرف ب انتخاب بشه کمبو فقط (5-6-7)
و همینطور الا آخر البته اون چیزی که میخام طراحی کنم اصلامربوط به حروف الفبا نیست فقط این مثال بالا رو زدم تا شاید منظورم رو رسونده باشم:متفکر:
ممنون میشم راهنمایی کنید با تشکر:افسرده::تشویق:

Slytherin
دوشنبه 03 آبان 1389, 19:08 عصر
احتمالا شما می خواهید چیزی شبیه این بسازید که به عنوان مثال وقتی نام یک استان انتخاب شد، در کمبو دیگر نام شهر های آن استان نمایش داده شود.
به نظر من با توجه به نیازتون شما 2 تا کار می توانید انجام دهید:
1.با انتخاب یک آیتم از کمیو1 محتویات کمبو2 نظیر آن آیتم تغییر کند.
2.به تعداد آیتم های کمبو1، کمبو با خاصیت Visiable = False داشته باشید و انخاب آیتم از کمبو1، خاصیت Visible کمبو نظیر آن True شود.
امیدوارم تونسته باشم کمک کنم;)

look20
دوشنبه 03 آبان 1389, 19:16 عصر
2.به تعداد آیتم های کمبو1، کمبو با خاصیت Visiable = False داشته باشید و انخاب آیتم از کمبو1، خاصیت Visible کمبو نظیر آن True شود.
امیدوارم تونسته باشم کمک کنم;) ممنون دوست عزیز خودم اینو میدونستم میخاستم می شه با کد و مثال توضیح بدید که مثلا به قول خودتون اگه نام اون استان انتخاب شد نام شهرهای دیگه رو بیاره
یعنی چطور تعریف کنم مثلا اگه اصفهان رو انتخاب کردم کمبویی که شهرهای مربوط به اصفهان رو داره بیاره
ببخشید

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

archDevil
دوشنبه 03 آبان 1389, 19:30 عصر
با سلام خدمت شما دوست عزیز
درباره کاری که می خوای انجام بدی می تونی با یک Switch تعیین کنی که با انتخاب فلان آیتم کدام کمبو رو فعال کنه می تونی از خصیصه های دیگری هم استفاده کنی اما من این کار رو پیشنهاد نمی کنم اگه یه خورده روی الگوریتم کارت فکر کنی می بینی که کاری مناسبی نیست
می تونی این کار رو انجام بدی که فقط با 2 کمبو کارت راه بیفته به این صورت که تمام زیر مجموعه های شهر اصفهان را توی یه فایل باینری بنویسی وبا انتخاب اصفهان به عنوان مثال مقادیر موجود در فایل A خوانده شود و در کمبوی دوم قرار گیرد به نظر من این کار کار تمیز تر و قشنگ تری است.
امیدوارم تونسته باشم کمکدون کنم.

look20
دوشنبه 03 آبان 1389, 19:35 عصر
ممنون دوست عزیز من برنامه نویس نیستم اگه امکانش باشه میشه فقط چند تا مثال کوچیک با کد بزنید
روشی که میگید با Switch فلان کمبو فعال بشه چطور؟
بنظر خودم هم روش دوم خیلی بهتره شاید کد نویسی بیشتر بخاد مزیتش اینکه دیگه آبجکت زیادی نداری که بخاد سنگین بشه
ممنون میشم روش اول و روش دوم را با کد و یه مثال کوچیک برام روشن کنید

returnx
دوشنبه 03 آبان 1389, 21:18 عصر
این ببین ، منظورتون این بود؟

look20
دوشنبه 03 آبان 1389, 22:03 عصر
دوست عزیز ممنون ولی یه مشکل داره اونم اینکه وقتی مثلا مازندران رو انتخاب میکنی کمبو 2 شهرهای مازندران رو میاره ولی وقتی میری تهران رو انتخاب میکنی کمبو2 تمام شهرها رو میاره
چطور این مشکل رو باید حل کرد

MMR_1344
دوشنبه 03 آبان 1389, 22:11 عصر
این تغییر رو بده


Private Sub Combo1_Click()
Combo2.Clear
If Combo1.Text = "mazandaran" Then
mazand_add
ElseIf Combo1.Text = "tehran" Then
tehran_add
End If

End Sub
در ضمن دوست عزیز برای این کار میتونی یک فایل اکسس شامل استانها و ارتباط اون با شهرها ایجاد کنی و از اون در کمبو باکست انتقال بدی

parsiyan_mohsen
دوشنبه 03 آبان 1389, 23:01 عصر
با سلام و احترام

دوست عزیز از این روش هم می تونی استفاده کنی :


Private Sub Combo1_Click()
If Combo1 = "Fars" Then
Combo2.AddItem ("Shiraz"), List
Combo2.AddItem ("Jahrom"), List1
Combo2.AddItem ("FiruzAbad"), List2
Else
If Combo1 = "Tehran" Then
MsgBox "Not Found Information For Tehran"
End If
End If
End Sub

look20
سه شنبه 04 آبان 1389, 11:09 صبح
با تشکر از همه دوستان ولی همونطور که گفتم موقع انتخاب اول درست کار میکنه ولی وقتی استات دیگه ای رو انتخاب میکنی درست عمل نمیکنه

در ضمن اگه امکانش باشه میخام از طریق پایگاه اکسس اطلاعات رو وارد کنم چکار باید بکنم
توی روشی که دوستان نشون دادن از طریق نوشتن نام شهر و استانه ولی من میخام اطلاعاتم رو از طریق اکسس اتصال بدم
این فایلی که ضمیمه کردم رو نگاه کنید می خام بدون استفاده از دکمه های ado که به رکورد قبل و بعد میبره
از خود کمبو 1 به رکورد اول تا آخر دسترسی داشته باشم و اگه هر کدوم از رکورد ها رو که انتخاب کردم code مربوط به اون id نمایش داده بشه مثلاali رو انتخاب کردم کمبو2 عدد 3 رو نمایش بده اگه mohamad رو از کمبو1 انتخاب کردم کمبو2 عدد 1 رو نمایش بده و...
البته میخام بصورت دینامیک باشه یعنی اگه بعدا اطلاعات جدیدی رو توی اکسس وارد کردم بطور خود عملیات انجام بشه نه از طریق کدنویسی

milad-fa
سه شنبه 04 آبان 1389, 11:40 صبح
با سلام،
دوست عزیز برای اتصال دادن کامبو به بانک باید for بگیری فکر نکنم راهی جز این وجود داشته باشه که تو تعداد رکورد بالا چندان خوب نیست برای اتصال کامبو به بانک بهتره از DataBase ComboBox استفاده کنی.
یک نگاه به این تاپیک زیر بنداز در مورد استفادش توضیح دادم.
وصل كردن Combo به پايگاه داده (http://barnamenevis.org/forum/showthread.php?t=170424)
موفق باشید.

returnx
سه شنبه 04 آبان 1389, 12:04 عصر
دوست عزیز ممنون ولی یه مشکل داره اونم اینکه وقتی مثلا مازندران رو انتخاب میکنی کمبو 2 شهرهای مازندران رو میاره ولی وقتی میری تهران رو انتخاب میکنی کمبو2 تمام شهرها رو میاره
چطور این مشکل رو باید حل کرد
برای کد combo1 از این کد استفاده کن مشکل حل میشه.

Combo2.Clear
If Combo1.Text = "mazandaran" Then
mazand_add
ElseIf Combo1.Text = "tehran" Then
tehran_add
End If

look20
سه شنبه 04 آبان 1389, 12:27 عصر
دوست عزیز milad-fa (http://www.barnamenevis.org/forum/member.php?u=130760) این کار رو کردم ولی مشکل اینجاست که میخام اگه رکوردی رو از کمبو1 انتخاب کردم از کمبو2 فیلدمربوط به اون رکورد نمایش داده بشه
فرضا اگه reza رو انتخاب کردم اتوماتیک عدد 2 توی کمبو2 ثبت بشه اگه mohamadرو انتخاب کردم عدد 1 توی کمبو2 ثبت بشه و....
فایل ضمیمه رو دانلود کنید...

returnx
سه شنبه 04 آبان 1389, 13:20 عصر
برای اتصال Combo box به دیتابیس می تونی از این روش(سورس گذاشتم) استفاده کنی (من خودم اصولا از این روش استفاده میکنم)

ali682344
سه شنبه 04 آبان 1389, 17:29 عصر
سلام دوست عزيز
شما بايد از ارتباط جداول استفاده كني
به طور كلي شما بايد درون پايگاه داده اكسست دو جدول داشته باشي يكي براي استان و يكي ديگه براي شهرها
حالا براي استان ها يك فيلدي به نام كد تعريف كن و براي فيلد ديگت اسم استان در ،داخل فيلد كد براي هر اسم استان يه كد بزار مثلا براي تهران كد 1 ، اصفهان كد 2
تا اينجا كه مشكلي نداري نه كد مي خواي نه چيزي.
حالا توي جدول شهرت هم دو فيلد رو كه گفتم مي زاري با اين تفاوت به جاي نام استان نام شهر رو مي زاري
خوب اينجا براي هر شهري كه مي نويسي كد مربوط به اون استان را داخل فيلد كد شهرها مي نويسي
اره درسته مثلا براي تهران 5 شهر داريم كه همه شهرها را با كد 1 ثبت مي كنيم

ديگه كار جداولت تموم شد.
حالا از سورس كد اقا يا خانم ms2222 استفاده كن.

البته ناگفته نمونه راههاي ديگه هم هست ديگه گفتم اين روش براي شما بهتره ، بهترين روشش همون ارتبط جداوله
همين چيزي كه نوشتم روياد بگير مي توني يه جستجويي هم در اين مورد انجام بدي.

موفق باشي/