accdbExe

accdbExe
لینک سایر سایت‌های آموزش Access

اطلاعات تماس و ارسال نظر

شروع کار از: فروردین 1402

۶۱ مطلب در فروردين ۱۴۰۲ ثبت شده است

فهرست مطالب این صفحه:


پیشرفت‌های Access2021  نسبت به Access2019

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

با باز کردن پنجره افزودن جداول، به صفحه دسترسی پیدا کنید

می توانید برگه فعال را به وضوح ببینید، به راحتی برگه ها را بکشید تا آنها را دوباره مرتب کنید، و اشیاء پایگاه داده را تنها با یک کلیک ببندید. بیشتر بدانید

یک جدول داده با برگه هایی که می توان آنها را دوباره مرتب کرد

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

ما نوع داده DateTime2 را در Access پیاده‌سازی کرده‌ایم تا سازگاری نحو با SQL را افزایش دهیم تا دقت و سطح جزئیات را در رکوردهایی که شامل تاریخ‌ها و زمان‌ها می‌شود، افزایش دهیم. نوع داده DateTime2 شامل محدوده تاریخ بزرگتر (0001-01-01 تا 9999-12-31) با دقت زمانی بالاتر (نانوثانیه، به جای ثانیه) است. بیشتر بدانید

نوع داده Access را نشان می دهد

پشتیبانی از تم تیره

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

تنظیمات برای موضوع آفیس

بهبود در SQL View

از کادر محاوره‌ای Find and Replace در SQL View برای جستجو و جایگزینی متن در دستور SQL استفاده کنید ، که مخصوصاً برای عبارات طولانی مفید است. بیشتر بدانید

کادر محاوره ای را پیدا و جایگزین کنید

بهبودهایی در Query Designer

ما گزینه های جدیدی برای صرفه جویی در زمان برای اشیاء جدول اضافه کرده ایم. در Query Design View، برای انتخاب Open ، Design View یا Size to Fit کلیک راست کنید . بیشتر بدانید

باز کردن و طراحی مشاهده دستورات منوی کلیک راست

بهبود در پنجره روابط Relationships 

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

پنجره Access Relationships

امکان انتخاب رنگ 

یک فیلد ورودی جدید در گفتگوی Colors برای مقادیر رنگ Hex اضافه شده که نیازی به صرف زمان برای تبدیل مقادیر رنگ Hex به مقادیر RGB نیست. برای هر ویژگی که در آن می توانید رنگی را در Access تعریف کنید، اکنون می توانید مقدار رنگ Hex را در کادر Hex وارد کنید ، به عنوان مثال، #0F4C81 یا 444.

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

 


پیشرفت‌های Access2019  نسبت به Access2016

می توانید نموداری از 11 نمودار جدید انتخاب کنید و درک داده های ذخیره شده در فرم ها و گزارش ها را آسان تر کنید. فیلدها را با ابعاد نمودار مطابقت دهید و تغییرات خود را فوراً پیش‌نمایش کنید.

مطالعه بیشتر

در اینجا فقط نمونه ای از نمودارهای جدیدی است که می توانید در پایگاه داده های Access خود استفاده کنید.

نمودارهای ستونی   

