بازدید: ۶٣٢٣

استفاده از کمبوباکس برای جستجوی یک رکورد(آموزش پیشرفته اکسس)

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

در این پست نگاهی می اندازیم به نحوه استفاده از یک کنترل کمبوباکس در فرم برای جستجوی یک رکورد خاص. برای انجام اینکار کافی است بر روی یکی از گزینه های منوی کمبوباکس کلیک کنیم. اینکار باعث می شود تا یک پراسیجر VBA  با استفاده از رویداد ON CHANGE فرم ها فعال شود. با اجرا شدن این دستور، فرم ما رکورد انتخاب شده را نمایش می دهد.

 

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

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

 

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

 

  1. فرم خود را در نمای Design باز کنید.
  2. اطمینان حاصل کنید که آیکون ویزارد غیرفعال است. اگر فعال بود کافی است بر روی آن کلیک کنید تا از حالت highlight خارج شود.
  3. بر روی آیکون کمبوباکس کلیک کنید.
  4. هنگامی که اشاره گر ماوس به یک نماد Add Combo Box تغییر می کند، بر روی ناحیه دلخواه خود کلیک کنید. اکنون شما یک کنترل کمبوباکس خالی بر روی فرم خود دارید. اگر بخواهید می توانید کادر مربوطه را تغییر اندازه دهید یا متنی را بعنوان برچسب به آن اضافه کنید. کار بعدی شما این است که خصوصیت ROW SOURCE را وارد کنید. با استفاده از این خصوصیت منبع (Source) داده های خود را که می خواهید در کمبوباکس ظاهر شوند، مشخص می کنید. (توجه داشته باشید که این خصوصیت را با خصوصیت CONTROL SOURCE کمبوباکس اشتباه نگیرید).

 

خصوصیت ROW SOURCE

 

  1. بر روی کنترل کمبوباکس کلیک کنید تا انتخاب شود.
  2. بر روی آیکون PROPERTY SHEET کلیک کنید. اینکار باعث می شود تا صفحه Property مربوط به کمبوباکس نمایش داده شود.
  3. برگه DATA را انتخاب کنید.
  4. خصوصیت ROW SOURCE را وارد کنید.

هنگامی که خصوصیت ROW SOURCE را وارد می کنید می توانید یک جدول یا فرم پرس و جو را از فهرست نمایش داده شده انتخاب کنید یا می توانید یک دستور SQL را مستقیما در صفحه Property بنویسید. روش دیگر آن است که بر روی علامت سه نقطه که در انتهای سطر قرار دارد کلیک کنید تا پنجره QUERY DESIGN نمایش داده شود. سپس در این حالت می توانید فرم پرس و جوی خود را ایجاد کنید.

 

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

شکل 2: صفحه Property مربوط به کمبوباکس برای فرم شکل 1.

 

در مثال نمایش داده شده برای شکل 1، ما از tblProducts بعنوان ROW SOURCE  کمبوباکس استفاده کردیم. این جدول همان جدولی است که به عنوان RECORD SOURCE برای فرم اصلی استفاده می شود. در این صفحه ما COLUMN COUNT PROPERTY را (از برگه FORMAT) بر روی عدد 2 تنظیم کردیم تا بدین طریق 2 ستون در فهرست خود داشته باشیم. این دو ستون فیلد ID و فیلد ItemName هستند. همچنین خصوصیت BOUND COLUMN را (در برگه DATA) بر روی عدد 1 تنظیم کردیم تا بدین طریق کمبوباکس مقدار مربوط به اولین ستون را (همان فیلد ID) در زمان انتخاب یک گزینه از فهرست کمبوباکس، ذخیره کند.

در مرحله بعد کافی است که کد VBA را وارد کنید. اکنون می خواهیم از رویداد(event) On change کمبوباکس استفاده کنیم. این رویداد به محض اینکه کاربر گزینه ای را از بین گزینه های فهرست نمایش داده شده انتخاب می کند، اجرا می شود.

 

وارد کردن دستور VBA

 

  1.  بر روی کنترل کمبوباکس کلیک کنید تا انتخاب شود.
  2. پنجره Properties را باز کنید.
  3. برگه Event را انتخاب کنید.
  4. بر  روی سطر رویداد On Change کلیک کنید تا انتخاب شود.
  5. بر روی علامت سه نقطه که در گوشه سمت راست سطر قرار دارد کلیک کنید. در این حالت کادر مکالمه Code Builder باز می شود.
  6. ابتدا Code Builder را انتخاب کرده سپس بر روی Ok کلیک کنید. اکنون باید ویرایشگر VB باز شود.
  7. دستورات نوشته شده در زیر را بین Private Sub و End Sub کپی کنید. می توانید دستور FINDFIRST در خط 4 را ویرایش کنید و به جای ID ، فیلد مورد نظر خود را جایگزین کنید.  

 

On Error GoTo myError
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.FindFirst "ID = " & Me!ctlSearch
Me.Bookmark = rst.Bookmark
leave:
Me!ctlSearch = Null
If Not rst Is Nothing Then Set rst = Nothing
Exit Sub
myError:
MsgBox "Record Not Found"
Resume leave

 

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

شکل 3: ویرایشگر VB

 

قسمت اصلی دستور با تولید record set فرم ها که در یک متغیر به نام rst ذخیره می شود، کار می کند. سپس از دستور FINDFIRST برای جستجوی در record set تولید شده برای آیتم انتخاب شده در کمبو باکس استفاده می شود. هنگامی که رکوردی را پیدا کرد، خصوصیت Bookmark بر روی آن recordset تنظیم می شود. اینکار باعث می شود تا Products Form بطور یکپارچه رکورد انتخاب شده را از فهرست مربوطه نمایش دهد.

 

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

طراحی سایت و سئو توسط ضابط