Recordsetها در عمل: Collectionها و For Each
فصل ۸ — Recordset در عمل و پیمایش Collectionها
Collection گروهی از Objectهاست؛ مانند CurrentProject.AllForms یا Controls یک Form. For Each برای پیمایش تمام اعضا مناسب است.
For Each
For Each AccessObject In CurrentProject.AllForms
Debug.Print AccessObject.Name
Next
در هر Iteration Variable نمایندهٔ Object جاری است. همین الگو برای AllTables، AllQueries، Reports، Controls، Fields و Propertyها استفاده میشود.
نام کوتاه برای Object
Dim Ctrl As Control
Dim Frm As Form
Set Frm = Forms!MyForm
For Each Ctrl In Frm.Controls
Debug.Print Ctrl.Name
Next
Set یک Object Variable را به Object واقعی متصل میکند و Identifierهای طولانی را کوتاه میکند.
Property Collection
Dim ctrl As Control
Dim prp As Property
For Each prp In ctrl.Properties
Debug.Print prp.Name
Next
این روش برای کشف Propertyهای Object در زمان اجرا مفید است.
خواندن Code موجود
هنگام خواندن Code، Keywordها را از نامهای ساختهشده توسط Programmer تفکیک کنید. Square Bracket معمولاً Nameهای Access را مشخص میکند؛ Bang ! برای عضو Name-based و Dot . برای Property/Method رایج است. F1 روی Keyword واقعی Help میدهد.
Me و ActiveControl
Me در Class Module به Form/Report صاحب Module اشاره دارد. CodeContextObject Object Context فعلی و Screen.ActiveControl Control دارای Focus را برمیگرداند.
Continuation Character
SomeString = "You can break VBA statements using " + _
" an underscore, but not inside a literal."
Underscore در انتهای Line Statement را ادامه میدهد؛ اما نمیتوان Literal String را از وسط بدون بستن Quote شکست.
شکلها و عناصر بصری این بخش