در نمودار ستونی، دسته‌ها در امتداد محور افقی ( ویژگی محور (مقوله) ) و مقادیر در امتداد محور عمودی ( ویژگی مقادیر (محور Y ) نمایش داده می‌شوند.

نمونه نمودار ستونی

نمودارهای خطی   

در نمودار خطی، دسته ها به طور مساوی در امتداد محور افقی توزیع می شوند ( ویژگی محور (مقوله) ) و مقادیر به طور مساوی در امتداد محور عمودی توزیع می شوند ( ویژگی Values ​​(محور Y) ).

نمونه نمودار خطی

نمودار میله   

در نمودار میله‌ای، دسته‌ها در امتداد محور عمودی ( ویژگی مقادیر (محور Y) ) و مقادیر در امتداد محور افقی سازمان‌دهی می‌شوند ( ویژگی محور (مقوله) ). نمودارهای میله ای قرارگیری عادی محورها و ابعاد را معکوس می کنند.

نمونه نمودار میله ای

نمودارهای دایره ای   

در نمودار دایره ای، دسته ها به صورت تکه های پای نشان داده می شوند ( ویژگی محور (مقوله) ). مقادیر داده ها ( مقادیر (محور Y) ) به صورت درصدی به کل نشان داده شده به عنوان دایره دایره جمع می شوند.

نمودار دایره ای نمونه

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

نمودار ترکیبی دو یا چند نوع نمودار مانند نمودار ستونی خوشه‌ای و نمودار خطی را برای توضیح داده‌های متفاوت اما مرتبط با یکدیگر ترکیب می‌کند.

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

پشتیبانی از تعداد بزرگ (bigint).

نوع داده Large Number یک مقدار غیر پولی و عددی را ذخیره می کند و با نوع داده SQL_BIGINT در ODBC سازگار است. این نوع داده به طور موثر اعداد بزرگ را محاسبه می کند. شما می توانید Large Number را به عنوان فیلد به جدول Access اضافه کنید. همچنین می‌توانید به پایگاه‌های داده با نوع داده مربوطه، مانند نوع داده Bigint SQL Server، پیوند داده یا از آن وارد کنید. برای استفاده از نوع داده Large Number برای پشتیبانی در پیوند دادن یا وارد کردن از منابع خارجی، ابتدا باید یک گزینه را در کادر گفتگوی Access Options انتخاب کنید. روی File > Options > Current Database کلیک کنید . در پایین کادر گفتگوی گزینه ها، بخش Data Type Support Options را خواهید دید . گزینه Support BigInt Data Type for Linked/Imported Tables را انتخاب کنید. بیشتر بدانید

تصویری از لیست انواع داده در جدول Access.  Large Number انتخاب شده است.

اسکرین شات از گزینه support type bigint for linked/imported tables در گزینه های Access انتخاب شده است.

پشتیبانی مجدد از dBASE 

معرفی مجدد پشتیبانی از فایل dBASE (.dbf) در Access : می‌توانید یک بار دیگر داده‌های ذخیره‌شده در فایل‌های dBASE را در Access وارد یا پیوند دهید و همچنین داده‌ها را به فایل‌های dBASE صادر کنید. برای اطلاعات بیشتر در مورد وارد کردن یا پیوند دادن به فایل‌های dBASE، به وارد کردن داده از یا پیوند داده‌ها به dBASE مراجعه کنید. برای اطلاعات بیشتر در مورد صادر کردن داده‌های Access به فایل‌های dBASE، به صادرات داده به dBASE مراجعه کنید .

اسکرین شات از گزینه Access with dBASE File در برگه نوار داده خارجی انتخاب شده است

مرتب سازی ویژگی های اشیاء در Propety Sheet

آیا در یافتن نام ویژگی خاصی که می خواهید در برگه ویژگی ها در میان ده ها ویژگی موجود مشکل دارید؟ مرتب سازی در برگه ویژگی برای فرم ها و گزارش ها اینجاست! یافتن یک ویژگی خاص در برگه خصلت‌ها هرگز آسانتر نبوده است. فرم‌ها و گزارش‌ها حاوی ده‌ها ویژگی هستند که در بین چندین برگه پخش شده‌اند که گاهی اوقات به این معنی است که یافتن موردی که می‌خواهید دشوار است. اگر نام خاص ملک مورد نظر خود را می دانید، مرتب سازی لیست یافتن آن را آسان تر می کند. وقتی در حالت طراحی برای فرم‌ها و گزارش‌ها هستید، Property Sheet را باز کنید و یک دکمه جابجایی مرتب‌سازی را در گوشه سمت راست بالا مشاهده خواهید کرد. تنظیم پیش‌فرض، مرتب‌نشده، ویژگی‌ها را به ترتیبی که عادت داشتید در Access مشاهده کنید، فهرست می‌کند.

روی Sort کلیک کنید و Access لیست خصوصیات را بر اساس حروف الفبا مرتب می کند.

اسکرین شات برگه ویژگی Access با ویژگی های مرتب شده بر اساس حروف الفبا

دوباره بر روی Sort کلیک کنید تا مرتب سازی به تنظیمات پیش فرض برگردد.

تصویر صفحه ویژگی دسترسی بدون مرتب سازی ویژگی

ویژگی جدید Label Name برای کنترل ها

یک ویژگی جدید به کنترل‌ها به نام Label Name اضافه شده تا بتوانید یک کنترل برچسب را با کنترل دیگری مرتبط کنید. قبلاً باید یک کنترل برچسب را «برش» می‌کردید و سپس آن را روی کنترل دیگری «چسبان» می‌کردید تا به آن مرتبط شود. اکنون با ویژگی Label Name جدید، می‌توانید به راحتی نام یک کنترل برچسب را برای مرتبط کردن آن تایپ کنید. مرتبط کردن یک نام برچسب با یک کنترل، دسترسی را افزایش می دهد زیرا فناوری های کمکی اکنون می توانند ارتباط را شناسایی و نشان دهند.

ویژگی Label Name که در Property Sheet نشان داده شده است

منطق امتحان مجدد اتصال ODBC

هنگامی که Access اتصال ODBC به منبع داده خارجی را قطع می کند، کاربران باید پایگاه داده های Access خود را ببندند و دوباره باز کنند تا به کار با اشیایی که از داده های آن منابع داده خارجی استفاده می کنند ادامه دهند. اکسس تلاشی برای برقراری مجدد اتصال قطع شده انجام نمی دهد حتی اگر اتصال دوباره معتبر باشد و کاربران نمی توانند کاری انجام دهند تا Access سعی کند دوباره به منبع داده خارجی متصل شود. این موضوع را بهبود یافته به طوری که اکنون اگر Access اتصال ODBC را به یک منبع داده خارجی قطع کند، Access سعی می‌کند به طور خودکار دوباره به منبع داده متصل شود. در این سناریو، اکنون تجربه زیر را خواهید دید:

  • اگر Access اتصال ODBC را به یک منبع داده خارجی که می‌خواهید استفاده کنید قطع کند، یک پیام خطایی خواهید دید که خرابی را توصیف می‌کند.

  • Access اکنون هنگام انجام عملیاتی که نیاز به اتصال به یک منبع داده خارجی دارد، تلاش می‌کند به طور خودکار به منبع داده متصل شود. اگر تلاش مجدد موفقیت آمیز بود، می توانید بدون نیاز به بستن و باز کردن مجدد Access به کار با داده ها و اشیاء پایگاه داده ادامه دهید.

  • اگر تلاش مجدد ناموفق بود، نمی‌توانید با اشیایی که از منابع داده خارجی حذف شده استفاده می‌کنند کار کنید، اما می‌توانید به کار با سایر مناطق پایگاه داده خود که به منابع داده غیرقابل دسترس وابسته نیستند، ادامه دهید.

  • اگر دوباره سعی کنید از داده ها یا اشیایی که به اتصالات داده خارجی متکی هستند استفاده کنید، Access دوباره سعی می کند دوباره به منبع داده خارجی متصل شود.

بهبود دسترسی

  • وضعیت فیلدهای Lookup و جعبه های ترکیبی (چه جمع شده یا بزرگ شده) اکنون قابل شناسایی و خواندن است.
  • تمام ردیف جستجو یا جعبه ترکیبی هنگامی که چندین ستون وجود دارد اکنون قابل شناسایی و خواندن است.

  • نام گروه گزینه ها به همراه وضعیت یک گزینه (چه انتخاب شده یا پاک شده) در یک کادر محاوره ای اکنون قابل شناسایی و خواندن است.

  • اکنون می توان نماد پیکان منوی فیلتر برای ستون دیتاشیت را شناسایی و خواند.

  • در حالت اسکن گوینده ویندوز، اکنون می توانید فلش چپ یا پیکان راست را فشار دهید تا به یک دکمه رادیویی بروید، و برای جابجایی آن، Space یا Enter را فشار دهید.

  • راوی و سایر فناوری‌های کمکی اکنون می‌توانند هنگام استفاده از پیوست‌ها، کنترل‌های برگه‌ها و کنترل‌های جعبه چک در فرم‌ها، گزارش‌ها و برگه‌های داده، فراخوانی عناصر کنترل بیشتری را بشنوند.

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

  • وقتی یک کنترل در بخش فرم فوکوس می‌کند، روایت و سایر فناوری‌های کمکی بهبود یافته است.

  • اکنون دکمه فیلتر در نوار پیمایش رکورد در پایین فرم یا صفحه داده قابل مشاهده است.

  • تب Saved Imports در کادر گفتگوی Manage Data Tasks به درستی نمایش داده می شود و اکنون هنگام ویرایش متن قابل مشاهده است.

  • فرم‌ها و گزارش‌هایی که در حالت کنتراست بالا نمایش داده می‌شوند، مانند سرصفحه ستون‌های برگه داده، کنترل‌های دکمه فرمان موضوعی، و تمرکز رنگ متن سلول در برگه‌های داده.

برای ایجاد جدول، اکنون می توانید Alt+H را فشار دهید. برای باز کردن منوی فیلتر یک ستون جدول، اکنون می‌توانید Q را فشار دهید. برای باز کردن کادر محاوره‌ای Find and Replace، اکنون می‌توانید FD را فشار دهید.

  • استفاده از میانبرهای صفحه کلید F6 و Shift+F6 اکنون در تمام بخش‌ها در فرم‌های بازشو می‌چرخد.

ویرایش یک آیتم لیست ارزش جدید آسان تر است

معرفی یک میانبر صفحه کلید جدید ، که باز کردن کادر محاوره‌ای Edit List Items را هنگام کار با جعبه‌های ترکیبی فهرست ارزش در فرم‌های Access آسان‌تر می‌کند.

اگر جعبه ترکیبی شما از یک لیست مقادیر به عنوان منبع داده استفاده می کند و ویژگی Allow Value List Edits را روی Yes تنظیم کرده اید، می توانید از این میانبر صفحه کلید جدید استفاده کنید. وقتی روی کادر ترکیبی در نمای فرم فوکوس کردید، Ctrl+E را فشار دهید تا کادر گفتگوی Edit List Items باز شود.

کادر محاوره ای Edit List Items در فرم Access

بهبود جعبه به من بگو 

کادر Tell Me What you want to do را در بالای نوار با جستجو، محتوا و توصیه‌های بهبود یافته به‌روزرسانی شده است تا به سؤالات شما بهتر و سریع پاسخ دهد. اکنون وقتی برای یک کار، عملکرد یا سؤال خاص وارد جستجو می‌شوید، گزینه‌های بسیار متنوعی را مشاهده خواهید کرد. اگر این کار سریع است، Access سعی می‌کند به شما اجازه دهد مستقیماً از صفحه Tell Me از آن مراقبت کنید. اگر سؤال پیچیده‌تری است، به شما کمکی را نشان می‌دهیم که فکر می‌کنیم به بهترین نحو با نیازهای شما مطابقت دارد. آن را امتحان کنید تا ببینید با چه سرعتی می توانید آنچه را که به دنبالش هستید پیدا کنید و کارها را انجام دهید.

روی کادر Tell Me در Access کلیک کنید و کاری را که می خواهید انجام دهید تایپ کنید.  به من بگو سعی خواهد کرد به انجام آن وظیفه کمک کند.

تغییر اندازه اشیاء در پنجره های طراحی آسان تر است

تغییر اندازه اشیاء جدول در پنجره‌های Query Design و Relationship دشوار بود. قسمت قابل کلیک حاشیه‌ها را برای ماوس آسان‌تر شده. اکنون برای گرفتن و تغییر اندازه حاشیه جداول با موس خود در این پنجره ها زمان آسان تری خواهید داشت. همچنین گرفتن و جابجایی فرم های بازشو با استفاده از ماوس دشوار بود که به طور مشابه، در این سناریوها، ناحیه قابل کلیک حاشیه ها را برای موس آسانتر شده. اکنون برای گرفتن و تغییر اندازه حاشیه جداول با ماوس و جابجایی فرم های بازشو، زمان آسان تری خواهید داشت.

بهبودهای پیمایش صفحه ناوبری

پیمایش در فهرست اشیاء در صفحه پیمایش در حالت نمایش DPI بالا منجر به رفتار غیرمنتظره می‌شد. ولی اکنون دیگر هنگام استفاده از صفحه پیمایش در حالت‌های نمایش DPI بالاتر، «برآمدگی‌های» پیمایشی مشاهده نمی‌شوند.


مقایسه Access2016  با اکسس 2013

تفاوت زیادی بین مایکروسافت اکسس 2013 و مایکروسافت اکسس 2016 وجود ندارد. اگر از اکسس 2013 استفاده کرده اید، ممکن است در پیدا کردن تفاوت بین آن نسخه و نسخه 2016 مشکل داشته باشید. در زیر ویژگی‌های جدیدی اضافه شده است که در سال 2016 اضافه شده است. در واقع، می‌توان ادعا کرد که بیشتر آنها حتی «ویژگی‌ها» نیستند و فقط «تفاوت‌ها» هستند، اما در هر صورت، در اینجا چیزهای جدیدی در MS Access 2016 وجود دارد.

اکسس 2016 ظاهر و احساسی مشابه 2013 دارد. تنها دو تفاوت جزئی بین این دو نسخه وجود دارد.

در اکسس 2016، منوی بالا دارای یک رنگ پس زمینه است. این به منوی بالا کمک می کند تا کمی بیشتر برجسته شود. در Access 2013 تفاوتی بین رنگ این منو و بقیه صفحه وجود نداشت.
در Access 2016، دو تم مایکروسافت آفیس وجود دارد که می توانند با Access استفاده شوند. "رنگارنگ" و "سفید".
برای تغییر موضوع:

File > Options > General را انتخاب کنید
تم مورد نظر خود را از منوی کشویی Office Theme انتخاب کنید
جعبه جدید "به من بگو".
احتمالاً مفیدترین ویژگی معرفی شده در Access 2016 کادر "Tell Me" است.

کادر Tell Me به شما اجازه می دهد تا به Access بگویید که چه کاری می خواهید انجام دهید. به نظر می رسد یک فیلد ورودی جستجو با یک نماد لامپ کوچک در کنار متن "به من بگو چه می خواهی انجام دهی...".

Screenshot of the Microsoft Access 2016 Tell Me box

وقتی چیزی را در کادر Tell Me تایپ می‌کنید، یک لیست کشویی با ویژگی‌ها یا اقدامات مربوط به آنچه تایپ می‌کنید ظاهر می‌شود - شبیه به فهرست کشویی پیشنهاد خودکار در موتورهای جستجو.

به عنوان مثال، تایپ کردن "چاپ" باعث می شود که فهرستی از آیتم های منوی مربوط به چاپ (مانند چاپ، پیش نمایش چاپ، دریافت راهنمایی در مورد "چاپ") به صورت پویا در هنگام تایپ ظاهر شود. انتخاب یک مورد از کادر Tell Me همان کاری را انجام می دهد که همان مورد را از منوی معمولی آن انتخاب کنید (به عنوان مثال، کلیک کردن بر روی Print Preview صفحه پیش نمایش چاپ را باز می کند).

Screenshot of typing something into the Tell Me box
یکی از خوبی‌های کادر Tell Me این است که آنچه را که قبلاً تایپ کرده‌اید به خاطر می‌آورد. بنابراین هر زمان که روی کادر Tell Me کلیک کنید، می توانید لیستی را تحت عنوان Recently Used مشاهده کنید که در صورت تمایل می توانید از بین آن ها انتخاب کنید. این پتانسیل صرفه جویی در زمان زیادی را دارد، به خصوص اگر لازم باشد کارهای مشابه را بارها و بارها انجام دهید.

صادرات داده به اکسل
Access 2016 به شما این امکان را می دهد که به راحتی تمام داده های پیوند شده خود را از یک گفتگو به Microsoft Excel 2016 صادر کنید. این از گفتگوی مدیر جدول پیوندی در دسترس است.

برای باز کردن این گفتگو:

External Data > Linked Table Manager را انتخاب کنید.
یک گفتگو ظاهر می شود که همه منابع داده مرتبط را به شما نشان می دهد. منابع داده ای را که می خواهید لیست کنید انتخاب کنید و روی Export to Excel کلیک کنید
در اعلان، مکانی را برای ذخیره کتاب کار اکسل انتخاب کنید
هنگامی که کتاب کار اکسل را ذخیره کردید، Access کتاب کار را با منابع داده مرتبط نمایش می دهد.

طراحی مجدد قالب های پایگاه داده
در Access 2016، پنج الگوی محبوب پایگاه داده با ظاهری تازه و مدرن بازطراحی شده اند.

قالب های بازطراحی شده عبارتند از:

  • Asset tracking
  • Contacts
  • Event management
  • Students
  • Task management


هر زمان که به File > New بروید، این الگوها در دسترس هستند

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

گفتگوی نمایش جدول را می توان در پرس و جوها (با استفاده از Create > Query Design یا Design > Show Table) و در پنجره Relationships (با استفاده از ابزارهای پایگاه داده > روابط یا طراحی > نمایش جدول) باز کرد.


تفاوت‌های بین Access2013 نسبت به اکسس 2010

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

  • صفحه نمایش خوش آمدید به گونه ای طراحی شده است که ایجاد یک برنامه کاربردی سفارشی برای رفع نیازهای کسب و کار شما را آسان تر می کند.
  • Access 2013 دارای الگوهای برنامه جدید طراحی شده است که در زمان راه اندازی شما صرفه جویی می کند - بنابراین می توانید روی نتیجه گیری تمرکز کنید. قالب های حرفه ای طراحی شده شامل زمینه ها، قوانین و روابط است که استرس ایجاد یک برنامه را از بین می برد.
  • چارچوب برنامه استاندارد برای ناوبری آسان تر.
  • می‌توانید بدون تغییر صفحه با استفاده از کنترل موارد مرتبط، به اطلاعات اضافی در پایگاه داده خود نگاه کنید .
  • کنترل های تکمیل خودکار، بهبود یافته اند. این بهبودها شامل منوهای کشویی و توصیه هایی می شود که با شروع تایپ کردن به طور خودکار ظاهر می شوند.
  • عملکرد Drill-thru به کاربر امکان دسترسی با یک کلیک برای مشاهده یک پاپ آپ و دریل کردن جزئیات یک رکورد را می دهد.


تفاوت بین Access 2010 و Access 2007 چیست؟

نسخه 2010 به شما به عنوان "کاربر نهایی" انعطاف بیشتری برای ایجاد یک پایگاه داده دسترسی از یک الگو، سفارشی کردن آن، تا رنگ ها و فونت ها، افزودن عملکرد با استفاده از ماکروها (به جای نیاز به یادگیری کد برای دستیابی به نتایج) به شما می دهد. می‌توانید کل پایگاه داده را از طریق شیرپوینت به اشتراک بگذارید تا همیشه روی به روزترین داده ها کار کنید.

روبان بهبود یافته

Ribbon در سال 2007 معرفی شد و جایگزین منوی فایل سنتی و نوار ابزار در برخی از برنامه های Office شد. Office 2010 دارای روبان در همه برنامه ها است. Access 2010 دارای چهار نوار است که از طریق زبانه ها در دسترس است. این نوارها ابزارهای Home، Create، External Data و Database هستند.

کلیدهای دسترسی (میانبرها)
میانبرهایی برای باز کردن زبانه های نوار و دسترسی به دستورات درون نوار وجود دارند که می‌توانید با فشار دادن کلید Alt و سپس کلید دیگر یا دنباله‌ای از کلیدها، از کلیدهای میانبر Access استفاده کنید.

برگه های متنی
برگه هایی در نوار ها وجود دارند  که حاوی دستورات مورد نیاز شما برای اشیاء خاص هستند.

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

نوار کاملاً قابل تنظیم با استفاده از دکمه‌های گزینه‌ها(Fully customisable ribbon using Options buttons)
می‌توانید محیط Access را با دسته‌های مختلف مانند proofing، پایگاه داده فعلی و برگه اطلاعات سفارشی کنید.

 


پایگاه‌های داده الگوی
ایجاد پایگاه‌های داده دسترسی جدید با استفاده از برخی از قالب‌های داخلی و همچنین تعدادی از قالب‌های موجود در Office.com آسان‌تر و سریع‌تر است. به جای شروع با یک پایگاه داده خالی، می توانید قالبی را با ویژگی های متناسب با نیاز خود انتخاب کنید و سپس با ساخت برنامه های کاربردی در اطراف آن، آن را سفارشی کنید و سپس با استفاده از شیرپوینت پایگاه داده جدید را با همکاران خود به اشتراک بگذارید. در نسخه 2007 می توانید داده های خود را بردارید و در شیرپوینت آپلود کنید. در سال 2010، این بیشتر توسعه یافته است، بنابراین، می توانید کل برنامه خود را به شیرپوینت منتقل کنید.

انتخاب های شروع سریع

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

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

بخش های برنامه
این جدید در سال 2010 است - بخش برنامه الگویی است که بخشی از پایگاه داده "الگوی درون یک الگو" را تشکیل می دهد. به جای نیاز به ایجاد جداول، فرم ها و روابط، می توانید از بخش های برنامه برای سرعت بخشیدن به فرآیند استفاده کنید.

به عنوان مثال، این می تواند یک جدول با فرم و گزارش مرتبط باشد. اینها بدون نیاز به ایجاد هر قسمت از ابتدا، عملکردی را به پایگاه داده موجود اضافه می کنند.

داده‌های اکسل
اکنون می‌توانید داده‌ها را از یک صفحه‌گسترده کپی کرده و مستقیماً در صفحه داده یک جدول پایگاه داده موجود یا خالی قرار دهید.

بهبود بیان و Querybuilder - ماکرو ساز جدید

ماکروها با خودکار کردن کارهایی که به طور منظم انجام می دهید در زمان شما صرفه جویی می کنند.  سازنده جدید ماکرو دارای "Intellisense" است. این در بخش Expression و Querybuilder Access قرار دارد. این به شما کمک می کند تا نام فیلدها و موارد دیگری را که ممکن است در این مناطق استفاده کنید تکمیل کنید. این امر حاشیه خطا را در هنگام کار با پرس و جوها و عبارات و جستجوها کاهش می دهد. این بدان معناست که برای ساختن پرس و جوها و عبارات به عنوان مثال نیازی به ایجاد کد خود ندارید. می توانید از منوهای کشویی برای انتخاب آنچه نیاز دارید استفاده کنید و از آنجا بسازید. Intellisense هر جا که عباراتی وجود داشته باشد ظاهر می شود که می تواند به شما در نامگذاری فیلدها کمک کند یا عناوین/داده ها را سریعتر اضافه کنید.

نوع داده محاسبه شده(Calculated data type)
به شما امکان می دهد، نتیجه یک محاسبه را در یک فیلد از جدول فعلی - 2010 ذخیره کنید و سپس یک سازنده عبارت به شما می دهد که در آن می توانید یک محاسبه ایجاد کنید. این وجه اختلاف بسیار مهم است و یکی از اختلافات مهم بین اکسس 2010 نسبت به 2007 بوده.

گروه‌های فیلد
Access 2010 دارای گروهی از فیلدها است. این به شما لیست بهتری از فیلدها را برای درج می دهد. گالری نوع داده جایگزین پنجره وظیفه افزودن فیلد می شود و شامل تمام انواع فیلدهای رایج برای استفاده در پایگاه داده است.

گزارش با قالب بندی مشروط

2010 امکان قالب بندی مشروط را در گزارش ها فراهم می کند. بنابراین می توانید اطلاعاتی را نشان دهید که شرایط یا مجموعه ای از شرایط خاص را دارد. این در تب Format نوار، در گزینه Conditional Formatting موجود است. قالب بندی شرطی بهبود یافته است. شما فقط می توانید سه شرط در Access 2007 داشته باشید اما اکنون می توانید موارد بیشتری را اضافه کنید.

تم ها
کنترل بیشتری بر نحوه نمایش برنامه خود دارید. به عنوان مثال، می توانید از رنگ های شرکت خود استفاده کنید، همانطور که در سایر برنامه های خود مانند PowerPoint یا Word استفاده می کنید. یک تم را در Design View انتخاب کنید - رنگ ها، و فونت ها و غیره را با چند کلیک در کل برنامه تغییر دهید، و می توانید این تم ها را بیشتر سفارشی کنید. مانند رنگ های دکمه ای

فرمت پایگاه داده آماده وب - شیرپوینت

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


پیشرفت‌های اکسس 2007 نسبت به اکسس 2003

  • رابط Office 2007  بسیار تغییر کرد
  • دکمه آفیس(همان دکمه گرد) به بالای پنجره های نرم افزارهای آفیس اضافه شد.
  • نوار ابزار دسترسی سریع (Quick Access) به بالای منوه یا به عبارتی بالای نوار منوها اضافه شد و قابلیت اضافه کردن مورد یا حذف موارد یا به عبارتی سفارشی کردن آن فراهم شد.
  • روبان‌ها، نوارهای ابزار پشرفته تر شدند و در قالب روبان یا Ribbon تجلی یافتند.
  • گروه ها، گروهها در Object ها و Navigation Panel کار را راحتتر کرد.
  • نوارها و نوارهای متنی، پیشرفته تر شدند.
  • فرمت های فایل، اضافه شدن پسوند ذخیره فایل از mdb به accdb و نیز mde به accde، این دو نام یعنی accdb و accde تنها یک نام نیستند بلکه قابلیت‌های بسیار بیشتری به خصوص در سطح امنیت نسبت به دو نام mdb و mde دارند. شاید بزرگترین تغییر نگارش‌های Access همین تغییر باشد، این تغییرات موجب شده است که فایل های دیتابیس Access که تا قبل از ایجاد دو فرمت اخیر وجود داشتند و دربرابر هک گذرواژه آسیب پذیر بودند تا حد بسیار خوبی اصلاح شوند و هک گذروازه فایل های accdb و accde بسیار سخت شده است- من تاکنون گزارشی مبنی بر هک گذرواژه دیتابیس پسوورد(Database Password) این دو نوع فایل نشنیده‌ام.

 


برخی از آنچه از امکاناتی که در نسخه های 2003 و قبل تر از آن وجود داشته

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

امکان مشاهده اطلاعات مربوط به وابستگی های اشیاء 
در Microsoft Office Access 2003، هم می‌توانستید اطلاعات مربوط به وابستگی های بین اشیاء پایگاه داده را مشاهده کنید. مشاهده لیستی از اشیایی که از یک شی خاص استفاده می کنند به حفظ پایگاه داده در طول زمان و جلوگیری از خطاهای مربوط به منابع رکورد از دست رفته کمک می کند. به عنوان مثال، اگر کوئری Quarterly Orders در پایگاه داده Sales دیگر مورد نیاز نباشد، قبل از حذف آن، ممکن است بخواهید دریابید که کدام اشیاء دیگر در پایگاه داده از پرس و جو استفاده می کنند. سپس، می‌توانید منبع رکورد اشیاء وابسته را تغییر دهید، یا آنها را حذف کنید، قبل از حذف کوئری سفارشات فصلی(Quarterly Orders). مشاهده لیست کاملی از اشیاء وابسته به شما کمک می کند در زمان صرفه جویی کنید و خطاها را به حداقل برسانید. علاوه بر مشاهده لیست اشیایی که به یک شی انتخاب شده محدود شده اند، می توانید اشیایی را که توسط شی انتخاب شده استفاده می شود نیز مشاهده کنید. ماکروها، ماژول‌ها و صفحات دسترسی به داده برای وابستگی جستجو نمی‌شوند. پروژه های Access از این ویژگی پشتیبانی نمی کنند.
خطا در بررسی فرم ها و گزارش ها
در Microsoft Office Access 2003، هم می‌توانستید بررسی خودکار خطاها را برای خطاهای رایج در فرم ها و گزارش ها فعال کنید. بررسی خطا به خطاها اشاره می کند، مانند دو کنترل که از یک میانبر صفحه کلید استفاده می کنند و عرض یک گزارش بیشتر از صفحه ای است که در آن چاپ می شود. فعال کردن بررسی خطا به شما کمک می کند تا خطاها را شناسایی کرده و آنها را اصلاح کنید.
انتشار خواص فیلدها
در نسخه‌های قبلی مایکروسافت اکسس، هر زمان که ویژگی ارثی یک فیلد را تغییر می‌دادید، باید به صورت دستی ویژگی کنترل مربوطه را در هر یک از فرم‌ها و گزارش‌ها تغییر می‌دادید. بعد از آن یعنی در نگارش های 2003 به بعد، وقتی یک ویژگی فیلد ارثی را در نمای طراحی(Design) جدول تغییر دهید، اکسس گزینه‌ای را برای به‌روزرسانی ویژگی همه یا برخی از کنترل‌هایی که به فیلد محدود شده‌اند نمایش می‌دهد.

برچسب های هوشمند
در Microsoft Office Access 2003، هم می‌توانستید از ویژگی SmartTags برای اضافه کردن یک برچسب هوشمند به هر فیلدی در جدول، پرس و جو، فرم، گزارش یا صفحه دسترسی به داده در پایگاه داده استفاده کنید.

تهیه بک آپ از پایگاه داده یا پروژه
در نگارش 2003 به بعد می توانید قبل از ایجاد تغییرات اساسی در پایگاه داده یا پروژه فعلی از آن نسخه پشتیبان تهیه کنید. نسخه پشتیبان در محل پیش فرض پشتیبان گیری یا در پوشه فعلی ذخیره می شود. برای بازیابی پایگاه داده، به محل پشتیبان رفته، نام فایل را تغییر دهید و آن را در Access باز کنید.
پشتیبانی از تم ویندوز XP
سیستم عامل Microsoft Windows XP چندین تم را به شما ارائه می دهد. اگر «تمی» غیر از پیش‌فرض انتخاب کرده‌اید، اکسس «تم» انتخابی را روی نماها، کادرهای محاوره‌ای و کنترل‌ها اعمال می‌کند. شما می توانید با تنظیم گزینه ای در پایگاه داده یا پروژه از ارث بردن «تم ها» از سیستم عامل توسط کنترل های فرم جلوگیری کنید.

مرتب سازی بهبود یافته در کنترل ها
در نگارش 2003 به بعد می توانید  ترتیب مرتب‌سازی صعودی یا نزولی را تا چهار فیلد در لیست باکس و جادوگران جعبه ترکیبی در فرم‌ها و گزارش‌ها و جادوگر جستجو در پایگاه داده Access تعیین کنید. صفحه مرتب‌سازی اضافه شده به این جادوگرها شبیه صفحه مرتب‌سازی در Report Wizard به نظر می‌رسد و رفتار می‌کند.

گزینه های تصحیح خودکار
در Microsoft Office Access 2003 به بعد، کنترل بیشتری بر رفتار ویژگی AutoCorrect دارید. دکمه AutoCorrect Options در نزدیکی متنی ظاهر می شود که به طور خودکار تصحیح شده است. اگر گاهی متوجه شدید که نمی‌خواهید متن تصحیح شود، می‌توانید یک تصحیح را لغو کنید یا با کلیک کردن روی دکمه و انتخاب گزینه‌های تصحیح خودکار را روشن یا خاموش کنید.
قابلیت‌های فونت پیشرفته در نماهای SQL
در نماهای SQL و Query Design یک پرس و جو در پایگاه داده مایکروسافت اکسس و پروژه مایکروسافت اکسس، در نگارش 2003 به بعد می توانید فونت و اندازه قلم متن را با استفاده از گزینه Query design font اضافه شده به تب Tables/Queries در گزینه ها تغییر دهید. کادر محاوره ای زیر منوی ابزار. این تنظیمات برای همه پایگاه‌های داده اعمال می‌شود و با تنظیمات با کنتراست بالا و سایر تنظیمات دسترسی رایانه شما کار می‌کند.

راهنما مبتنی بر زمینه در نمای SQL
در نمای SQL یک پرس و جو در پایگاه داده مایکروسافت اکسس،در نگارش 2003 به بعد می توانید  برای کلمات کلیدی Jet SQL، توابع VBA و توابع Access راهنمایی دریافت کنید. به سادگی F1 را فشار دهید تا راهنمای مربوط به متن نزدیک مکان نما ظاهر شود. همچنین می توانید موضوعات مرجع تابع Jet SQL و VBA را جستجو کنید.
وارد کردن، صادر کردن، و پیوند دادن به لیست خدمات Microsoft Windows SharePoint Services از Access.
می توانید عملیات زیر را با لیست سرویس های Windows SharePoint انجام دهید:

  • محتویات یک جدول یا یک پرس و جو را به یک لیست صادر کنید.
  • محتویات یک لیست را به یک جدول وارد کنید.
  • یک جدول را به یک لیست پیوند دهید.

صدور و پیوند دادن به داده های Access از سرویس های Windows SharePoint
در نگارش 2003 به بعد می توانید فهرستی را در نمای دیتاشیت آن از سرویس‌های Windows SharePoint به یک جدول ثابت یا به یک جدول پیوندی در Access صادر کنید. وقتی به یک جدول استاتیک صادر می کنید، یک جدول در Access ایجاد می کنید. سپس می‌توانید جدول را مستقل از فهرست اصلی در سرویس‌های Windows SharePoint مشاهده کرده و تغییراتی در آن اعمال کنید. به همین ترتیب، می‌توانید لیست را در Windows SharePoint Services تغییر دهید و این روی جدول در Access تأثیری نخواهد داشت. هنگامی که به یک جدول پیوندی صادر می کنید، یک جدول در Access ایجاد می کنید و یک پیوند پویا بین جدول و لیست ایجاد می کنید به طوری که تغییرات جدول در لیست منعکس می شود.


2000.png (150×186)


منابع این سند:

  • http://msdn.microsoft.com
  • http://msdn.microsoft.com/library/office/jj250134(v=office.15).aspx
  • http://blogs.office.com/b/microsoft-access/archive/2012/07/20/introducing-access-2013-.aspx
  • http://groups.google.com/group/microsoft.public.access/msg/e74f7dd80ee6b8d9?pli=1
  • http://office.microsoft.com/en-gb/help/crabby-gets-over-her-database-fears-with-the-help-of-access-2007-HA010203696.aspx?CTT=1
  • http://office.microsoft.com/en-gb/products/results.aspx?qu=access+2007+new+features&ex=1&origin=FX010048741
  • http://office.microsoft.com/en-gb/access-help/customize-the-ribbon-HA010211415.aspx?CTT=3
  • http://blogs.office.com/b/microsoft-access/archive/2010/06/09/access-2010-new-features-demo.aspx
  • http://www.youtube.com/watch?v=eXiCza050ug - what is the difference between excel and access

پاسخ این سئوال : نگارش 2010 -32 بیتی است اما چرا؟!

اگر فقط از محیط Desktop اکسس می خواهید استفاده کنید، بهتر است آخرین نگارش Access یا به عبارتی آخرین نگارش Microsoft Office را روی رایانه خود نصب کنید، چونکه معمولا در نگارش های آخر و به-روز بسیاری از مشکلاتی که در برنامه نویسی های اصلی بدنه Microsoft Office Access  وجود داشته است حذف شده‌اند. مثلا به این صفحه نگاه کنید(رفع اشکالاتی که توسط مایکروسافت اطلاع رسانی شده اند) در این صفحه برخی از ایراداتی که به صورت رسمی توسط مایکروسافت بررسی و رفع شده اند دیده می شود. اما اگر شما توسعه دهنده Access هستید، یا به عبارتی اکسس دویلوپر(Access Developer) هستید، یا عبارت بهتر برنامه نویس VBA در اکسس هستید و می خواهید اپلیکشین تحت Access ایجاد کنید، به هیچ وجه آخرین نگارش Access را پیشنهاد نمی کنم.

همیشه سعی کنید در نگارش قدیمی تر برنامه نویسی کنید تا کاربران نرم افزار شما با مشکلات روبرو نشوند، یعنی با توجه به اینکه نگارش های جدید از امکانات نگارش های قدیمی پشتیبانی می کنند، اما نگارش های قبلی نمی توانند امکانات نگارش های جدید را بهره برداری کنند، برنامه هایی که با نگارش های قبلی اکسس تولید شده اند در نگارش های جدیدتر اکسس اجرا می شوند، اما اگر برنامه اکسسی را در نگارش های جدید مثل نگارش 2023 تولید کرده باشید ممکن است در نگارش های قدیمی مثل 2010 مشکلاتی داشته باشد.

اما اگر دقت کنید، و در یک بررسی دقیق‌تر درخواهید یافت که هنوز برخی وشاید بسیاری از کاربران نرم افزارهای آفیس هنوز از آفیس 2007  استفاده می کنند، یعنی هنوز نگارش های قبلی آفیس در ایران مورد استفاده قرار می گیرد. پس آیا آفیس 2007 بهترین آفیس است؟ پاسخ خیر است، هنوز هم من معتقد هستم که نگارش Access 2010 نسخۀ 32 بهتر است.

در یک بررسی من Microsoft Office های مختلف را مورد بررسی قرار داده ام:

آفیس 2003 ، بله آفیس 2003 وجود دارد، شاید بسیاری از برنامه نویسان وقتی یک فایل دیتابیس mdb ایجاد می کنند و از آن استفاده می کنند خبر ندارند که این پسوند پسوند فایل های دیتابیس Access نگارش 2003 است، آنه با Access فایل mdb تولید می کنند، چون اکسس نگارش های جدید مثلا Access 2003 میتواند فایل mdb تولید کند. مهمترین مشکل آفیس 2003 سه چیز با اهمیت است که از نگارش 2007 با تغییرات جدی تری روبرو شده است:

  1. استفاده از فیلد Calulate در جداول Table ها
  2. عدم پشتیبانی از پسوند accdb و accde
  3. عدم پشتیبانی از webpage

اگر از هیچ یک از این امکانات در برنامه ای که نوشتید استفاده نمی کنید باید بدانید که هنوز استفاده از این نگارش از آفیس(2003) را پیشنهاد نمی کنم چون پسوندهای accdb و accde را پشتیبانی نمی کند. جالب است بدانید فایل های با پسوند accdb و accde حتی در نگارش های اولیه Access2007 پشتیبانی نمی‌شده، نگارش Access2007 از جمله پر تغییرات‌ترین نگارش های Access بوده است، این نگارش دارای نگارش های فنی متعددی است که همگی بین سال 2007 تا سال 2010 ارائه شده اند و دارای تغییرات بسیاری جدیی هستند.

اما نگارش اکسس 2010 از تمامی تغییراتی که در نگارش 2007 طی سالهای 2007 و 2009 و تا سال 2010 پشتیبانی می کند، حتی در نگارش VBAی سال 2007 و 2010 اتفاق جدی‌یی افتاده است و نگارش VBA6 به VBA7 تغییر یافته، یکی دیگر از تغییرات جدی سال 2010 امکانات 32 بیتی و 64 بیتی شدن آفیس بوده، اصولا تا آخر آفیس 2007  همه نگارش های آفیس 32 بیتی بوده اند از آفیس 2010 به بعد دو نسخه برای آفیس بوجود آمد، آفیس 2010 -32 بیتی و نسخه 2010-64 بیتی. دو نسخه آفیس 32 و 64 بیتی به صورت همزمان روی یک رایانه نمی توان نصب کرد، یعنی نمی‌توان همزمان هم نسخه 32 بیتی روی یک ویندوز داشته باشید و هم نسخه 64 بیتی. باید به این نکته اشاره کنیم که نصب نسخه 64 بیتی آفیس 2010 به بعد یعنی نسخه های 2013 و 2016 و 2019 و 2023 و ... روی Windows های 32 بیتی امکانپذیر نیست، مطرح شدن نصب نسخه آفیس 32 بیتی و یا 64 بیتی روی Windows های 64 بیتی پیش می آید، بسیاری از کاربران آفیس حتی نمی دانند که آفیس نصب شده روی رایانه شان 32 بیتی است یا 64 بیتی اما این موضوع برای برنامه نویسی Access یعنی شما که برنامه نویس VBA Access هستید بسیار اهمیت خواهد داشت، اگر بخواهید از فایل accde استفاده کنید، و اگر نه استفاده از فایل های با پسوند accdb و mdb اشکالی پیش نمی آورد.

البته برخی از امکانات Access2010 در نگارش های بعدی Access حذف شده‌اند، بخصوص امکان (PivotChart) ، که باید موقع برنامه نویسی در Access2010 از استفاده از این امکان در Access2010 صرفنظر کنید چون استفاده از این امکان توسط کاربرانی که از نسخ های بعدی Access یعنی نسخه های 2013 و 2016 و 2019 و 2023 و ... استفاده می کنند امکانپذیر نیست.

برای برنامه نویس باید این مهم باشد که نرم افزارش توسط چه کاربرانی قرار است اجرا شود. پس از اتمام نرم افزاری که در Access نوشته اید شما دو راه دارید یا کاربران نرم افزار خود را وادار کنید که نگارشی از آفیس را روی سیستم خود نصب کنند که با نسخه ای از آفیسی که شما در آن برنامه نویسی VBA در Access را انجام دهید همخوانی داشته باشد، و یا اینکه نرم افزار خود را طوری آماده کنید تا با هر نگارشی از Access همخوانی داشته باشد.

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

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

من حالت دوم را پیشنهاد می کنم، اما باید نکات مهمی را در این حوزه کاری در نظر داشته باشید، و بهتر است این نکات را قبل از اینکه برنامه خود را به اتمام برسانید و یا حتی برنامه نویسی آن را آغاز کنید در نظر بگیرید.

مهندسی هم یعنی همین، یعنی برنامه ریزی برای رسیدن به هدف.

1. ببینید از امکاناتی که در اکسس می خواهید استفاده کنید در همه نسخه های آفیس پشتیبانی می شود؟

برای فهم و درک این نکات این صفحه را مطالعه کنید: تفاوت‌های نسخه‌های مختلف مایکروسافت اکسس.

از امکانات جایگزین برخی دیگر از امکانات استفاده کنید.

مثلا امکانات زیر را در نطر بگیرید(اینها بخش از برخی از امکانات وجه اختلاف نسخه‌های مختلف هستند):

  • امکان نوع داده محاسبه شده(Calculated data type):
    • این امکان در تعریف نوع فیلد در Table از نسخه 2010 به بعد اضافه شده است.
    • اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2007 دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
    • اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2007 بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری مثل بهره گیری از Query ها که همین نتیجه را خواهند داشت استفاده کنید.
  • امکان پشتیبانی از تعداد بزرگ (Large Number)
    • این امکان از نسخه 2019 به Access اضافه شده است. نوع داده Large Number یک مقدار غیر پولی و عددی را ذخیره می کند و با نوع داده SQL_BIGINT در ODBC سازگار است. این نوع داده به طور موثر اعداد بزرگ را محاسبه می کند. شما می توانید Large Number را به عنوان فیلد به جدول Access اضافه کنید. همچنین می‌توانید به پایگاه‌های داده با نوع داده مربوطه، مانند نوع داده Bigint SQL Server، پیوند داده یا از آن وارد کنید. برای استفاده از نوع داده Large Number برای پشتیبانی در پیوند دادن یا وارد کردن از منابع خارجی، ابتدا باید یک گزینه را در کادر گفتگوی Access Options انتخاب کنید. روی File > Options > Current Database کلیک کنید . در پایین کادر گفتگوی گزینه ها، بخش Data Type Support Options را خواهید دید . گزینه Support BigInt Data Type for Linked/Imported Tables را انتخاب کنید. بیشتر بدانید
    • اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2016 و قبل از آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
    • اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2016 و قبل از آن را، بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید.
  • امکان پشتیبانی از dbase
    • این امکان نیز از نسخه 2019 دوباره به اکسس بازگشته، ولی اکسس های 2010 و 2013 و 2016 از این امکان پشتیبانی نمی کنند.
    • اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2016 و قبل از آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
    • اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2016 و قبل از آن را، بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید.
  • امکان PivotChart:
    • این امکان فقط در اکسس نسخه 2010 وجود داشته.
    • اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2013، 2016، 2019 و بعد از آن را آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
    • اگر احتمال می دهید که کاربران نرم افزار شما از آفیس های بجز آفیس 2010 ممکن است بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید(برای این گونه نمودارها که به صورت فرم های فعال بودند، می توان از chart ها در Report ها استفاده کرد هر چند تفاوتهایی با هم دارند اما نتیجه مشابهی را از آن خواهید گرفت).
  • امکان WebBrowser:
    • این امکان نیز در اکسس 2010 به بعد به امکانات Access اضافه شده است

 امکانات بالا مثالهایی بودند که برخی از وجه اختلاف نسخه‌های مختلف در بهره گیری از امکانات اکسس را نشان می دهند، قبل از اینکه بخواهید از کنترلرها در فرم ها و گزارش ها استفاده کنید از فراگیر بودن آنها در آفیس های مختلف مطمئن شوید، البته بهترین کار، امتحان کردن نرم افزارتان در نسخه‌های مختلف اکسس است، یک راه نصب نرم افزار VM یا Virtual Machine (ماشین مجازی) است، با استفاده از این امکان شما می توانید از آفیس های مختلف استفاده کنید و برنامه ای را که نوشه‌اید در آفیس های نسخه های مختلف مورد بررسی قرار دهید، هر چند این روش نیاز به هاردیسک سریع و حجیم دارد (چون هر ماشین مجازی بین 3 تا 10 گیگابایت حجم خواهد گرفت، و سرعت بالا آمدن ویندوز در آن به سرعت هارد دیسکی بستگی دارد که در آن VM را راه‌اندازی می کنید)، یعنی نوع هارد دیسکی که برای VM استفاده می کنید بهتر است SSD باشد تا HDD؛ البته شاید شما نسخه‌های بهتری از هاردیسک‌های سریعتر را سراغ داشته باشید.

من VM های متعددی در رایانه های خود نصب کرده ام و آفیس ها به خصوص Access های نسخه‌های مختلفی را آماده به کار دارم.

تجربیات من در به کارگیری از Access های مختلف به شرح زیر است:

  • نسخه 2007، این نسخه به دو نوع منشعب می شود.  ولی هر دو نسخه 32 بیتی هستند:
    • نسخه ای از Access2007 که پسوند accdb را نمی شناسد.
    • نسخه ای از Access2007 که پسوند accdb را می شناسد، من این نسخه اکسس را به لحاظ فنی به شماره فنی نگارش 12.0.6211.1000 می شناسم، و موقعی که می خواهم از برنامه های Setup برای ادامه کار نصب نرم افزار روی رایانه مشتری ام استفاده کنم، توسط نرم افزار Setup، بررسی می کنم که نسخه فنی فایل Access از این شماره به بعد باشد، چون من به هیچ وجه از فایل های mdb استفاده نمی کنم.

اگر بخواهم بنا به دلایلی کاربرانی که از نسخه اکسس 2007 قبل از 6211 را پشتیبانی کنم باید فایلی را برای آنها ایجاد کنم که در این نگارش از اکسس اجرا شود، بنابراین باید VMی داشته باشم که Office نسخه 2007، با نگارش فنی قبل از 6211 را داشته باشد، ظاهرا نسخه 2007 از سال 2005 در حال تولید بوده است و نسخه‌های قبلی متعددی از این آفیس وجود دارد، من یک نسخه این این آفیس را دارم Microsoft Office 2007 SP1  (12.0.4518.1014)، این نسخه همان نسخه‌ای از آفیس 2007 ی است که Access اش فایل های accdb و accde را نمی شناسد.

اما نسخه Microsoft Office 2007 SP1  (12.0.4518.1014)، شامل نخستین Access ی است که accdb و accde را می شناسد.

  • نسخه 2010 این نسخه دارای دو نوع با اهمیت است، یکی 32 بیتی است و دیگری 64 بیتی
    • نسخه Access، که همزمان با نصب Office 2010 نصب می شود به لحاظ کامپایل کدهای فایل accde  با نسخه 64 بیتی متفاوت است. به عبارتی  فایلی accdeیی که با Access2010-32bit تولید شده باشد، در Access2010-64bit اجرا نمی شود، البته این اختلاف در اجرای فایل‌های دارای کدهای VBA فقط به فایل accde ختم می شود و شامل فایل های accdb نمی شود.

من دو نسخه VM برای دو Access2010 دارم:

ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2010 - 32 bit نصب شده است.

ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2010 - 64 bit نصب شده است.

  • سایر نسخه های 32 بیتی و 64 بیتی Access بخصوص نسخه های 2013 و 2016 اختلاف چندانی با هم ندارند، مثلا می توانید نسخه های زیر را هم داشته باشید:

ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2013 - 32 bit نصب شده است.

ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2016 - 64 bit نصب شده است.

یا مثلا :

ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2016 - 32 bit نصب شده است.

ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2013 - 64 bit نصب شده است.

فرق ندارند.

  • نسخه آفیس 2019 که به 2020 نیز معروف است چون همچنان آپدیت های این نسخه در راه هستند نیز باید روی VM آماده به کار باشند.

2. ببینید که آیا می توانید به کاربران خودتان بجای accde، فایل های با پسوند accdb بدهید؟

از آنجا که فایل accde کامپایل شده است باید نسخه Access مجری فایل accde شبیه و هم نسخه Accessی باشد که آنرا کامپایل کرده است، اما در مورد فایل accdb این موضوع ربطی به نسخه Access ندارد و هر Accessی می تواند هر فایل accdb را اجرا کند، اما اشکال فایل accdb در اینجا است که فایل accdb دارای کدهای vba است که  توسط برنامه نویسان دیگر قابل خواندن و تغییر است، در صورت ورود به بخش vba و هک این بخش کدهایی که برای بخش اقتصادی و تامین اعتبار برنامه نویس مهم است هستند، دستخوش تغییرات خواهند شد. اما می توان روی فایل دیتابیس accdb گذرواژه محکمتری قرار داد که به Database Password معروف است.

اگر برنامه نویسی VBA  هستید می دانید که سطوح مختلفی برای حفاظت از کدهای برنامه نویسی شدۀ شما، توسط Access وجود دارد.


داستان سطوح رمزگذاری روی کدهای VBA به شرح زیر است:

  • بگذارید به این سئوال پاسخ دهیم: چرا به حفاظت از VBA در اکسس نیاز داریم؟!
    • وقتی در VBA کدنویسی می کنیم، که می خواهیم کاری شگفت‌انگیزتر از امکانات Access ارائه کنیم، مثلا می خواهیم یک برنامه حسابداری بنویسیم، در چنین حالتی تعداد خطوط برنامه نویسی ما به شدت افزایش خواهد یافت و تامین بودجه های برنامه نویسی مطرح می شود، برای تامین بودجه‌ها باید ارائه نرم‌افزار به کاربران محدود شود- فقط کاربرانی از نرم افزار استفاده کنند که در تامین اعتبارات برنامه نویس نقشی برای آنها تعیین شده است- این سئوال پیش می آید که آیا می شود برای نرم افزار کد فعالسازی تولید کرد، یعنی کاربرانی بتوانند از نرم افزار استفاده کنند که کد فعالسازی گرفته باشند؟ بی‌درنگ پاسخ بلی است؛ بله می شود کد فعالسازی متناسب با امکانات کاربر تولید کرد و در صورتی که کاربر کد فعالسازی خود را به نرم افزار بدهد نرم‌افزار کار کند.- روش های متعددی برای صدور کدفعالسازی وجود دارد که در این صفحه به آن خواهیم پرداخت.
    • بنابراین در کدهای برنامه نویسی بخشی خواهیم داشت که اگر کاربر کدفعالسازی تهیه کرده باشد و به نرم افزار ارائه کرده باشد بتواند از نرم افزار استفاده کند در غیر اینصورت نرم افزار از ادامه کار با خواهد ماند.
    • اگر برنامه نویسی(موسوم به هکر) بخش VBA نرم افزار را باز کند و بخشی از کدها -که اجرای دستورات برنامه نویسی شده را منوط(مشروط) به درستی کدفعالسازی می کند- را حذف کند، عملا بخش تامین اعتبارات از بین رفته و برنامه نویسی از حقوق خود باز خواهد ماند.
    • به همین منظور سعی می شود که کدهای نوشته شده توسط برنامه نویس از چشم کاربران کاملا مخفی بماند.
  • چگونه از کدهای VBA در اکسس حفاظت می شود؟!
    • اولین سطح بخش Project Protection خود VBA در اکسس است، این بخش برای باز کردن و نمایش کدهای VBA از برنامه نویس گذرواژه می خواهد.
      • اما این بخش خیلی هم قدرتمند نیست، من بسیاری از کدهای VBA یی که در این بخش در فایل های accdb - یا xlsxm و حتی xlam دز اکسل-بوده‌اند را دیده‌ام که باز شده‌اند و قابل تغییر بوده‌اند-برای این منظور نرم‌افزارهایی وجود دارد- این نرم‌افزارها به هکرها برای غلبه بر گذرواژه‌های بخش VBA کمک می‌کنند.
    • دومین سطح بخش Make MDE خود اکسس است، این بخش فایل های accdb را به accde تبدیل می کند.
      • چون این بخش از اکسس در زمانی که پسوند فایل های اکسس mdb بوده، و فایل های mdb توسط ابن بخش به mde تبدیل می شده هنوز هم همین نام را دارد ولی بهتر بود از اول نام این بخش را Compiler بخش VBA می نامیدند، اکنون با ظهور فایل های accdb بجای mdb این عمل موجب می شود که فایل accdb به accde تبدیل شود.
      • مایکروسافت کامپایل کدهای VBA را فقط و فقط برای اکسس در دستور کار خود دارد، و در هیچیک از اپلیکیشن های آفیس کامپایل کدهای VBA در دستور کار نیست.
      • نتیجه ای این فرآیند مهم -یعنی بخش Make MDE- تولید کدهایی باینری(دودویی) است که با زبان انسان بسیار متفاوت است، وقتی کد VBA در فایل accbd تولید می شود دارای مفهوم برای برنامه نویسان است، ولی وقتی به کدهای دودویی تبدیل می شود دیگر توسط انسان قابل درک نیست، این کدها کدهایی هستند که توسط کامپیوتر قابل اجرا هستند.
      • برای تکمیل این بخش و برای حفاظت بیشتر، Access پیشنهادی برای کاربران خود دارد، Access یا به عبارتی برنامه نویسان مایکروسافت اکسس به کاربران خود پیشنهاد می کنند فایل های accde خود را به accdr تغییر نام دهند و بدین طریق از اکسس بخواهند که امنیتی مضاعف برای فایل های accde که اکنون با پسوند accdr به اکسس وارد شده است قائل باشد، این امنیت شامل عدم نمایش برخی از قسمت های اکسس به کاربری که در حال استفاده از فایل accdr است و نیز اجرای بی درنگ قسمتهایی از فایل accdr است که در فایل های دیگر Access مانند پسوندهای accdb و accde با ملاحظاتی اجرا می شوند. در مورد فایل های با پسوند accdr و امکاناتی که Access برای آن قایل است در این صفحه توضیح خواهیم دارد.
      • متاسفانه اختلافاتی در اجرای کدهای فایل accde بین نسخه‌های مختلف اکسس وجود دارد، یعنی مثلا کدهای VBA ی کامپایل شده توسط Access2010-64bit توسط Access2016-64bit اجرا نمی شود، و یا مثلا کدهای VBA ی کامپایل شده توسط Access2010-32bit توسط Access2010-64bit اجرا نمی شود. این قبیل مشکلات موجب می شود که من برای ارائه نرم‌افزارهای نوشته شده توسط اکسس راه‌های زیر را در نظر بگیرم:
        • کامپایل فایل های accdb به accde توسط Access های مختلف، و قرار دادن فایل های accdeهای تولید شده در بسته نصب نرم افزار.
          • اگر می خواهید برنامه‌ای را که نوشته اید کاملا حفاظت شده باشد، باید فایل accdb را در Accessهای مختلف کامپایل کنید-یعنی به accde تبدیل کنید- و بنا به نگارش Access ی که در رایانه کاربر نصب شده است، فایل accde همان نسخه کامپایل شده را در رایانۀ کاربر نصب کنید- اینکار باعث می شود که فایل نصب دارای حجمی بزرگتر از حد معمول باشد.
          • راه دیگر این است که از کاربر بخواهید خودش نگارش آفیسی که روی رایانه اش است را شناسایی کند، و فایل نصبی از نرم افزار تهیه شده توسط شما را دانلود کند که با نسخه آفیس اش هخوانی دارد.
          • در تجربه ای که من داشته‌ام کاربران تمایل و یا تخصص شناسایی نسخه آفیس خود را ندارند و ترجیح می دهند فایل با حجم بیشتر- که روی هر آفیسی نصب می شود- را دانلود کنند.
          • از اینجا به بعد باید یک برنامه Setup قوی بسازید که بتواند نسخه آفیسی که روی رایانه کاربر نصب شده است را شناسایی کند.
          • من در یک تجربه دیگر ابتدا نرم افزاری را در اختیار کاربران خود قرار می دادم که رایانه کاربر را آنالیز می کرد و به او می گفت که چه نگارشی از آفیس روی رایانه اش نصب شده است، سپس لینک دانلود نرم افزار مرا که برای نگارش آفیس مرتبط با نگارش آفیس نصب شده روی رایانه مشتری همخوانی داشت به وی ارائه می کرد؛ این نرم افزار در واقع بخشی از برنامه Setup نرم افزار من بود که دارای حجمی بسیار کم بود، چرا که این برنامه Setup که مثلا Analize نام داشت، حاوی فایل های accde نبود، و فقط نوع آفیس نصب شده در رایانه مشتری من را ارزیابی می کرد- پس از تعیین نگارش آفیس مستقر در رایانۀ مشتری - برنامه آنالیز لینک دانلود برنامه setup مناسب با آفیس مشتری را به او معرفی می کرد.
            • مثلا:
              • یک فایل نصبSetup شامل همه accde های همه نسخه‌های آفیس با حجم 100 مگابابیت.
              • یک فایل Analize، که قبل از نصب نگارش آفیس مستقر در رایانه کاربر را شناسایی می کند، با حجم 3 مگابایت.
              • فایل های نصب متعدد برای نگارش های مختلف آفیس هر کدام با حجمی برابر با 16 مگابایت.
            • اما همانطور که گفتم مشتریان بیشتر تمایل به دانلود فایل اول داشتند.
        • استفاده از نرم افزار accdbexe و استفاده از Database Password و ارائه فایل accdb در قالب accdr بجای فایل accde به مشتریان.
          • اصولا گذرواژۀ دیگری برای فایل های اکسس وجود دارد که هنگام باز کردن فایل به آن نیاز خواهیم داشت، اما نمی توانیم این گذرواژه را در اختیار مشتریان قرار دهیم، چون عملا این گذرواژه دسترسی به بخش های مختلف فایل را فراهم می کند، به عبارتی اگر این رمز را در اختیار مشتریان قرار دهیم دقیقا مثل این است که اصلا رمزی روی آن نگذاشته ایم.
          • این رمز که یک عبارت 20 کاراکتری می تواند باشد، Database Password نام دارد.
          • هیچ سویچی هم برای تزریق این گذرواژه به Access هنگام باز کردن فایل Database وجود ندارد.
          • من نرم افزاری تهیه کرده ام که accdbExe نام دارد و می تواند این گذرواژه را در خود مستتر کند و هنگام باز کردن فایل دیتابیس وقتی که پنجره Databse Password نمایش داده می شود، گذرواژه را به داخل پنجره Database Password تزریق کرده و به صورت خودکار کلید Enter را بزند، به این ترتیب بدون اینکه گذرواژه در اختیار کاربران نرم افزار قرار بگیرد، فایل های دیتابیس دارای گذرواژه در اختیار کابران قرار داده خواهد شد.
          • هنگام تزریق گذرواژه به پنجره کنترل‌های مختلفی انجام می شود، و اینکار توسط PID یا ProccessID انجام می شود، به نحوی که هنگام فراخوانی فایل اکسس کد PID اکسسی که در حافظه Ram بارگذاری می شود، در نرم افزار به خاطر سپرده می شود و هنگامی که پنجره Database Password نمایش داده می شود به ازرای تزریق هر کاراکتر گذرواژه بررسی می شود که کدپنجره فعال که در حال تزریق گذرواژه به آن است حتما همان کدی باشد که هنگام فراخوانی فایل اکسس به خاطر سپرده شده است. فرآیند تزریق گذرواژه Databse Password تنها یکی از کارهایی است که نرم افزار accdbExe انجام می دهد، اما همین کار نیز دارای جزئیات بیشماری است که موجب می شود که گذرواژه دیتابیس به Access هنگام باز کردن فایل accde یا accdb تزریق شود و خلاصه اینکه از فایلی استفاده شود که علاوه بر حفاظت های معمول برای بخش vba دارای گذرواژۀ Database Password  نیز باشد.
          • شاید برای شما این سئوال پیش آمده باشد که PID چیست؟
            • قصد دارم این بخش را کمی توضیح دهم:
            • هنگامی که در ویندوز به Taskmanager رجوع می کنید-برای رجوع به این بخش می توانید کلیدهای Ctrl+Shidt+Esc را همزمان بزنید- ابتدا به بخش Proccess این پنجره وارد خواهید شد. در این بخش تمام نرم افزارها و سرویس های ویندوز که در حافظه هستند و از تایم CPU استفاده می کنند نمایش داده می شود،  مثلا اگر دوبار پنجره Access را باز کنید در این پنجره دو ردیف عبارت Microsoft Access را خواهید یافت.
            • روی یکی از عبارت‌های Microsoft Access راست کلیک کنید و از منوی باز شده گزینۀ Go to details را انتخاب کنید، با اینکار به بخش Details پنجره TaskManager وارد خواهید شد در این بخش جزئیات بیشتری از تمام نرم افزارهایی که در ویندوز در حافظه بارگذاری شده اند و از تایم CPU استفاده می کنند مشاهده خواهید کرد.
            • خوب که دقت کنید جلوی هر نرم افزار یک کد یکتا خواهید دید که زیر ستون PID یا ProccessID قابل مشاهده است.
            • مثلا دو Microsoft Access دارای دو شناسه PID مختلف هستند.
            • نرم افزار accdbExe هنگامی که فایل دیتابیسی را با Access باز می کند این کد را از ویندوز دریافت می کند و هنگامی که قصد دارد گذرواژه مربوط به فایل دیتابیس را به Access تزریق کند چک می کند که پنجره فعال که در حال تزریق گذرواژه به آن است کد PID آن برابر با همان کدی باشد که هنگام فراخوانی فایل آنرا از ویندوز دریافت کرده.
برای استفاده از این نرم‌افزار، مطمئن شوید که روی رایانه Microsoft Office نصب شده باشد، سپس نرم‌افزار VBA Assistant را دانلود و نصب کنید. پس از نصب افزونه با اجرای برنامه Setup.exe وارد یکی از نرم‌افزارهای Office شوید مثلا وارد Excel یا Access شوید، کلیدهای Alt+F11 را همزمان بزنید تا وارد محیط VBA یا محیط برنامه نویسی Visual Basic for Application شوید، اکنون در پنجره VBA می‌توانید زیر نوار ابزار (Toolbar)، یک نوار منوی جدید مشاهده کنید، این نوار منو در بکارگیری دستورات VBA به شما کمک شایانی خواهد کرد.


مثلا در تصویر بالا، محیط VBA در محیط Word به نمایش گذاشته شده است که
در کادر باریک قرمز رنگ منوی دستیار VBA Assistant قابل مشاهده است.
همین وضعیت برای Excel و Access و سایر اپلیکیشن های Office امکانپذیر است.


این افزونه به توسعه دهندگان نرم‌افزار حرفه ای و کاربران MS Office اجازه می‌دهد تا کد VBA را سریعتر بنویسند:
• IntelliSense حساس به متن: به شما امکان می‌دهد کدهای برنامه نویسی VBA را از یک منوی میانبر انتخاب کنید. در این بخش می‌توانید از یک متغیر یا ثابت استفاده کنید یا یک متغیر جدید را اعلام کنید ، از نام‌های موجود، نامی را انتخاب کنید، مقادیر ویژگی(خصلت کنترلرها و آبجکت‌ها) را بدست آورید یا یک تابع VBA را فراخوانی کنید که مقداری از نوع مورد نیاز را برمی‌گرداند. هنگام تغییر مشخصات یک متغیر شیء توسط کدهای برنامه‌نویسی، تمام انتخاب ممکن را برای انتخاب به شما ارائه می‌دهد(که باعث می شود به جای دیدن راهنما و یا به خاط آوردن جزئیات از اسامی موجود در منوی بازشوی popup به راحتی استفاده کنید). هنگامی‌که شما نیاز به تعیین یک شرط دارید، به شما امکان می‌دهد از گزینه‌هایی که یک مقدار True/False را برمی‌گردانند و نیز از پنجره شرط ساز( Condition Builder ) استفاده کنید .
• راهنمای ابزار توضیح می‌دهد که کلاس‌ها و رویه‌ها چه کاری انجام می‌دهند.
• با امتحان کردن رویه‌ها در پنجره فوری، قبل از قرار دادن آنها در ماکرو، متوجه شوید که تغییرات شما چه کاری انجام می‌دهند .
• منوی برنامه میانبری به ابزارهای پرکاربرد برای Excel ، Access و غیره می‌دهد.
• موارد شامل: Class Builder ، UserForm Builder Procedure Builder ، Loop Builder ، If / Select Builder ، Condition Builder ، String Builder ، MsgBox Builder ، InputBox Builder ، SelectionBox Builder ، Datepicker Builder BuilderC . به طور خاص برای MS Access: Recordset BuilderS (DAO و ADO) ، ایجاد کلاس برای Table و SQL VBA Builder .
• از کد اکسپلورر به‌عنوان جایگزینی برای Project Explorer استفاده کنید : پیمایش آسان به رویه‌ها، کد ارسال نظر، تورفتگی مرتب ، اضافه کردن مدیریت خطا، صادرات یک ماژول به کتابخانه قطعات کد .
• کتابخانه Code VBA را با قطعات کد و منابعی که به صورت آنلاین یافت می‌شود گسترش دهید.
• Procedure Call Builders معنی هر یک از آرگومان های رویه را ارائه می‌کند. برای هر آرگومان می‌توانید از enum ها، اشیا یا متغیرهای مناسب انتخاب کنید.
• از اتوماسیون استفاده کنید تا برنامه های Office با هم کار کنند، به عنوان مثال ایمیل های سفارشی شده (Outlook) از پایگاه داده Access . مراجع به صورت خودکار تنظیم می‌شوند.

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

در زیر از آنجا که در این وب سایت در حال ارائه مطالب در زمینه اپلیکیشن اکسس هسیتم تصاوری از امکانات و منوهای این نرم افزار در محیط برنامه نویسی VBA for Access تقدیم حضور می گردد:

تصاویر منوهای افزونه VBA Assistant


البته همانطور که توضیح داده شد این افزونه فقط مجهز به منو نیست بلکه دارای پنجره های کدسازی بسیاری است که به کمک آن می توانید کدهای VBA را به راحتی تست و بررسی کرده و سپس استفاده کنید، ضمن اینکه از امکان تایپ سریع با استفاده از منوهای آبشاری بازشو، در صفحه برنامه نویسی برنامه نویس را بهرمند می سازد.

نمونه ای بک پنجره کد سازی:

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

Logic


عملگر Mod 

این عملگر باقیمانده تقسیم دو عدد را بر هم بر می گرداند مثلا وقتی بخواهید ببینید که عددی زوج است، آنرا بر 2 تقسیم می کنید و اگر باقیمانده اش بزرگتر از 0 باشد آن عدد عددی زوج است.

مثلا:

if 4 mod 2=0 then .....

یعنی اگر عدد 4 زوج بود پس ...، یا مثلا فرض کنید داخل متغییر A، عددی وجود ارد و نمی دانیم عدد چند است، طی خط دستور زیر اگر عدد زوج باشد، پیام Zoj صادر خواهد شد، و اگر نه پیام Fard صادر خواهد شد:

if A mod 2=0 then msgbox "Zoj" else mesbox "Fard"

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

result = number1 Mod number2

مقدار برگشتی این تابع یک عدد ست و دو آرگومان یا پارامتر دارد که هر دو عددی هستند.

ملاحظات

عملگر باقیمانده عدد اول را بر عدد دوم تقسیم می کند (اعداد ممیز شناور را گرد می کند تا اعداد صحیح) و فقط باقیمانده را به عنوان نتیجه برمی گرداند. به عنوان مثال، در عبارت زیر، A (نتیجه) برابر با 5 است.

A = 19 Mod 6.7

Example:

Dim MyResult

MyResult = 10 Mod 5 ' Returns 0.

MyResult = 10 Mod 3 ' Returns 1.

MyResult = 12 Mod 4.3 ' Returns 0.

MyResult = 12.6 Mod 5 ' Returns 3.


عملگر And

این عملگر دو پارامتر می گیرید و اگر هر دو پارامتر درست باشند نتیجهدرست بر می گرداند.

مثلا شما می خواهید اگر عددی زوج و بزرگتر از 10 بود پیام دهید ZojBozorg و اگرنه پیامی صادر نشود:

if  (A mod 2=0)  AND (A>10) then msgbox "ZojBozorg"

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

result = expression1 And expression2

ملاحظات

اگر هر دو عبارت True ارزیابی شوند، نتیجه True است. اگر هر یک از عبارت ها به False ارزیابی شود، نتیجه False است. این جدول زیر نحوه تعیین نتیجه را نشان می دهد:

True AND True ::Result:True

True AND False ::Result:False

True AND Null ::Result:Null

False AND True ::Result:False

False AND False ::Result:False

False AND Null ::Result:False

Null AND True ::Result:Null

Null AND False ::Result:False

Null AND Null ::Result:Null

Example:

Dim A, B, C, D, MyCheck

A = 10: B = 8: C = 6: D = Null ' Initialize variables.

MyCheck = A > B And B -> C ' Returns True.

MyCheck = B > A And B -> C ' Returns False.

MyCheck = A > B And B -> D ' Returns Null.


عملگر OR (یا)

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

Or Operator

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

result = expression1 Or expression2

The Or operator syntax has these parts:

ملاحظات

اگر تنها یکی از دو عبارت True ارزیابی شوند یا هر دو عبارت True ارزیابی شوند، نتیجه True است. اگر هر دو عبارت ها به False ارزیابی شود، نتیجه False است. این جدول زیر نحوه تعیین نتیجه را نشان می دهد:

If expression1 is And expression2 is Then result is

True OR True 'True

True OR False 'True

True OR Null 'True

False OR True 'True

False OR False 'False

False OR Null 'Null

Null OR True 'True

Null OR False 'Null

Null OR Null 'Null

Example:

Dim A, B, C, D, MyCheck

A = 10: B = 8: C = 6: D = Null ' Initialize variables.

MyCheck = A > B Or B > C ' Returns True.

MyCheck = B > A Or B > C ' Returns True.

MyCheck = A > B Or B > D ' Returns True.

MyCheck = B > D Or B > A ' Returns Null.


عملگر Xor (فقط یکی درست)

Xor Operator

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

[result =] expression1 Xor expression2

ملاحظات

اگر فقط یکی از دو عبارت به درست ارزیابی شود، نتیجه True است(دقت کنید فقط یکی از دو عبارت یعنی اگر هر دو دست باشند، دیگر نتیجه درست نیست). با این حال، اگر هر یک از عبارت ها تهی باشد، نتیجه نیز پوچ است. زمانی که هیچ کدام از عبارت ها تهی نباشد، نتیجه مطابق جدول زیر تعیین می شود:

True True False

True False True

False True True

False False False

Example:

Dim A, B, C, D, MyCheck

A = 10: B = 8: C = 6: D = Null ' Initialize variables.

MyCheck = A > B Xor B > C ' Returns False.

MyCheck = B > A Xor B > C ' Returns True.

MyCheck = B > A Xor C > B ' Returns False.

MyCheck = B > D Xor A > B ' Returns Null.


عملگر Not

If Not

این عملگر وضعیت را معکوس به نتیجه می رساند، مثلا می خواهیم اگر وضعیتی برقرار نباشد دستوری اجرا شود، همانطور که می دانید در دستور IF از ELSE استفاده می کنیم:

if (B) then

      'nothing

else

      'more commands

      'more commands

      'more commands

endif

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

if NOT (B) then

      'more commands

      'more commands

      'more commands

endif


عملگر Like (شبیه به ...)

در مقایسه جملات از عبارتهایی مانند * و ? استفاده هایی می شود.

این عبارتها تفاسیری دارند:

* یعنی هر جمله ای، مثلا: *Ali یعنی بعد از Ali هر جمله ای که وجود داشت، یا به عبارتی دیگر: یعنی هر جمله ای که با Ali شروع شود، یعنی AliReza، Ali reza، Alijan

؟ یعنی هر کاراکتر یا هر حرفی، در این مدل تعداد کاراکترها با تعداد ؟ ها تعیین می شود، مثلا: ??Ali، یعنی جمله ای که حتما بعد از Ali دو کاراکتر یا حرف باشد، مثلAlireT در این مثال Alireza جز مجموعه ??Ali، واقع نخواهد شد، اگر می خواهید Alireza جز مجموعه باشد باشد باید از عبارت ????Ali استفاده کنید.

# یعنی یک عدد مثل 1و2و3 و ...و9

برای اینکه جمله ای را با عبارتی از این قبیل عبارتها مقایسه کنید از هیچیک از عملگرهای قبلی نمی توان استفاده کرد، مثلا:

if "Ali????"="AliReza" then msgbox "OK" else "NO"

نتیجه درستور بالا "NO" خواهد بود، چون دو عبارت "????Ali"و "AliReza" با هم برابر نیستند.

برای مقایسه این دو عبارت به صورتی که توضیح دادم، یاد از عملگر Like استفاده کنید.

Like operator

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

result = string Like pattern

اگر رشته با الگو مطابقت داشته باشد، نتیجه True است. اگر مطابقت وجود نداشته باشد، نتیجه نادرست است. اگر رشته یا الگوی تهی باشد، نتیجه صفر است.

رفتار عملگر Like به عبارت Option Compare بستگی دارد. مقایسه رشته پیش فرض روش برای هر ماژول گزینه مقایسه باینری است.

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

این جدول زیر کاراکترهای مجاز در الگو و آنچه که مطابقت دارند را نشان می دهد:

? Any single character.

* Zero or more characters.

# Any single digit (0–9).

[charlist] Any single character in charlist.

[!charlist] Any single character not in charlist.

Example:

Dim Name As String

Name = InputBox("Enter your name")

Find out if user's name begins with a J

If sName$ Like "J*" Then

 (code segment)

End If


عملگر Is

گاهی اوقات عبارتها را با هم مقایسه نمی کند بلکه اشیاء را با هم مقایسه می کنید، در چنین شرایطی  عملگر IS کارائی خواهد داشت.

Used to compare two object reference variables.

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

result = object1 Is object2

The Is operator syntax has these parts:

Part Description

result Required; any numeric variable.

object1 Required; any object name.

object2 Required; any object name.

Remarks

If object1 and object2 both refer to the same object, result is True; if they do not, result is False. Two variables

can be made to refer to the same object in several ways.

Example:

MyCheck = YourObject Is ThisObject ' Returns True.

MyCheck = ThatObject Is ThisObject ' Returns False.

برای فهم آرایه یک مثال می‌زنم:

فرض کنید تعدادی متغییر داریم که می‌خواهیم همه را نمایش دهیم، اگر متغییرها دارای یک الگو باشند راحتتر می توانیم از آنها استفاده کنیم، مثلا من 100 متغییر تعریف می کنم و آنها را اینطوری نام گذاری می کنم A0وA1وA2وA3وA4و...,A99، حالا می خواهم آنها را نمایش دهم، به این صورت کد می نویسم:

msgbox A0

msgbox A1

msgbox A2

msgbox A3

msgbox A4

msgbox ...

msgbox A99

باید برای ... همه چنین دستوراتی زیر هم کپی شوند، شما حتما درک می کنید که تغییرهای A5 تا A98 باید در ... تایپ شوند.

اگر تعداد متغییر ها بیشتر باشد، شاید بتوانیم این عملیات را با کپی پیست(Copy/Paste)، انجام دهیم ولی تعداد خطوط کدهای نوشته شده 100 خط افزایش خواهد یافت، همین کار را می توان با  4 خط انجام داد!

فرض کنید این دستور را بنویسیم:

Dim A(100)

for i = 0 to 99

msgbox A(i)

next

خروجی همان 100 خط کد بالا است!

یک متغییر با 100 عضو ایجاد کرده‌ام که در نام آن می‌توانم از متغییر دیگری استفاده کنم!

می‌توانم بجای عدد موجود در نام متغییر مثل A99 از این عبارت استفاده کنم (99)A، به شرطی که متغییر را از این نوع تعریف کنم این نوع را آرایه می گویند، حالا می توانم بجای عدد 99 از متغییر i استفاده کنم.

Dim A(100)

i=99

msgbox A(i)

و در بلوک دستور بعدی از متغییر i در یک حلقه استفاده کنم و i را تغییر دهم.

Dim A(100)

for i = 0 to 99

msgbox A(i)

next


  • Base 0 & 1

دستور تعیین پایه 0 یا 1:

همانطور که می دانید در کامپیوتر همیشه اعداد از 0 شروع می شوند یعنی اعداد یک رقمی از 0 تا 9 هستند؛ با استفاده از این دستور می توانید تعیین کنید که در حال تفسیر کدهای برنامه نویسی شده شما، کامپیوتر، اعداد را از 1 شروع کند.


Base 0 & 1
Option Base {0 | 1}

از آنجا که پایه پیش فرض 0 است، دستور Option Base هرگز مورد نیاز نیست.

اگر بخواهید که تفسیر کدهای برنامه نویسی شده شما، در حالت پیش فرض همیشه اعداد از 1 شروع شوند، باید فقط یک بار در یک ماژول(Module)، Option Base را استفاده کنید.


DIM

دستور ایجاد یک متغییر یا ایجاد یک آرایه، در Visual Basic و VBA استفاده از متغییرها بسیار-بسیار آسان ست، نه تنها نیاز به تعریف متغییرها قبل از استفاده از آنها نیست حتی لازم نیست نوع متغییر را تعیین کنید، و حتی می توانید از نوعی از متغییر در شرایط سخت استفاده کنید که هر نوعی میتواند داشته باشد، یعنی میتواند هم عددی باشد و هم جمله ای.

اما اگر سعی داشته باشید متغییر یا نوع آنرا تعیین کنید می توانید از دستور DIM استفاده کنید.

اما برای تعریف متغییرهای آرایه ای قضیه کمی متفاوت‌تر است، در این باره باید حتما از دستور DIM استفاده کنید و تعیین کنید که متغییر چند عضو باید داشته.


Dim
Dim statement placed right in the procedure where it's going to be used. The value of a procedure level variable
cannot be accessed outside it's procedure. When the procedure finishes (End Sub or End Function), the variable
is destroyed and memory allocated to the variable is released.
Example:
Dim Word As String


ReDim

در برنامه نویسی VBA تعداد اعضای آرایه قابل تغییر نیست، اگر تعداد اعضای یک آرایه را تغییر دهید، تمام اطلاعات موجود در متغییرهای آرایه حذف خواهد شد، اما غیر ممکن نیست؛ یعنی می توان تعداد اعضای یک آرایه را تغییر داد.

مثلا اگر آرایه‌ای 100 عضو داشته باشد و بخواهیم تعداد اعضای آنرا به 200 عضو تغییر دهیم، امکانپذیر است، برای این منظور از دستور Redim استفاده می کنیم.

دستور نوشتاری فرمان(Syntax) به نحو زیر است:


ReDim
Used at procedure level to reallocate storage space for dynamic array variables.
Syntax
ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]] . . .
The ReDim statement syntax has these parts:
Part Description
Preserve Optional. Keyword used to preserve the data in an existing array when you change the size
of the last dimension.
varname Required. Name of the variable; follows standard variable naming conventions.
subscripts Required. Dimensions of an array variable; up to 60 multiple dimensions may be declared.
The subscripts argument uses the following syntax:
[lower To] upper [,[lower To] upper] . . .
When not explicitly stated in lower, the lower bound of an array is controlled by the
Option Base statement. The lower bound is zero if no Option Base statement is present.
Aaron Wirth
20
type Optional. Data type of the variable; may be Byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (not currently supported), Date, String (for variable-length
strings), String * length (for fixed-length strings), Object, Variant, a user-defined type, or
an object type. Use a separate As type clause for each variable being defined. For a
Variant containing an array, type describes the type of each element of the array, but
doesn't change the Variant to some other type.
Remarks
The ReDim statement is used to size or resize a dynamic array that has already been formally declared using a
Private, Public, or Dim statement with empty parentheses (without dimension subscripts).
Example:
Dim X(10, 10, 10)
[Code]
ReDim Preserve X(10, 10, 15)


