کومبوباکس در اکسس

روشهای مختلف ایجاد کمبوباکس در اکسس و افزودن اطلاعات به آن

کومبوباکس در اکسس

بعد از مطالعه این مطلب سطح دانش شما در مورد ایجاد کومبو باکس در اکسس و ویرایش آن بسیار افزایش می یابد و آموزش حاوی نکات و ترفندهای اکسس است که احتمالا نمی دانید.

[su_note note_color=”#c4c4c4″]

دسترسی سریع

روشهای مختلف کومبو باکس در اکسس

روشهای افزودن داده جدید به کومبوباکس اکسس

[/su_note]

[sta_anchor id=”a” /]ایجاد کومبوباکس در جداول اکسس

  • ابتدا در یک پوشه خالی کلیک راست کنید و از گزینه New گزینه Microsoft Access Database را انتخاب نمائید.
  • ایجاد فایل اکسس جدید
    ایجاد فایل اکسس جدید
  • نام دلخواه برای خود انتخاب نمائید .
  • تغییر نام فایل اکسس
    تغییر نام فایل اکسس
  • فایل را باز کنید با نام tblCity ایجاد کنید .
  • فیلد اول رو با نام cityId و از نوع AutoNumber ایجاد کنید .
  • جدول جدید در اکسس
    جدول جدید در اکسس

     

    فیلد دوم رو با نام cityName و از نوع Short Text ایجاد کنید .

  • همینطور که فیلد cityName انتخاب شده است از قسمت پائین مانند تصویر به تب Lookup بروید.
  • ساخت کومبو باکس در جدول
    ساخت کومبو باکس در جدول
  • و از لیست پائین افتادنی گزینه Combo Box را انتخاب نمائید.
  • در قسمت Row Source Type گزینه Value List رو انتخاب کنید .
  • کار تمومه و هرجا که فرمی از روی این جدول بسازید فیلد نام شهر به صورت خودکار کومبو باکس در اکسس نمایش داده میشه

[sta_anchor id=”b” /]انواع داده ها در لیست پائین افتادنی کومبوباکس

۱- Table/Query

انتخاب ابن گزینه باعث میشه که دادهای کومبوباکس رو بتونید از داده های وارد شده در یک جدول دیگه و یا ک.ئری انتخاب کنید .

۲- Value List

یه باکسی باز میشه و شما میتونید داده ها رو خودتون وارد کنید ، بیشتر برای داده های محدود مثل واحد های سنجش کاربرد داره .

۳- Field List

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

[sta_anchor id=”c” /]تنظیمات قابل انجام در نمای طراحی جدول کومبوباکس

۱- Row Source Type

در پاراگراف قبلی توضیح داده شد و برای انتخاب منبع داده هایی که باید در کومبوباکس نمایش داده شود مورد استفاده قرار می گیرد.

۲- Row Source

نسبت به نوع منبع داده ای که در Row Source Type انتخاب کرده اید متغیر است و میتواند جدول یا کوئری و یا لیستی از داده  های دستی باشد.

۳- Bound Column

میپرسد که کومبوباکس کدام ستون را به عنوان داده اصلی خود قلمداد کند .

نکته : زمانی کاربرد دارد که شما Row Source خود را از نوع جدول یا کوئری انتخاب کرده باشید و اگر عدد یک را قرار دهید ستون اول آن جدول یا کوئری را به عنوان داده اصلی خود اعمال می کند .

۴- Column Count

تعداد ستونهایی که می خواهید زمان فعال شدن کومبو باکس در اکسس نمایش داده شود .

نکته: اگر جدول انتخابی شما دارای دو ستون باشد و شما عدد یک را وارد کرده باشید فقط ستون اول را نمایش خواهد داد.

۵- Columns Heads

نمایش یا عدم نمایش عنوان ستونها در کومبوباکس اگر روی yes باشد نتیجه مانند تصویر زیر است.

۶- Columns Widths

عرض ستونهای نمایش داده شده در لیست پائین افتادنی کوبوباکس را مشخص می کند .

الگوی زیر به اکسس می گوید که ستون اول را نمایش نده و ستون دوم را با عرض ۲ نمایش بده.

۷- List Rows

مشخص می کند که هنگام پائین افتادن لیست چند ردیف نمایش داده شود.

۸- Limit To List

داده های وارد شده در این فیلد محدود به داده های موجود در کومبوباکس باشد .

نکته : اگر این قسمت روی Yes تنظیم شود شما نمی توانید داده ای خارج از داده هایی که در کومبوباکس مشخص کرده اید وارد کنید و اگر روی No تنظیم شود ، داده های جدید که وجود نداشته را هم می پذیرد.

۹- Allow Multiple Value

امکان انتخاب چند گزینه از کومبوباکس را به کاربر می دهد  و انتخاب ها را با کاما از هم جدا کرده و در قسمت مربوطه وارد می کند .

۱۰- Allow Value List Edits

به کاربر اجاره می دهید که داده ای درون کومبوباکس را ویرایش و حذف و اضافه کنید .

نکته : اگر نوع داده Value List باشد و گزینه دهم روی Yes تنظیم شده باشد ، زمانی که لیست باز میشود در انتهای لیست دکمه کمرنگی دیده می شود که کاربر با کلیک بر روی آن می تواند لیست داده ا را ویرایش نماید و اگر نوع داده جدول یا کوئری باشد باید از ردیف بعد فرمی که برای ویرایش داده های آن جدول و کوئری وجود دارد را انتخاب نمائید.

[sta_anchor id=”d” /]ایجاد کوبوباکس در فرم

ابتدا یک فرم در نمای Design View باز کنید و از تب بالا قسمت Design یک کمبوباکس انتخاب کرده و در فرم خود قرار دهید .

ایجاد کومبوباکس در فرم اکسس
ایجاد کومبو باکس در فرم اکسس

کومبو باکس را انتخاب کنید و در پنجره خصوصیتها و تب All اسم کنترل رو به cboCity تغییر بدین .

در تب Data گزینه Row Source را روی tblCity قرار دهید.

به تب Format برید و Column Count رو به ۲ تغییر بدین .

Column Width رو به  ۲;۱ تغییر بدین . ( جدا کننده سیمی کالمن هست)

کومبو باکس اکسس
کومبو باکس اکسس
[sta_anchor id=”e” /]روشهای افزودن داده جدید به کومبوباکس اکسس

۱- تغییر تنظیمات کمبوباکس برای پذیرش داده جدید

  • کومبو باکس را انتخاب نمائید
  • در تنظیمات گزینه Limit to List را روی No تنظیم کنید .
  • با این تنظیم اگر داده ای وارد کنید که در لیست وجود نداشته باشد ، اکسس آن را اضافه می کنید .

۲[sta_anchor id=”f” /]- استفاده از فرم باز شونده

  • این گزینه زمانی کاربرد دارد که شما در Row Source کومبو باکس در اکسس رو گزینه جدول یا کوئری را انتخاب کرده باشید .
  • باید در دیتابیس خود فرمی داشته باشید که وظیفه ویرایش و افزودن اطلاعات به جدول متصل به کمبوباکس را در اختیار داشته باشد.
  • سپس در قسمت List Items Edit Form فرم مورد نظر را انتخاب نمائید.

۳- [sta_anchor id=”g” /]استفاده از Value List

در قسمت Row Source گزینه Value List را انتخاب کنید .

گزینه Allow Value List Edits را روی Yes تنظیم نمایئد .

بعد از اجرای فرم خواهید دید که باکس کمرنگی زیر لیست پائین افتادنی نمایش داده می شود .

اگر روی آن کلیک کنید می توانید لیست کومبو باکس در اکسس را ویرایش نمایئد.

نکته : در این حالت نمی توانید از چند ستون استفاده کنید .

Value List در کومبوباکس
Value List در کومبوباکس

نکته دوم : اگر بخواهید با کلیک روی دکمه ویرایش گر داده باز شود :

یک باتن در فرم قرار دهید مانند تصویر زیر

کد زیر را در رویداد On Click دکه قرار دهید .

Me.cboCity.SetFocus
On Error Resume Next
DoCmd.RunCommand acCmdEditListItems
باز کردن ویرایش گر داده های کومبو باکس
باز کردن ویرایش گر داده های کومبو باکس

۴- [sta_anchor id=”h” /]استفاده از رویداد On Not In List و کدنویسی

در حالتی که Row Source روی جدول و کوئری قرار دارد و جدول tblCity را به عنوان داده ها انتخاب کرده اید .

کومبوباکس را انتخاب کنید در رویداد On Not In List کدهای زیر را وارد نمائید.

 

Dim strTmp As String
strTmp = " عبارت '" & NewData & "' در لیست وجود ندارد " & vbCrLf & " آیا اضافه شود؟"
If MsgBox(strTmp, vbYesNo + vbDefaultButton2 + vbQuestion, "Not in list") = vbYes Then

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO tblCity ( cityName ) SELECT """ & NewData & """ AS cityName;"
DoCmd.SetWarnings True

Response = acDataErrAdded
Response = acDataErrContinue
Me.cboCity = ""
Me.cboCity.Requery
Else
MsgBox "متنی که وارد کرده اید در لیست وجود ندارد"
Response = acDataErrContinue
End If

 

با توجه به درخواستها علی رغم کامل بودن آموزش متنی آموزش ویدیویی هم اضافه شد 🙂

[sta_anchor id=”i” /]ویدیو اول ، ساخت یک کمبوباکس در اکسس

[sta_anchor id=”k” /]ویدیو دوم  ، فیلتر کردن یک کمبوباکس نسلت به لیست دیگر و افزودن آیتم در صورت عذم وجود

 

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

46 دیدگاه دربارهٔ «روشهای مختلف ایجاد کمبوباکس در اکسس و افزودن اطلاعات به آن»

  1. foroghiabbasoficbaz

    باسلام و ارادت خدمت استاد عزیز و گرامی
    مطلب فوق بسیار و عالی و کاربردی است . هر چند آموزش ویدویی زحمت دارد ولی بسیار مفید خواهد بود چنانچه امکان داشته باشد تهیه بفرمایید سپاسگذار خواهم بود.
    با تشکر و ارزوی موفقیت

    1. نادر بحری

      ممنون از شما ، ساخت ویدیو آموزشی با کیفت و صدای مناسب که درخور زمان صرف شده از مخاطب را داشته باشد کمی مشکل است ولی حتما این مطلب را با ویدیو آموزشی آپدیت خواهم کرد .

  2. سلام تو کمبو باکسها گاها دیده میشه که وقتی نام رو انتخاب می کنی عدد درجدول ذخیره میشه وبعد از ذخیره برای نمایش اون اطلاعات متاسفانه نام نمایش داده نمیشه وعدد رو نمایش میده————-فیلم اموزشی کمبو رو با توجه به موردی که توضیح دادم هم لحاظ کنید واموزشی بذارید

  3. mohsen.hasanpoor1783

    من فقط می تونم خالصانه از شما تشکر کنم و به شما بگم مطمئن باشید عوض کار خیرتون رو خدا به شما میده

  4. mohsen.hasanpoor1783

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

  5. سلام
    ممنون از اینکه نکات مربوط به کمبو باکس رو یکجا ذکر کردید
    اگر بخواهیم قابلیت فیلتر بر اساس تایپ لحظه ای کاراکتر در کمبو باکس رو داشته باشیم باید از چه روشی استفاده کنیم؟

  6. سلام مورد جستجوی لحظه ای تو کمبو رو گفتین که قرار میدید تو جستجوها کی انجام میشه؟
    خیلی وقت لازمه بذارید .اون هم برای قدرتمندترین فرد اکسس!!!!

    1. نادر بحری

      سلام
      اون رو به صورت یه آپدیت به دوره تکنیکهای جستجو در اکسس اضافه می کنم

  7. foroghiabbasoficbaz

    باسلام خدمت استاد بحری عزیز
    آموزش بسیار کامل و کاربردی بود و خیلی وقت گذاشتید و زحمت کشیدین . ممنون و سپاسگذار از جنابعالی

  8. سپاس از اینکه هستید …باید یه عمر گرفتار این موضوعات باشید تا قدر حضور شما رو دانست

  9. سلام خدمت اساتید . امکانش هست که مثلا وقتی دو حرف وارد کومبو شد فقط کلمات شبیه اون نمایش بده ؟ مثلا تو کومبو تمام شهرها باشه ولی وقتی تو کومبو دو حرف ان وارد کنیم استانهای تهران و اصفهان وکرمان که ان دارند نمایش بده ؟؟؟؟؟

  10. سلام
    باتشکر از توضیحات عالیتون
    چطور میشه از کلید space برای باز کردن لیست استفاده کرد(بدون استفاده از موس)
    ممنون

    1. از تیکت پشتیبانی استفاده کنید من نمیدونم کدوم دوره رو میفرمائید ، اگر دوره مربوط به فونتها بوده که اصلاح شده

  11. سلام و عرض ادب خدمت استاد توانمند و بزرگوار،‌ جناب مهندس بحری
    این آموزش هم بسیار عالی و بی نقص بود … فقط یک سوال
    شما به منظور اضافه کردن شهر با کدنویسی، فرمی رو انتخاب کردید که به جدول یا کوئری Bound نبود! اگر فرم به یک جدول وصل باشه، کلمه به لیست اضافه نمیشه …. در واقع دستور INSERT INTO کار نمیکنه! دستور دیگه ای باید وارد کرد؟

  12. باسلام خدمت استاد محترم و ممنون از مطالب عالی و کاربردی شما.
    در لیست های کمبوباکس اگر سه کمبو باکس باشه مثل نام کشور، استان و شهر به چه صورت میشه این سه باکس رو به هم وصل کرد؟
    باتشکر فراوان از زحمات شما.

  13. سلام. من تمام مراحل رو با دقت انجام دادم. ولی در آخر، در کومبوی دومی، هر گزینه ای رو انتخاب میکنم، مورد اول انتخاب می شه! یعنی وقتی می زنم ورامین یا دماوند، ری رو نشون می ده، راه حل چیه؟
    ممنون از راهنماییتون

  14. بسیار عالی و کاربردی بود
    با استفاده از آموزش ها یک فایل ساختم و با استفاده از کمبو باکس اطلاعات رو فراخوان کردم ولی این اطلاعات در فیلدهای Tbl مورد نظر ثبت نمیشه لطفا اگه ممکنه راهنمائی کنید

  15. باسلام و احترام
    خواهشمد است در خصوص فیلتر کردن یک کمبوباکس نسبت به کمبوباکس دیگر در ساب فرم هم توضیح دهید.
    چون مراحلی را که برای فرم انجام می دهیم در ساب فرم با مشکل مواجه می شویم
    باتشکر

  16. سلام خسته نباشید من میخوام یک فیلد قرار بدم که تکس باکس باشه وقتی که روش کلید میکنم چند زیر مجموعه براش بیاد که هرزیر مجموعه یک کبوباکس داشته باشه چکار میتونم بکنم میشه کمکم کنید؟

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

        1. سلام بله ولی اگه توی سابفرم میخواید آدرس یک کنترل رو بدید به شکل زیر باید عمل کنید

          Forms!frmSample!frmSampleSubform.form!txtSample

  18. سلام جناب بحری ممنون از مطالب ارزشمندتون . در بحث (کمبو باکسهای مرتبطی که توضیح دادید) که خروجی آنها در جدول ذخیره میشود، در کوئری گرفتن و فیلتر کردن این نوع خروجی باید مقدار عددی را در شرط کوئری وارد کرد تا فیلتر روی خروجی ذکر شده اعمال شود راهی وجود دارد که بشود شرط کوئری را طبق همان متن نمایش داده شده در جدول(جدولی که نتایج کمبو باکس در آن ذخیره شده ) اعمال کرد تا خطای تایپ میس مچ ندهد؟

  19. سلام. من تمام مراحل رو با دقت انجام دادم. ولی در آخر، در کومبوی دومی، هر گزینه ای رو انتخاب میکنم، مورد اول انتخاب می شه! یعنی وقتی می زنم ورامین یا دماوند، ری رو نشون می ده، راه حل چیه؟

    با تشکر

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

  21. با سلام

    امکانش هست روش استفاده از لوپ و یا فیلتر کردن رو در مورد زیر توضیح بدید:

    دو کمبو باکس به صورتی که از یک مرجع و جدول استفاده می کنند و می خواهیم انتخاب کمبو اول در کمبو دوم حذف شود.

    با تشکر

  22. با سلام
    با تشکر از اموزش کامل استاد عزیز آقای بحری
    من فقط یک مشکل دارم در قسمت اضافه کردن لیست جدید به کموبو باکس.
    مشکل:
    من در داخل جدول که نتیجه سابفرم ذخیره میشود گفتم حتما باید فیلد تکمیل شود.required فعال کردم و زمانی که دستور me.combocity=”” اجرا میشه پیام خطا مواجه میشه.
    راهکاری رای برطف شدن این موضوع لطفا به من پیشنهاد بدید با تشکر

  23. با سلام و تشکر از زحمات شما
    ویدئوها را دیدم و مراحل را انجام دادم و اتفاقا برای 3 مرحله فیلتر، در 3 کمبوباکس هم در فرم به درستی کار میکند. اما در جدولی که به فرم لینک است، در ستون مربوطه، فقط عدد نشان میدهد در حالی که در فرم درست نشان میدهد. یعنی در جدول مربوطه، کمبو باکس اول، نام استان را درست نشان میدهد اما نام شهرستان را به صورت عدد نمایش میدهد.

  24. جناب بحری سلام
    ممنون از آموزشهای خوبتون
    استاد آیا امکان ساخت کامبوباکس های مرتبط توی جداول تاکید میکنم توی جداول نه فرمها ، وجود داره
    منظورم مثل مثال معروفه استان و شهرستان که وقتی استان رو انتخاب کنیم فقط شهرهای مربوط به اون رو توی جداول بیاره
    ممنون میشم پاسخ بدید چون پروژه‌ایی دارم و خیلی تلاش کردم که این مورد رو پیاده کنم ولی نمیشه

  25. سلام استاد
    چطور مي توانيم مورد آخري كه در ديتا وارد شده رو بعنوان پيش فرض كامبو باكس قرار دهيم، وقتي كه فرم فرم كجدد باز مي شود؟ ممنون ميشم راهنمايي بفرماييد.

  26. سلام استاد چطور مي توانيم مورد آخري كه در ديتا وارد شده رو بعنوان پيش فرض كامبو باكس قرار دهيم، مثلا وقتي كه فرم مجدد باز مي شود در كامبو باكس بدون اينكه ليست را باز كنيم روي همون مورد آخري كه وارد شده بصورت پيش فرض باشد؟ ممنون مي شم راهنمايي بفرماييد.

پیمایش به بالا