Erase statement

متغییرها، مقداری حافظه اشغال می کنند اما این مقدار در برابر حافظه کامپیوتر خیلی کم است، اما اگر از آرایه استفاده کنید، به تعداد اعضای آرایه از حافظه استفاده می‌شود و استفاده بی رویه از آرایه ها موجب اشغال بیش از حد حافظه و نهایتا از کار افتادن نرم افزار خواهد شد، مثلا یک متغییر 10000 عضوی، 10000 بار بزرگتر از یک متغییر یک عضوی است، پس از اینکه با آرایه‌ها کارمان تمام شد باید آنها را حذف کینم، هر چند موقع خروج از نرم افزار یا موقع خروج از یک زیر برنامه به صورت خودکار آرایه ها حذف می شوند، اما طی استفاده از برنامه، برنامه نویس باید به آرایه ها توجه داشته باشد(چون برخی آرایه ها به صورت عمومی تعریف می شوند)، و اگرنه کاربران نرم افزار به او خواهند گفت هر بار که از نرم افزار شما استفاده می کنیم سیستم به شدت کند می شود!

برای حذف آرایه هاز دستور Erase استفاده می کنیم. خیلی راحت "نام آرایه Erase".

دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Erase statement
Reinitializes the elements of fixed-size arrays and releases dynamic-array storage space.
Syntax
Erase arraylist
The required arraylist argument is one or more comma-delimited array variables to be erased.
Remarks
Erase behaves differently depending on whether an array is fixed-size (ordinary) or dynamic. Erase recovers
no memory for fixed-size arrays. Erase sets the elements of a fixed array as follows:
Type of Array Effect of Erase on Fixed-Array Elements
Fixed numeric array Sets each element to zero.
Fixed string array (variable
length)
Sets each element to a zero-length string ("").
Fixed string array (fixed
length)
Sets each element to zero.
Fixed Variant array Sets each element to Empty.
Array of user-defined types Sets each element as if it were a separate variable.
Array of objects Sets each element to the special value Nothing.
Example:
Erase sMessage
In a regular array, the Erase statement will simply initialize all the elements. (False for Boolean, 0 for numbers,
and "" for strings). In a dynamic array, Erase will also release all the memory allocated to the array.


Array Function

معمولا برای مقدار دهی به آرایه پس از تعریف آرایه در خط دستور مقادیری را به آرایه اختصاص می دهیم، مثلا:

Dim A(100)

for i = 0 to 99

msgbox A(i)

next

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

اما یک راه دیگر برای قرار دادن مقادیر در آرایه ها وجود دارد که می توان با استفاده از این روش هنگام تعریف آرایه ها همزمان به آن مقدار داد؛ این روش مثلا برای تعریف آرایه ای 12 عضوی که شامل اسامی ماههای سال باشد، یا آرایه های 7 عضوی که شامل اسامی روزهای هفته باشد، استفاده می شود.

مثلا:

MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

در این دستور یک آرایه 7 عضوی که اعضای آن از 0 تا 6 نامگذاری می شوند، (0)MyWeek تا (6)MyWeek بوجود آمده.

دستور نوشتاری فرمان(Syntax) به نحو زیر است:

Array Function

Returns a Variant containing an array.
Syntax
Array(arglist)
The required arglist argument is a comma-delimited list of values that are assigned to the elements of the array
contained within the Variant. If no arguments are specified, an array of zero length is created.
Remarks
The notation used to refer to an element of an array consists of the variable name followed by parentheses
containing an index number indicating the desired element. In the following example, the first statement creates
a variable named A as a Variant. The second statement assigns an array to variable A. The last statement
assigns the value contained in the second array element to another variable.
Example:
Dim MyWeek, MyDay
MyWeek = Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
' Return values assume lower bound set to 1 (using Option Base
' statement).
MyDay = MyWeek(2) ' MyDay contains "Tue".
MyDay = MyWeek(4) ' MyDay contains "Thu".

Files/Folders


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Dir
Returns a String representing the name of a file, directory, or folder that matches a specified pattern or file
attribute, or the volume label of a drive.
Syntax
Dir[(pathname[, attributes])]
The Dir function syntax has these parts:
Part Description
pathname Optional. String expression that specifies a file name — may include directory or
folder, and drive. A zero-length string ("") is returned if pathname is not found.
attributes Optional. Constant or numeric expression, whose sum specifies file attributes. If
omitted, returns files that match pathname but have no attributes.
Settings
The attributes argument settings are:
Constant Value Description
vbNormal 0 (Default) Specifies files with no attributes.
vbReadOnly 1 Specifies read-only files in addition to files with no
attributes.
vbHidden 2 Specifies hidden files in addition to files with no
attributes.
VbSystem 4 Specifies system files in addition to files with no
attributes. Not available on the Macintosh.
vbVolume 8 Specifies volume label; if any other attributed is
specified, vbVolume is ignored. Not available on the
Macintosh.
vbDirectory 16 Specifies directories or folders in addition to files
with no attributes.
vbAlias 64 Specified file name is an alias. Available only on the
Macintosh.
Note These constants are specified by Visual Basic for Applications and can be used anywhere in your code in
place of the actual values.
Example:
If Dir("c:\windows\win.ini") = "win.ini" Then
MsgBox "File exists"
Else
MsgBox "File does not exist"
End If


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


ChDir
Changes the current directory or folder.
Syntax
ChDir path
The required path argument is a string expression that identifies which directory or folder becomes the new
default directory or folder. The path may include the drive. If no drive is specified, ChDir changes the default
directory or folder on the current drive.
Remarks
The ChDir statement changes the default directory but not the default drive. For example, if the default drive is
C, the following statement changes the default directory on drive D, but C remains the default drive.
Example:
Dim Path as string
Dir(“C:\NewFolder”) = Path
Path = ChDir(“C:\MyFolder”)


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


ChDrive
Changes the current drive.
Syntax
ChDrive drive
The required drive argument is a string expression that specifies an existing drive. If you supply a zero-length
string (""), the current drive doesn't change. If the drive argument is a multiple-character string, ChDrive uses
only the first letter.
Example:
ChDrive "D" ' Make "D" the current drive.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


CurDir
Returns a Variant (String) representing the current path.
Syntax
CurDir[(drive)]
The optional drive argument is a string expression that specifies an existing drive. If no drive is specified or if
drive is a zero-length string (""), CurDir returns the path for the current drive. On the Macintosh, CurDir
ignores any drive specified and simply returns the path for the current drive.
Example:
' Assume current path on C drive is "C:\WINDOWS\SYSTEM" (on Microsoft Windows).
' Assume current path on D drive is "D:\EXCEL".
' Assume C is the current drive.
Dim MyPath
MyPath = CurDir ' Returns "C:\WINDOWS\SYSTEM".
MyPath = CurDir("C") ' Returns "C:\WINDOWS\SYSTEM".
MyPath = CurDir("D") ' Returns "D:\EXCEL".


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


MkDir
Creates a new directory or folder.
Syntax
MkDir path
The required path argument is a string expression that identifies the directory or folder to be created. The path
may include the drive. If no drive is specified, MkDir creates the new directory or folder on the current drive.
Example:
‘Creates a folder called ‘New Folder’
MkDir “C:\New Folder”


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


RmDir Function
Removes an existing directory or folder.
Syntax
RmDir path
The required path argument is a string expression that identifies the directory or folder to be removed. The path
may include the drive. If no drive is specified, RmDir removes the directory or folder on the current drive.
Remarks
An error occurs if you try to use RmDir on a directory or folder containing files. Use the Kill statement to
delete all files before attempting to remove a directory or folder.
Example:
RmDir "c:\windows\pictures"


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Kill Function
Deletes files from a disk.
Syntax
Kill pathname
The required pathname argument is a string expression that specifies one or more file names to be deleted. The
pathname may include the directory or folder, and the drive.
Example:
Kill "c:\Blah.txt”


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


FileDateTime
Returns a Variant (Date) that indicates the date and time when a file was created or last modified.
Syntax
FileDateTime(pathname)
The required pathname argument is a string expression that specifies a file name. The pathname may include
the directory or folder, and the drive.
Example:
Dim MyStamp
' Assume TESTFILE was last modified on September 2, 2005 at 4:00:00 PM.
MyStamp = FileDateTime "c:\Blah.txt” ' Returns "2/9/05 4:00:00 PM".


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


FileLen
Returns a Long specifying the length of a file in bytes.
Syntax
FileLen(pathname)
The required pathname argument is a string expression that specifies a file. The pathname may include the
directory or folder, and the drive.
Remarks
If the specified file is open when the FileLen function is called, the value returned represents the size of the file
immediately before it was opened.
Note To obtain the length of an open file, use the LOF function.
Example:
Dim Size
Size = FileLen("TESTFILE") ' Returns file length (bytes).


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


FileCopy
Copies a file.
Syntax
FileCopy source, destination
The FileCopy statement syntax has these named arguments:
Part Description
source Required. String expression that specifies the name of the file to be copied. The source
may include directory or folder, and drive.
destination Required. String expression that specifies the target file name. The destination may
include directory or folder, and drive.
Remarks
If you try to use the FileCopy statement on a currently open file, an error occurs.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Cut, Copy & Pasting Text
The Clipboard object represents the Windows clipboard which is available to all running applications, therefore
you can allow your users to place text or pictures on the Clipboard and paste them anywhere they like.
Setting up menu items for cut, copy, and pasting from and into one TextBox is fairly simple.
Example:
Private Sub mnuCopy_Click( )
Clipboard.Clear
Clipboard.SetText txtMain.SelText
End Sub
Private Sub mnuCut_Click( )
Clipboard.Clear
Clipboard.SetText txtMain.SelText
txtMain.SelText = ""
End Sub
Private Sub mnuPaste_Click( )
txtMain.SelText = Clipboard.GetText
End Sub


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


GetAttr
Returns an Integer representing the attributes of a file, directory, or folder.
Syntax
GetAttr(pathname)
The required pathname argument is a string expression that specifies a file name. The pathname may include
the directory or folder, and the drive.
Return Values
The value returned by GetAttr is the sum of the following attribute values:
Constant Value Description
vbNormal 0 Normal.
vbReadOnly 1 Read-only.
vbHidden 2 Hidden.
vbSystem 4 System file. Not available on the Macintosh.
vbDirectory 16 Directory or folder.
vbArchive 32 File has changed since last backup. Not available on the Macintosh.
vbAlias 64 Specified file name is an alias. Available only on the Macintosh.
Note These constants are specified by Visual Basic for Applications. The names can be used anywhere in your
code in place of the actual values.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


SetAttr
Sets attribute information for a file.
Syntax
SetAttr pathname, attributes
The SetAttr statement syntax has these named arguments:
Part Description
pathname Required. String expression that specifies a file name — may include directory or
folder, and drive.
attributes Required. Constant or numeric expression, whose sum specifies file attributes.
Settings
The attributes argument settings are:
Constant Value Description
vbNormal 0 Normal (default).
vbReadOnly 1 Read-only.
vbHidden 2 Hidden.
vbSystem 4 System file. Not available on the
Macintosh.
vbArchive 32 File has changed since last backup.
vbAlias 64 Specified file name is an alias.
Available only on the Macintosh.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


FreeFile function
Returns an Integer representing the next file number available for use by the Open statement.
Syntax
FreeFile[(rangenumber)]
The optional rangenumber argument is a Variant that specifies the range from which the next free file number is
to be returned. Specify a 0 (default) to return a file number in the range 1 – 255, inclusive. Specify a 1 to return
a file number in the range 256 – 511.
Remarks
Use FreeFile to supply a file number that is not already in use.
Example:
Dim MyIndex, FileNumber
For MyIndex = 1 To 5 ' Loop 5 times.
FileNumber = FreeFile ' Get unused file
' number.
Open "TEST" & MyIndex For Output As #FileNumber ' Create file name.
Write #FileNumber, "This is a sample." ' Output text.
Close #FileNumber ' Close file.
Next MyIndex


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Open Function
Enables input/output (I/O) to a file.
Syntax
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
The Open statement syntax has these parts:
Part Description
pathname Required. String expression that specifies a file name — may include directory or folder,
and drive.
mode Required. Keyword specifying the file mode: Append, Binary, Input, Output, or
Random. If unspecified, the file is opened for Random access.
access Optional. Keyword specifying the operations permitted on the open file: Read, Write, or
Read Write.
lock Optional. Keyword specifying the operations restricted on the open file by other processes:
Shared, Lock Read, Lock Write, and Lock Read Write.
filenumber Required. A valid file number in the range 1 to 511, inclusive. Use the FreeFile function to
obtain the next available file number.
reclength Optional. Number less than or equal to 32,767 (bytes). For files opened for random access,
this value is the record length. For sequential files, this value is the number of characters
buffered.
Remarks
Output: use the print statement to print something in a file.
Input: use this to open and read a file.
Append: use this to write something into the file but keep what is already in the file.
Binary: use this for binary access files
Random: use this for random access files
You must open a file before any I/O operation can be performed on it. Open allocates a buffer for I/O to the file
and determines the mode of access to use with the buffer.
If the file specified by pathname doesn't exist, it is created when a file is opened for Append, Binary, Output,
or Random modes.
If the file is already opened by another process and the specified type of access is not allowed, the Open
operation fails and an error occurs.
The Len clause is ignored if mode is Binary.
Important In Binary, Input, and Random modes, you can open a file using a different file number without
first closing the file. In Append and Output modes, you must close a file before opening it with a different file
number.
Example:
Open “a:\gordon.txt” For Output As #1
Print #1, Text1.Text ‘prints Text1 into the file
Close #1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Close Statement
Concludes input/output (I/O) to a file opened using the Open statement.
Syntax
Close [filenumberlist]
The optional filenumberlist argument can be one or more file numbers using the following syntax, where
filenumber is any valid file number:
[[#]filenumber] [, [#]filenumber] . . .
Remarks
If you omit filenumberlist, all active files opened by the Open statement are closed.
When you close files that were opened for Output or Append, the final buffer of output is written to the
operating system buffer for that file. All buffer space associated with the closed file is released.
When the Close statement is executed, the association of a file with its file number ends.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Line Input
Reads a single line from an open sequential file and assigns it to a String variable.
Syntax
Line Input #filenumber, varname
The Line Input # statement syntax has these parts:
Part Description
filenumber Required. Any valid file number.
varname Required. Valid Variant or String variable name.
Remarks
Data read with Line Input # is usually written from a file with Print #.
Example:
Open “a:\gordon.txt” For Input As #1
Line Input #1, TextLine ' Read line into variable.
Close #1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


EOF Function
Returns an Integer containing the Boolean value True when the end of a file opened for Random or sequential
Input has been reached.
Syntax
EOF(filenumber)
The required filenumber argument is an Integer containing any valid file number.
Remarks
Use EOF to avoid the error generated by attempting to get input past the end of a file.
The EOF function returns False until the end of the file has been reached. With files opened for Random or
Binary access, EOF returns False until the last executed Get statement is unable to read an entire record.
With files opened for Binary access, an attempt to read through the file using the Input function until EOF
returns True generates an error. Use the LOF and Loc functions instead of EOF when reading binary files with
Input, or use Get when using the EOF function. With files opened for Output, EOF always returns True.
Example:
dim templine as string
Open “a:\ratbag.txt” For Input As 1
Do Until EOF(1)
Line Input #1, templine
Text1.Text = text1.text + templine
Loop
Close #1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Lof Function
Returns a Long representing the size, in bytes, of a file opened using the Open statement.
Syntax
LOF(filenumber)
The required filenumber argument is an Integer containing a valid file number.
Note Use the FileLen function to obtain the length of a file that is not open.
Example:
Dim FileLength
Open "TESTFILE" For Input As #1 ' Open file.
FileLength = LOF(1) ' Get length of file.
Close #1 ' Close file.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Print Function
Writes display-formatted data to a sequential file.
Syntax
Print #filenumber, [outputlist]
The Print # statement syntax has these parts:
Part Description
filenumber Required. Any valid file number.
outputlist Optional. Expression or list of expressions to print.
Remarks
Data written with Print # is usually read from a file with Line Input # or Input.
Example:
Open App.Path & "\myFile.txt" For Output As #1
Print #1, "Blah, Blah" + Text1.Text
Close #1

Error Handling


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


On Error Statement
Enables an error-handling routine and specifies the location of the routine within a procedure; can also be used
to disable an error-handling routine.
Syntax
On Error GoTo line
On Error Resume Next
On Error GoTo 0
The On Error statement syntax can have any of the following forms:
Statement Description
On Error GoTo line Enables the error-handling routine that starts at line specified in the required
line argument. The line argument is any line label or line number. If a runtime error occurs, control branches to line, making the error handler active.
The specified line must be in the same procedure as the On Error statement;
otherwise, a compile-time error occurs.
On Error Resume Next Specifies that when a run-time error occurs, control goes to the statement
immediately following the statement where the error occurred where
execution continues. Use this form rather than On Error GoTo when
accessing objects.
On Error GoTo 0 Disables any enabled error handler in the current procedure.
Remarks
If you don't use an On Error statement, any run-time error that occurs is fatal; that is, an error message is
displayed and execution stops.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Resume, Resume Next, Resume Line ()
Resumes execution after an error-handling routine is finished.
Syntax
Resume [0]
Resume Next
Resume line
The Resume statement syntax can have any of the following forms:
Statement Description
Resume If the error occurred in the same procedure as the error handler, execution resumes
with the statement that caused the error. If the error occurred in a called procedure,
execution resumes at the statement that last called out of the procedure containing the
error-handling routine.
Resume Next If the error occurred in the same procedure as the error handler, execution resumes
with the statement immediately following the statement that caused the error. If the
error occurred in a called procedure, execution resumes with the statement
immediately following the statement that last called out of the procedure containing
the error-handling routine (or On Error Resume Next statement).
Resume line Execution resumes at line specified in the required line argument. The line argument
is a line label or line number and must be in the same procedure as the error handler.
Remarks
If you use a Resume statement anywhere except in an error-handling routine, an error occurs.
Example:
Private Sub

On Error GoTo Error
End Sub
Error:

Resume


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Error Function
Simulates the occurrence of an error.
Syntax
Error errornumber
The required errornumber can be any valid error number.
Remarks
The Error statement is supported for backward compatibility. In new code, especially when creating objects,
use the Err object's Raise method to generate run-time errors.
If errornumber is defined, the Error statement calls the error handler after the properties of Err object are
assigned the following default values:
Property Value
Number Value specified as argument to Error statement. Can be any valid error number.
Source Name of the current Visual Basic project.
Description String expression corresponding to the return value of the Error function for the
specified Number, if this string exists. If the string doesn't exist, Description contains
a zero-length string ("").
HelpFile The fully qualified drive, path, and file name of the appropriate Visual Basic Help file.
HelpContext The appropriate Visual Basic Help file context ID for the error corresponding to the
Number property.
LastDLLError Zero.
Example:
On Error Resume Next ' Defer error handling.
Error 11 ' Simulate the "Division by zero" error.

Declarations


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Function Procedures
Declares the name, arguments, and code that form the body of a Function procedure.
Syntax
[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
The Function statement syntax has these parts:
Part Description
Public Optional. Indicates that the Function procedure is accessible to all other procedures in all
modules. If used in a module that contains an Option Private, the procedure is not
available outside the project.
Private Optional. Indicates that the Function procedure is accessible only to other procedures in
the module where it is declared.
Friend Optional. Used only in a class module. Indicates that the Function procedure is visible
throughout the project, but not visible to a controller of an instance of an object.
Static Optional. Indicates that the Function procedure's local variables are preserved between
calls. The Static attribute doesn't affect variables that are declared outside the Function,
even if they are used in the procedure.
name Required. Name of the Function; follows standard variable naming conventions.
arglist Optional. List of variables representing arguments that are passed to the Function
procedure when it is called. Multiple variables are separated by commas.
type Optional. Data type of the value returned by the Function procedure; may be Byte,
Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported),
Date, String, or (except fixed length), Object, Variant, or any user-defined type.
statements Optional. Any group of statements to be executed within the Function procedure.
expression Optional. Return value of the Function.
The arglist argument has the following syntax and parts:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]
Part Description
Optional Optional. Indicates that an argument is not required. If used, all subsequent arguments in
arglist must also be optional and declared using the Optional keyword. Optional can't be
used for any argument if ParamArray is used.
ByVal Optional. Indicates that the argument is passed by value.
ByRef Optional. Indicates that the argument is passed by reference. ByRef is the default in
Visual Basic.
ParamArray Optional. Used only as the last argument in arglist to indicate that the final argument is
an Optional array of Variant elements. The ParamArray keyword allows you to
provide an arbitrary number of arguments. It may not be used with ByVal, ByRef, or
Optional.
varname Required. Name of the variable representing the argument; follows standard variable
naming conventions.
type Optional. Data type of the argument passed to the procedure; may be Byte, Boolean,
Integer, Long, Currency, Single, Double, Decimal (not currently supported) Date,
String (variable length only), Object, Variant, or a specific object type. If the parameter
is not Optional, a user-defined type may also be specified.
defaultvalue Optional. Any constant or constant expression. Valid for Optional parameters only. If the
type is an Object, an explicit default value can only be Nothing.
Remarks
If not explicitly specified using Public, Private, or Friend, Function procedures are public by default. If Static
isn't used, the value of local variables is not preserved between calls. The Friend keyword can only be used in
class modules. However, Friend procedures can be accessed by procedures in any module of a project. A
Friend procedure does't appear in the type library of its parent class, nor can a Friend procedure be late bound.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:

Const
Declares constants for use in place of literal values.
Syntax
[Public | Private] Const constname [As type] = expression
The Const statement syntax has these parts:
Part Description
Public Optional. Keyword used at module level to declare constants that are available to all
procedures in all modules. Not allowed in procedures.
Private Optional. Keyword used at module level to declare constants that are available only within
the module where the declaration is made. Not allowed in procedures.
constname Required. Name of the constant; follows standard variable naming conventions.
type Optional. Data type of the constant; may be Byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (not currently supported), Date, String, or Variant. Use a separate
As type clause for each constant being declared.
expression Required. Literal, other constant, or any combination that includes all arithmetic or logical
operators except Is.
Remarks
Constants are private by default. Within procedures, constants are always private; their visibility can't be
changed. In standard modules, the default visibility of module-level constants can be changed using the Public
keyword. In class modules, however, constants can only be private and their visibility can't be changed using
the Public keyword.
Example:
' Constants are Private by default.
Const MyVar = 459
' Declare Public constant.
Public Const MyString = "HELP"
' Declare Private Integer constant.
Private Const MyInt As Integer = 5
' Declare multiple constants on same line.
Const MyStr = "Hello", MyDouble As Double = 3.4567


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Call Statement
Transfers control to a Sub procedure, Function procedure, or dynamic-link library (DLL) procedure.
Syntax
[Call] name [argumentlist]
The Call statement syntax has these parts:
Part Description
Call Optional; keyword. If specified, you must enclose argumentlist in parentheses. For
example:
Call MyProc(0)
name Required. Name of the procedure to call.
argumentlist Optional. Comma-delimited list of variables, arrays, or expressions to pass to the
procedure. Components of argumentlist may include the keywords ByVal or ByRef to
describe how the arguments are treated by the called procedure. However, ByVal and
ByRef can be used with Call only when calling a DLL procedure. On the Macintosh,
ByVal and ByRef can be used with Call when making a call to a Macintosh code
resource.
Remarks
You are not required to use the Call keyword when calling a procedure. However, if you use the Call keyword
to call a procedure that requires arguments, argumentlist must be enclosed in parentheses.
Example:
Call an intrinsic function. The return value of the function is
' discarded.
Call Shell(AppName, 1) ' AppName contains the path of the
' executable file.
CallByName
Executes a method of an object, or sets or returns a property of an object.
Syntax
CallByName(object, procname, calltype,[args()])
The CallByName function syntax has these named arguments:
Part Description
object Required; Variant (Object). The name of the object on which the function will be
executed.
procname Required; Variant (String). A string expression containing the name of a property or
method of the object.
calltype Required; Constant. A constant of type vbCallType representing the type of
procedure being called.
args() Optional: Variant (Array).
Remarks
The CallByName function is used to get or set a property, or invoke a method at run time using a string name.
Example:


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Option Explicit
Used at module level to force explicit declaration of all variables in that module.
Syntax


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Option Explicit
Remarks
If used, the Option Explicit statement must appear in a module before any procedures.
When Option Explicit appears in a module, you must explicitly declare all variables using the Dim, Private,
Public, ReDim, or Static statements. If you attempt to use an undeclared variable name, an error occurs at
compile time.
If you don't use the Option Explicit statement, all undeclared variables are of Variant type unless the default
type is otherwise specified with a Deftype statement.
Example:
Option explicit ' Force explicit variable declaration.
Dim MyVar ' Declare variable.
MyInt = 10 ' Undeclared variable generates error.
MyVar = 10 ' Declared variable does not generate error.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Option Private
When used in host applications that allow references across multiple projects, Option Private Module prevents
a module’s contents from being referenced outside its project. In host applications that don’t permit such
references, for example, standalone versions of Visual Basic, Option Private has no effect.
Syntax
Option Private Module
Remarks
If used, the Option Private statement must appear at module level, before any procedures.
When a module contains Option Private Module, the public parts, for example, variables, objects, and userdefined types declared at module level, are still available within the project containing the module, but they are
not available to other applications or projects.
Example:
Option private Module ' Indicates that module is private.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Option Compare
Used at module level to declare the default comparison method to use when string data is compared.
Syntax
Option Compare {Binary | Text | Database}
Remarks
If used, the Option Compare statement must appear in a module before any procedures.
The Option Compare statement specifies the string comparison method (Binary, Text, or Database) for a
module. If a module doesn't include an Option Compare statement, the default text comparison method is
Binary.
Option Compare Binary results in string comparisons based on a sort order derived from the internal binary
representations of the characters. In Microsoft Windows, sort order is determined by the code page. A typical
binary sort order is shown in the following example:
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
Option Compare Text results in string comparisons based on a case-insensitive text sort order determined by
your system's locale. When the same characters are sorted using Option Compare Text, the following text sort
order is produced:
(A=a) < ( À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
Example:
Set the string comparison method to Binary.
Aaron Wirth
35
Option compare Binary ' That is, "AAA" is less than "aaa".
' Set the string comparison method to Text.
Option compare Text ' That is, "AAA" is equal to "aaa".


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Type…End Type
Used at module level to define a user-defined data thype containing one or more elements.
Syntax
[Private | Public] Type varname
elementname [([subscripts])] As type
[elementname [([subscripts])] As type]
. . .
End Type
The Type statement syntax has these parts:
Part Description
Public Optional. Used to declare user-defined htypes that are available to all procedures in all
modules in all projects.
Private Optional. Used to declare user-defined types that are available only within the module
where the declaration is made.
varname Required. Name of the user-defined type; follows standard variable naming
conventions.
elementname Required. Name of an element of the user-defined type. Element names also follow
standard variable naming conventions, except that keywords can be used.
subscripts When not explicitly stated in lower, the lower bound of an array is controlled by the
Option Base statement. The lower bound is zero if no Option Base statement is
present.
type Required. Data type of the element; may be Byte, Boolean, Integer, Long, Currency,
Single, Double, Decimal (not currently supported), Date, String (for variable-length
strings), String * length (for fixed-length strings), Object, Variant, another userdefined type, or an object type.
Remarks
The Type statement can be used only at module level. Once you have declared a user-defined type using the
Type statement, you can declare a variable of that type anywhere within the scope of the declaration. Use Dim,
Private, Public, ReDim, or Static to declare a variable of a user-defined type.
Example:
Type StateData
CityCode (1 To 100) As Integer ' Declare a static array.
County As String * 30
End Type
Dim Washington(1 To 100) As StateData


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


GetObject
Returns a reference to an object provided by an ActiveX component.
Syntax
GetObject([pathname] [, class])
The GetObject function syntax has these named arguments:
Part Description
pathname Optional; Variant (String). The full path and name of the file containing the object to
retrieve. If pathname is omitted, class is required.
class Optional; Variant (String). A string representing the class of the object.
The class argument uses the syntax appname.objecttype and has these parts:
Part Description
appname Required; Variant (String). The name of the application providing the object.
objecttype Required; Variant (String). The type or class of object to create.
Remarks
Use the GetObject function to access an ActiveX object from a file and assign the object to an object variable.
Use the Set statement to assign the object returned by GetObject to the object variable.
Example:
Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


CreateObject
Creates and returns a reference to an ActiveX object.
Syntax
CreateObject(class,[servername])
The CreateObject function syntax has these parts:
Part Description
class Required; Variant (String). The application name and class of the object to create.
servername Optional; Variant (String). The name of the network server where the object will be
created. If servername is an empty string (""), the local machine is used.
The class argument uses the syntax appname.objecttype and has these parts:
Part Description
appname Required; Variant (String). The name of the application providing the object.
objecttype Required; Variant (String). The type or class of object to create.
Remarks
Every application that supports Automation provides at least one type of object. For example, a word processing
application may provide an Application object, a Document object, and a Toolbar object.
Example:
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Let Statement
Assigns the value of an expression to a variable or property.
Syntax
[Let] varname = expression
The Let statement syntax has these parts:
Part Description

Let Optional. Explicit use of the Let keyword is a matter of style, but it is usually omitted.
varname Required. Name of the variable or property; follows standard variable naming conventions.
expression Required. Value assigned to the variable or property.
Remarks
A value expression can be assigned to a variable or property only if it is of a data type that is compatible with
the variable. You can't assign string expressions to numeric variables, and you can't assign numeric expressions
to string variables. If you do, an error occurs at compile time.
Variant variables can be assigned either string or numeric expressions. However, the reverse is not always true.
Any Variant except a Null can be assigned to a string variable, but only a Variant whose value can be
interpreted as a number can be assigned to a numeric variable. Use the IsNumeric function to determine if the
Variant can be converted to a number.
Example:
Dim MyStr, MyInt
' The following variable assignments use the Let statement.
Let MyStr = "Hello World"
Let MyInt = 5


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


TypeName
Returns a String that provides information about a variable.
Syntax
TypeName(varname)
The required varname argument is a Variant containing any variable except a variable of a user-defined type.
Remarks
The string returned by TypeName can be any one of the following:
String returned Variable
object thype An object whose type is objecttype
Byte Byte value
Integer Integer
Long Long integer
Single Single-precision floating-point number
Double Double-precision floating-point number
Currency Currency value
Decimal Decimal value
Date Date value
String String
Boolean Boolean value
Error An error value
Empty Uninitialized
Null No valid data
Object An object
Unknown An object whose type is unknown
Nothing Object variable that doesn't refer to an object
If varname is an array, the returned string can be any one of the possible returned strings (or Variant) with
empty parentheses appended. For example, if varname is an array of integers, TypeName returns
"Integer()".
Example:
Dim MyType
MyType = TypeName(StrVar) ' Returns "String".
MyType = TypeName(IntVar) ' Returns "Integer".
MyType = TypeName(CurVar) ' Returns "Currency".
MyType = TypeName(NullVar) ' Returns "Null".
MyType = TypeName(ArrayVar) ' Returns "Integer()".


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


VarType
Returns an Integer indicating the subtype of a variable.
Syntax
VarType(varname)
The required varname argument is a Variant containing any variable except a variable of a user-defined type.
Return Values
Constant Value Description
vbEmpty 0 Empty (uninitialized)
vbNull 1 Null (no valid data)
vbInteger 2 Integer
vbLong 3 Long integer
vbSingle 4 Single-precision floating-point number
vbDouble 5 Double-precision floating-point number
vbCurrency 6 Currency value
vbDate 7 Date value
vbString 8 String
vbObject 9 Object
vbError 10 Error value
vbBoolean 11 Boolean value
vbVariant 12 Variant (used only with arrays of variants)
vbDataObject 13 A data access object
vbDecimal 14 Decimal value
vbByte 17 Byte value
vbUserDefinedType 36 Variants that contain user-defined types
vbArray 8192 Array
Note These constants are specified by Visual Basic for Applications. The names can be used anywhere in your
code in place of the actual values.
Remarks
The VarType function never returns the value for vbArray by itself. It is always added to some other value to
indicate an array of a particular type. The constant vbVariant is only returned in conjunction with vbArray to
indicate that the argument to the VarType function is an array of type Variant. For example, the value returned
for an array of integers is calculated as vbInteger + vbArray, or 8194. If an object has a default property,
VarType (object) returns the type of the object's default property.
Example:
Dim IntVar, StrVar, DateVar, MyCheck
' Initialize variables.
IntVar = 459: StrVar = "Hello World": DateVar = #2/12/69#
MyCheck = VarType(IntVar) ' Returns 2.
MyCheck = VarType(DateVar) ' Returns 7.
MyCheck = VarType(StrVar) ' Returns 8.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


DefType
Used at module level to set the default data type for variables, arguments passed to procedures, and the return
type for Function and Property Get procedures whose names start with the specified characters.
Syntax
DefBool letterrange[, letterrange] . . .
DefByte letterrange[, letterrange] . . .
DefInt letterrange[, letterrange] . . .
DefLng letterrange[, letterrange] . . .
DefCur letterrange[, letterrange] . . .
DefSng letterrange[, letterrange] . . .
DefDbl letterrange[, letterrange] . . .
DefDec letterrange[, letterrange] . . .
DefDate letterrange[, letterrange] . . .
DefStr letterrange[, letterrange] . . .
DefObj letterrange[, letterrange] . . .
DefVar letterrange[, letterrange] . . .
The required letterrange argument has the following syntax:
letter1[-letter2]
The letter1 and letter2 arguments specify the name range for which you can set a default data type. Each
argument represents the first letter of the variable, argument, Function procedure, or Property Get procedure
name and can be any letter of the alphabet. The case of letters in letterrange isn't significant.
Remarks
The statement name determines the data type:
Statement Data Type
DefBool Boolean
DefByte Byte
DefInt Integer
DefLng Long
DefCur Currency
DefSng Single
DefDbl Double
DefDec Decimal (not currently supported)
DefDate Date
DefStr String
DefObj Object
DefVar Variant
A Deftype statement affects only the module where it is used. For example, a DefInt statement in one module
affects only the default data type of variables, arguments passed to procedures, and the return type for Function
and Property Get procedures declared in that module; the default data type of variables, arguments, and return
types in other modules is unaffected. If not explicitly declared with a Deftype statement, the default data type
for all variables, all arguments, all Function procedures, and all Property Get procedures is Variant.

Date/Time


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Date
Returns a Variant (Date) containing the current system date.
Syntax
Date
Remarks
To set the system date, use the Date statement.
Date, and if the calendar is Gregorian, Date$ behavior is unchanged by the Calendar property setting. If the
calendar is Hijri, Date$ returns a 10-character string of the form mm-dd-yyyy, where mm (01-12), dd (01-30)
and yyyy (1400-1523) are the Hijri month, day and year. The equivalent Gregorian range is Jan 1, 1980 through
Dec 31, 2099.
Example:
Dim s as Date
S = Date
Label1 = s


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Time
Sets the system time.
Syntax
Time = time
The required time argument is any numeric expression, string expression, or any combination, that can represent
a time.
Remarks
If time is a string, Time attempts to convert it to a time using the time separators you specified for your system.
If it can't be converted to a valid time, an error occurs.
Example:
Private Sub Form_Load()
Dim s As Date
s = Time
Label1 = s
End Sub
‘Displays the Time in label1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Now
Returns a Variant (Date) specifying the current date and time according your computer's system date and time.
Syntax
Now
Example:
Private Sub Form_Load()
Dim s As Date
s = Now
Label1 = s
End Sub
‘Displays the date and time in label1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Timer
Timers execute code repeatedly according to the Interval you specify. Set the Interval property in milliseconds.
For example, 2000 = 2 seconds. Timers are useful for checking programs conditions periodically, but don't get
in the habit of using them for everything. A Timer control is not a clock and should not be relied upon to keep
accurate time.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


DateAdd
Returns a Variant (Date) containing a date to which a specified time interval has been added.
Syntax
DateAdd(interval, number, date)
The DateAdd function syntax has these named arguments:
Part Description
interval Required. String expression that is the interval of time you want to add.
number Required. Numeric expression that is the number of intervals you want to add. It can be
positive (to get dates in the future) or negative (to get dates in the past).
date Required. Variant (Date) or literal representing date to which the interval is added.
Settings
The interval argument has these settings:
Setting Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week
h Hour
n Minute
s Second
Remarks
You can use the DateAdd function to add or subtract a specified time interval from a date. For example, you
can use DateAdd to calculate a date 30 days from today or a time 45 minutes from now.
To add days to date, you can use Day of Year ("y"), Day ("d"), or Weekday ("w").
Example:
DateAdd("m", 1, "31-Jan-95")
In this case, DateAdd returns 28-Feb-95, not 31-Feb-95. If date is 31-Jan-96, it returns 29-Feb-96 because 1996
is a leap year.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


DateDiff
Returns a Variant (Long) specifying the number of time intervals between two specified dates.
Syntax
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
The DateDiff function syntax has these named arguments:
Part Description
interval Required. String expression that is the interval of time you use to calculate
the difference between date1 and date2.
date1, date2 Required; Variant (Date). Two dates you want to use in the calculation.
firstdayofweek Optional. A constant that specifies the first day of the week. If not specified,
Sunday is assumed.
firstweekofyear Optional. A constant that specifies the first week of the year. If not specified,
the first week is assumed to be the week in which January 1 occurs.
Settings
The interval argument has these settings:
Setting Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week
h Hour
n Minute
s Second
The firstdayofweek argument has these settings:
Constant Value Description
vbUseSystem 0 Use the NLS API setting.
vbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
Constant Value Description
vbUseSystem 0 Use the NLS API setting.
vbFirstJan1 1 Start with week in which January 1
occurs (default).
vbFirstFourDays 2 Start with the first week that has at
least four days in the new year.
vbFirstFullWeek 3 Start with first full week of the year.
Remarks
You can use the DateDiff function to determine how many specified time intervals exist between two dates. For
example, you might use DateDiff to calculate the number of days between two dates, or the number of weeks
between today and the end of the year.
Example:
Dim TheDate As Date ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
‘Displays difference between dates in number of days


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


DateSerial
Returns a Variant (Date) for a specified year, month, and day.
Syntax
DateSerial(year, month, day)
The DateSerial function syntax has these named arguments:
Part Description
year Required; Integer. Number between 100 and 9999, inclusive, or a numeric
expression.
month Required; Integer. Any numeric expression.
day Required; Integer. Any numeric expression.
Remarks
To specify a date, such as December 31, 1991, the range of numbers for each DateSerial argument should be in
the accepted range for the unit; that is, 1–31 for days and 1–12 for months. However, you can also specify
relative dates for each argument using any numeric expression that represents some number of days, months, or
years before or after a certain date.
Example:
Dim MyDate
' MyDate contains the date for February 12, 1969.
MyDate = DateSerial(1969, 2, 12) ' Return a date.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


DateValue
Returns a Variant (Date).
Syntax
DateValue(date)
The required date argument is normally a string expression representing a date from January 1, 100 through
December 31, 9999. However, date can also be any expression that can represent a date, a time, or both a date
and time, in that range.
Remarks
If date is a string that includes only numbers separated by valid date separators, DateValue recognizes the order
for month, day, and year according to the Short Date format you specified for your system. DateValue also
recognizes unambiguous dates that contain month names, either in long or abbreviated form. For example, in
addition to recognizing 12/30/1991 and 12/30/91, DateValue also recognizes December 30, 1991 and Dec 30,
1991.
Example:
Dim MyDate
MyDate = DateValue("February 12, 1969") ' Returns 12/02/1965


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Year
Returns a Variant (Integer) containing a whole number representing the year.
Syntax
Year(date)
The required date argument is any Variant, numeric expression, string expression, or any combination, that can
represent a date. If date contains Null, Null is returned.
Example:
Dim MyDate, MyYear
MyDate = #February 12, 1969# ' Assign a date.
MyYear = Year(MyDate) ' MyYear contains 1969.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Month
Returns a Variant (Integer) specifying a whole number between 1 and 12, inclusive, representing the month of
the year.
Syntax
Month(date)
The required date argument is any Variant, numeric expression, string expression, or any combination, that can
represent a date. If date contains Null, Null is returned.
Example:
Dim MyDate, MyMonth
MyDate = #February 12, 1969# ' Assign a date.
MyMonth = Month(MyDate) ' MyMonth contains 2.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


MonthName
Returns a string indicating the specified month.
Syntax
MonthName(month[, abbreviate])
The MonthName function syntax has these parts:
Part Description
month Required. The numeric designation of the month. For example, January is 1, February
is 2, and so on.
abbreviate Optional. Boolean value that indicates if the month name is to be abbreviated. If
omitted, the default is False, which means that the month name is not abbreviated.
Example:
Private Sub Form_Load()
Label1 = MonthName(11)
End Sub
‘Returns November


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


WeekDayName
Returns a string indicating the specified day of the week.
Syntax
WeekdayName(weekday, abbreviate, firstdayofweek)
The WeekdayName function syntax has these parts:
Part Description
weekday Required. The numeric designation for the day of the week. Numeric value of each
day depends on setting of the firstdayofweek setting.
abbreviate Optional. Boolean value that indicates if the weekday name is to be abbreviated. If
omitted, the default is False, which means that the weekday name is not
abbreviated.
firstdayofweek Optional. Numeric value indicating the first day of the week. See Settings section
for values.
Settings
The firstdayofweek argument can have the following values:
Constant Value Description
vbUseSystem 0 Use National Language Support (NLS) API setting.
vbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
Example:
Label1 = WeekdayName(3)
‘Returns Wednesday


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Day
Returns a Variant (Integer) specifying a whole number between 1 and 31, inclusive, representing the day of the
month.
Syntax
Day(date)
The required date argument is any Variant, numeric expression, string expression, or any combination, that can
represent a date. If date contains Null, Null is returned.
Example:
Dim MyDate, MyDay
MyDate = #February 12, 1969# ' Assign a date.
MyDay = Day(MyDate) ' MyDay contains 12.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Hour
Returns a Variant (Integer) specifying a whole number between 0 and 23, inclusive, representing the hour of
the day.
Syntax
Hour(time)
The required time argument is any Variant, numeric expression, string expression, or any combination, that can
represent a time. If time contains Null, Null is returned.
Example:
Dim MyTime, MyHour
MyTime = #4:35:17 PM# ' Assign a time.
MyHour = Hour(MyTime) ' MyHour contains 16.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Minute
Returns a Variant (Integer) specifying a whole number between 0 and 59, inclusive, representing the minute of
the hour.
Syntax
Minute(time)
The required time argument is any Variant, numeric expression, string expression, or any combination, that can
represent a time. If time contains Null, Null is returned.
Example:
Dim MyTime, MyMinute
MyTime = #4:35:17 PM# ' Assign a time.
MyMinute = Minute(MyTime) ' MyMinute contains 35.
Second
Returns a Variant (Integer) specifying a whole number between 0 and 59, inclusive, representing the second of
the minute.
Syntax
Second(time)
The required time argument is any Variant, numeric expression, string expression, or any combination, that can
represent a time. If time contains Null, Null is returned.
Example:
Dim MyTime, MySecond
MyTime = #4:35:17 PM# ' Assign a time.
MySecond = Second(MyTime) ' MySecond contains 17.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


TimeSerial
Returns a Variant (Date) containing the time for a specific hour, minute, and second.
Syntax
TimeSerial(hour, minute, second)
The TimeSerial function syntax has these named arguments:
Part Description
hour Required; Variant (Integer). Number between 0 (12:00 A.M.) and 23 (11:00
P.M.), inclusive, or a numeric expression.
minute Required; Variant (Integer). Any numeric expression.
second Required; Variant (Integer). Any numeric expression.
Remarks
To specify a time, such as 11:59:59, the range of numbers for each TimeSerial argument should be in the
normal range for the unit; that is, 0–23 for hours and 0–59 for minutes and seconds. However, you can also
specify relative times for each argument using any numeric expression that represents some number of hours,
minutes, or seconds before or after a certain time. The following example uses expressions instead of absolute
time numbers.
Example:
Dim MyTime
MyTime = TimeSerial(16, 35, 17) ' MyTime contains serial
' representation of 4:35:17 PM.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


TimeValue
Returns a Variant (Date) containing the time.
Syntax
TimeValue(time)
The required time argument is normally a string expression representing a time from 0:00:00 (12:00:00 A.M.) to
23:59:59 (11:59:59 P.M.), inclusive. However, time can also be any expression that represents a time in that
range. If time contains Null, Null is returned.
Example:
Dim MyTime
MyTime = TimeValue("4:35:17 PM") ' Returns 4:35:17 PM


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


WeekDay
Returns a Variant (Integer) containing a whole number representing the day of the week.
Syntax
Weekday(date, [firstdayofweek])
The Weekday function syntax has these named arguments:
Part Description
date Required. Variant, numeric expression, string expression, or any combination, that
can represent a date. If date contains Null, Null is returned.
firstdayofweek Optional. A constant that specifies the first day of the week. If not specified,
vbSunday is assumed.
Settings
The firstdayofweek argument has these settings:
Constant Value Description
vbUseSystem 0 Use the NLS API setting.
vbSunday 1 Sunday (default)
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
Return Values
The Weekday function can return any of these values:
Constant Value Description
vbSunday 1 Sunday
Aaron Wirth
49
vbMonday 2 Monday
vbTuesday 3 Tuesday
vbWednesday 4 Wednesday
vbThursday 5 Thursday
vbFriday 6 Friday
vbSaturday 7 Saturday
Example:
Dim MyDate, MyWeekDay
MyDate = #February 12, 1969# ' Assign a date.
MyWeekDay = Weekday(MyDate) ' MyWeekDay contains 4 because
' MyDate represents a Wednesday.

Miscellaneous

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


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


MsgBox
Displays a message in a dialog box, waits for the user to click a button, and returns an Integer indicating which
button the user clicked.
Syntax
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
The MsgBox function syntax has these named arguments:
Part Description
prompt Required. String expression displayed as the message in the dialog box. The maximum length
of prompt is approximately 1024 characters, depending on the width of the characters used. If
prompt consists of more than one line, you can separate the lines using a carriage return
character (Chr(13)), a linefeed character (Chr(10)), or carriage return – linefeed character
combination (Chr(13) & Chr(10)) between each line.
buttons Optional. Numeric expression that is the sum of values specifying the number and type of
buttons to display, the icon style to use, the identity of the default button, and the modality of
the message box. If omitted, the default value for buttons is 0.
title Optional. String expression displayed in the title bar of the dialog box. If you omit title, the
application name is placed in the title bar.
helpfile Optional. String expression that identifies the Help file to use to provide context-sensitive
Help for the dialog box. If helpfile is provided, context must also be provided.
context Optional. Numeric expression that is the Help context number assigned to the appropriate
Help topic by the Help author. If context is provided, helpfile must also be provided.
Settings
The buttons argument settings are:
Constant Value Description
vbOKOnly 0 Display OK button only.
vbOKCancel 1 Display OK and Cancel buttons.
vbAbortRetryIgnore 2 Display Abort, Retry, and Ignore buttons.
vbYesNoCancel 3 Display Yes, No, and Cancel buttons.
vbYesNo 4 Display Yes and No buttons.
vbRetryCancel 5 Display Retry and Cancel buttons.
vbCritical 16 Display Critical Message icon.
vbQuestion 32 Display Warning Query icon.
vbExclamation 48 Display Warning Message icon.
vbInformation 64 Display Information Message icon.
vbDefaultButton1 0 First button is default.
vbDefaultButton2 256 Second button is default.
vbDefaultButton3 512 Third button is default.
vbDefaultButton4 768 Fourth button is default.
vbApplicationModal 0 Application modal; the user must respond to the
message box before continuing work in the current
application.
vbSystemModal 4096 System modal; all applications are suspended until the
user responds to the message box.
vbMsgBoxHelpButton 16384 Adds Help button to the message box
VbMsgBoxSetForeground 65536 Specifies the message box window as the foreground
window
vbMsgBoxRight 524288 Text is right aligned
vbMsgBoxRtlReading 1048576 Specifies text should appear as right-to-left reading on
Hebrew and Arabic systems


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Shell
Runs an executable program and returns a Variant (Double) representing the program's task ID if successful,
otherwise it returns zero.
Syntax
Shell(pathname[,windowstyle])
The Shell function syntax has these named arguments:
Part Description
pathname Required; Variant (String). Name of the program to execute and any required
arguments or command-line switches; may include directory or folder and drive.
windowstyle Optional. Variant (Integer) corresponding to the style of the window in which the
program is to be run. If windowstyle is omitted, the program is started minimized
with focus. On the Macintosh (System 7.0 or later), windowstyle only determines
whether or not the application gets the focus when it is run.
The windowstyle named argument has these values:
Constant Value Description
vbHide 0 Window is hidden and focus is passed to the hidden
window. The vbHide constant is not applicable on
Macintosh platforms.
vbNormalFocus 1 Window has focus and is restored to its original size and
position.
vbMinimizedFocus 2 Window is displayed as an icon with focus.
vbMaximizedFocus 3 Window is maximized with focus.
vbNormalNoFocus 4 Window is restored to its most recent size and position.
The currently active window remains active.
vbMinimizedNoFocus 6 Window is displayed as an icon. The currently active
window remains active.
Remarks
If the Shell function successfully executes the named file, it returns the task ID of the started program. The task
ID is a unique number that identifies the running program. If the Shell function can't start the named program,
an error occurs.
Example:
' Specifying 1 as the second argument opens the application in
' normal size and gives it the focus.
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


RGB
Returns a Long whole number representing an RGB color value.
Syntax
RGB(red, green, blue)
The RGB function syntax has these named arguments:
Part Description
red Required; Variant (Integer). Number in the range 0–255, inclusive, that
represents the red component of the color.
green Required; Variant (Integer). Number in the range 0–255, inclusive, that
represents the green component of the color.
blue Required; Variant (Integer). Number in the range 0–255, inclusive, that
represents the blue component of the color.
Remarks
Application methods and properties that accept a color specification expect that specification to be a number
representing an RGB color value. An RGB color value specifies the relative intensity of red, green, and blue to
cause a specific color to be displayed.
The value for any argument to RGB that exceeds 255 is assumed to be 255.
The following table lists some standard colors and the red, green, and blue values they include:
Color Red Value Green Value Blue Value
Black 0 0 0
Blue 0 0 255
Green 0 255 0
Cyan 0 255 255
Red 255 0 0
Magenta 255 0 255
Yellow 255 255 0
White 255 255 255
Example:
Dim RED, I, RGBValue, MyObject
Red = RGB(255, 0, 0) ' Return the value for Red.
I = 75 ' Initialize offset.
RGBValue = RGB(I, 64 + I, 128 + I) ' Same as RGB(75, 139, 203).
MyObject.Color = RGB(255, 0, 0) ' Set the Color property of
' MyObject to Red.


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


QBColor
Returns a Long representing the RGB color code corresponding to the specified color number.
Syntax
QBColor(color)
The required color argument is a whole number in the range 0–15.
Settings
The color argument has these settings:
Number Color Number Color
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Light Red
5 Magenta 13 Light Magenta
6 Yellow 14 Light Yellow
7 White 15 Bright White
Example:
Sub ChangeBackColor (ColorCode As Integer, MyForm As Form)
MyForm.BackColor = QBColor(ColorCode)
End Sub


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Beep
Sounds a tone through the computer's speaker.
Syntax
Beep
Remarks
The frequency and duration of the beep depend on your hardware and system software, and vary among
computers.
Example:
Dim I
For I = 1 To 3 ' Loop 3 times.
Beep ' Sound a tone.
Next I


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


InputBox
Displays a prompt in a dialog box, waits for the user to input text or click a button, and returns a String
containing the contents of the text box.
Syntax
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
The InputBox function syntax has these named arguments:
Part Description
prompt Required. String expression displayed as the message in the dialog box. The maximum
length of prompt is approximately 1024 characters, depending on the width of the
characters used. If prompt consists of more than one line, you can separate the lines using
a carriage return character (Chr(13)), a linefeed character (Chr(10)), or carriage return–
linefeed character combination (Chr(13) & Chr(10)) between each line.
title Optional. String expression displayed in the title bar of the dialog box. If you omit title,
the application name is placed in the title bar.
default Optional. String expression displayed in the text box as the default response if no other
input is provided. If you omit default, the text box is displayed empty.
xpos Optional. Numeric expression that specifies, in twips, the horizontal distance of the left
edge of the dialog box from the left edge of the screen. If xpos is omitted, the dialog box
is horizontally centered.
ypos Optional. Numeric expression that specifies, in twips, the vertical distance of the upper
edge of the dialog box from the top of the screen. If ypos is omitted, the dialog box is
vertically positioned approximately one-third of the way down the screen.
helpfile Optional. String expression that identifies the Help file to use to provide context-sensitive
Help for the dialog box. If helpfile is provided, context must also be provided.
context Optional. Numeric expression that is the Help context number assigned to the appropriate
Help topic by the Help author. If context is provided, helpfile must also be provided.
Example:
Dim Message, Title, Default, MyValue
Message = "Enter a value between 1 and 3" ' Set prompt.
Title = "InputBox Demo" ' Set title.
Default = "1" ' Set default.
' Display message, title, and default value.
MyValue = InputBox(Message, Title, Default)
' Use Helpfile and context. The Help button is added automatically.
MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)
' Display dialog box at position 100, 100.
MyValue = InputBox(Message, Title, Default, 100, 100)


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


Load
Loads an object but doesn't show it.
Syntax
Load object
The object placeholder represents an object expression that evaluates to an object in the Applies To list.
Remarks
When an object is loaded, it is placed in memory, but isn't visible. Use the Show method to make the object
visible. Until an object is visible, a user can't interact with it. The object can be manipulated programmatically
in its Initialize event procedure.
Example:
Private Sub Command1_Click ()
Load Form2
Form2.Show
End Sub


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


UnLoad
Removes an object from memory.
Syntax
Unload object
The required object placeholder represents an object expression that evaluates to an object in the Applies To
list.
Remarks
When an object is unloaded, it's removed from memory and all memory associated with the object is reclaimed.
Until it is placed in memory again using the Load statement, a user can't interact with an object, and the object
can't be manipulated programmatically.
Example:
Private Sub Command2_Click()
Form2.Hide
Unload Form2
End Sub


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


SendKeys
Sends one or more keystrokes to the active window as if typed at the keyboard.
Syntax
SendKeys string[, wait]
The SendKeys statement syntax has these named arguments:
Part Description
string Required. String expression specifying the keystrokes to send.
Wait Optional. Boolean value specifying the wait mode. If False (default), control is returned to the
procedure immediately after the keys are sent. If True, keystrokes must be processed before
control is returned to the procedure.
Remarks
Each key is represented by one or more characters. To specify a single keyboard character, use the character
itself. For example, to represent the letter A, use "A" for string. To represent more than one character, append
each additional character to the one preceding it. To represent the letters A, B, and C, use "ABC" for string.
The plus sign (+), caret (^), percent sign (%), tilde (~), and parentheses ( ) have special meanings to SendKeys.
To specify one of these characters, enclose it within braces ({}). For example, to specify the plus sign, use {+}.
Brackets ([ ]) have no special meaning to SendKeys, but you must enclose them in braces. In other applications,
brackets do have a special meaning that may be significant when dynamic data exchange (DDE) occurs. To
specify brace characters, use {{} and {}}.
To specify characters that aren't displayed when you press a key, such as ENTER or TAB, and keys that
represent actions rather than characters, use the codes shown below:

KeyCodes
Key Code
BACKSPACE {BACKSPACE},
{BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or
DELETE
{DELETE} or
{DEL}
DOWN
ARROW
{DOWN}
END {END}
ENTER {ENTER}or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or
INSERT
{INSERT} or
{INS}
LEFT
ARROW
{LEFT}
NUM LOCK {NUMLOCK}
PAGE
DOWN
{PGDN}
PAGE UP {PGUP}
PRINT
SCREEN
{PRTSC}
RIGHT
ARROW
{RIGHT}
Key Code
SCROLL
LOCK
{SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
To specify keys combined with any combination of the SHIFT, CTRL, and ALT keys, precede the key
code with one or more of the following codes:
Key Code
SHIFT +
CTRL ^
ALT %
To specify that any combination of SHIFT, CTRL, and ALT should be held down while several other
keys are pressed, enclose the code for those keys in parentheses. For example, to specify to hold down
SHIFT while E and C are pressed, use "+(EC)". To specify to hold down SHIFT while E is pressed,
followed by C without SHIFT, use "+EC".
To specify repeating keys, use the form {key number}. You must put a space between key and number.
For example, {LEFT 42} means press the LEFT ARROW key 42 times; {h 10} means press H 10
times.
Example:
Command1_Click ()
Text1.SetFocus
SendKeys “{Backspace}”
End Sub
‘Deletes last character in Text1
Command1_Click ()
SendKeys "%{F4}"
End Sub
‘Closes current window/program


دستور نوشتاری فرمان(Syntax) به نحو زیر است:

LoadPicture
Specifies the bitmap to display on an object.
Syntax
object.Picture = LoadPicture( pathname )
The Picture property syntax has these parts:
Part Description
object Required. A valid object.
pathname Required. The full path to a picture file.
Example:
Command1_Click ()
Image1.Picture = LoadPicture(C:\Blah.jpg)
End Sub
‘Loads the Picture Blah.jpg in Image1


دستور نوشتاری فرمان(Syntax) به نحو زیر است:


AppActivate
Activates an application window.
Syntax
AppActivate title[, wait]
The AppActivate statement syntax has these named arguments:
Part Description
title Required. String expression specifying the title in the title bar of the application window you
want to activate. The task ID returned by the Shell function can be used in place of title to
activate an application.
wait Optional. Boolean value specifying whether the calling application has the focus before
activating another. If False (default), the specified application is immediately activated, even
if the calling application does not have the focus. If True, the calling application waits until
it has the focus, then activates the specified application.
Remarks
The AppActivate statement changes the focus to the named application or window but does not affect
whether it is maximized or minimized. Focus moves from the activated application window when the
user takes some action to change the focus or close the window. Use the Shell function to start an
application and set the window style.
Example:
Command1_Click ()
AppActivate "Microsoft Word" ' Activates Microsoft Word.
End Sub