مقاله30- ارتباط با پایگاه دادههایAccess در Visual Basic 82 صفهرست مطالب عنوان صفحه پیشگفتار مقدمات Visual Basic مقدمات بانک اطلاعاتی Access توصیف پروژه الف ) توصیف پایگاه دادهها ب ) توصیف فرمهای برنامه ضمائم ضمیمه 1- کد برنامه فهرست منابع
پیشگفتار : ما در عصری زندگی میکنیم که آن را عصر اطلاع رسانی یا قرن ارتباطات نامیدهاند، لذا میتوان اذعان نمود که کامپیوتر بهترین ابزار ارتباطی در آن عصر میباشد. امروزه کامپیوتر نه تنها به عنوان یک وسیله شخصی یا ابزار گروهی خاص مورد استفاده قرار میگیرد، بلکه به عنوان یک وسیله ارتباطی مهم در جهان مطرح میباشد و به همین دلیل است که کاربرد آن روز به روز در جهان گسترش مییابد به گونهای که در همه کشورهای جهان از جایگاه ویژهای برخوردار میباشد. با گسترش کاربرد کامپیوتر در جهان این رشته به صورت گستردهای در زمینههای مختلف توسعه یافته و هر روز نیز به این گسترش افزوده میگردد. پیشرفت سریع تکنولوژی، به ویژه فناوری اطلاعات و ارتباطات (ICT) روز به روز چشم اندازها و افقهای روشنتری را جهت تسخیر قلل علمی، فنی و صنعتی و حل مشکلات و مسائل بشر ارائه میکند و تک تک افراد جامعه را به تلاش مضاعف در کسب مهارتهای رایانهای و کاربرد آنها در سایر علوم ملزم میسازد، به نحوی که امروزه افراد و جوامع ناتوان در بکارگیری فن آوریهای جدید رایانه را بی سواد تلقی میکنند. یکی از رشتههای علمی مفید در زمینه کامپیوتر کار با پایگاه دادهها و نرم افزارهای بانک اطلاعاتی است که در زمینههای مختلف تجاری و اداری و وب سایت و ... کاربرد دارد. از این نرمافزارهای میتوان به ORACLE ، ACCESS , MS SQL SERVER, MS SQL اشاره نمود. ACCESS یک نرم افزار بانک اطلاعاتی قوی و آسان است که بسیاری از کاربران بانک اطلاعاتی تمایل زیادی به استفاده نرم افزار خوب و سودمند بهره گرفته شده است. زبان برنامه نویسی BASIC نیز به دلیل راحتی و آموزش سریع و آسان از گذشته دور مورد استقبال بسیاری از کاربران و برنامه نویسان بوده است. زبان VISUAL BASIC نسخة تحت ویندوز زبان Basic است که البته بسیار قویتر و پیشرفتهتر از نسخة تحت DOS آن عمل میکند و بسیاری از برنامههای پیشرفته و سطح بالا و پیچید ه مورد نیاز شرکتهای بزرگ به ویژه برنامههای چند رسانهای (Multi Media) با آن استفاده ازآن نوشته میشود. من نیز در این پروژه درسی از این زبان قوی که دارای قابلیت ارتباط با بانک اطلاعاتی به نحو مطلوبی است، بهره گرفتهام. اصل و پایه پروژه من نحوة ارتباط با پایگاه دادهها، در یک زبان سطح بالا است که شامل باز کردن بانک اطلاعاتی،دیدن اطلاعات موجود در بانک اطلاعاتی، ویرایش یا حذف دادههای بانک اطلاعاتی، ذخیره دادههای جدید در بانک اطلاعاتی و لیست کردن دادههای بانک اطلاعاتی طبق خواسته و نظر کاربر میباشد. بانک اطلاعاتی برنامه من مربوط به یک فروشگاه نوت بوک میباشد. در این فروشگاه علاوه بر خود نوت بوک، کیف نوت بوک، لوازم جانبی نوت بوک یا PC، اجزاء اصلی داخل نوت بوک یا PC و نیز خود PC عرضه میشود. برنامه VB در این پروژه طبق Query های خاصی که در ارتباطش با بانک اطلاعاتی ACCESS درخواست میکند، لیستهای متفاوتی از اطلاعات آن را به نمایش در میآورد. نرمافزارهای مورد استفاده : 1- Microsoft Access 2003 از برنامههای مجموعة office 2003Microsoft 2- Microsoft Visual Basic از برنامههای مجموعة Microsoft Visual Basic studio 6.0
مقدمات Visual Basic مفاهیم اولیه روشهای برنامه نویسی معمولاً به دو نوع کلی تقسیم میشوند: * برنامه نویسی تابع گرا یا ساخت یافته * برنامه نویسی شیءگرا الف) برنامه نویسی تابع گرا یا Procedural : این روش برنامهنویسی متن گرا نیز نامیده میشود روش قدیمی تری است که مبتنی بر توابع میباشد و معمولاً یکی از توابع اصلی است. با شروع برنامه، کنترل برنامه به اولین دستور تابع اصلی رفته و به ترتیب شروع به اجرای دستورات، از اولین دستور تا آخرین دستور تابع، میکند و مواقعی هم ممکن است فراخوانیهایی به یک یا چند زیر برنامه داشته باشد که با هر بار فراخوانی، کنترل برنامه به ابتدای تابع مورد نظر رفته و دستورات آن تابع را به ترتیب اجرا مینماید آن گاه با اتمام دستورات تابع مذکور، کنترل برنامه به ابتدای تابع مورد نظر رفته و دستورات آن تابع را به ترتیب اجرا مینماید آن گاه با اتمام دستورات تابع مذکور، کنترل برنامه به دستور بعد از دستور فراخوانی برمیگردد و روال برنامه تا رسیدن به آخرین دستور تابع اصلی ادامه مییابد. بعد از اجرای آخرین دستور تابع اصلی یا رسیدن به دستور خاتمهی برنامه، برنامه پایان میپذیرد؛ مانند اکثر زبانهای برنامه نویسی که تا به حال با آن کار کردهایم، که از جمله بیسیک، پاسکال و C. ب ) برنامه نویسی شیء گرا (Object Oriented): برنامه نویسی شیء گرا دارای اصول و ویژگیهایی است که با پیدایش ویندوز ومفاهیمی چون «چند وظیفهای» که در آن سیستم عامل وجود دارد، مطرح شد. در این روش، بر خلاف روش قبلی، به جای استفاده از تابع اصلی که وظیفهی کنترل تمام برنامه را بر عهده دارد از مفاهیمی هم چون کلاس، خصوصیت و شیء استفاده میشود. بنابراین برای یادگیری بهتر این روش نخست باید با مفاهیم گفته شده آشنا شویم. در محیط زندگی با مفهوم شیء آشنا هستم. همان طور که میدانید یک شیء چیزی است مادی که دارای خصوصیاتی است، از جمله این که میتواند در مقابل برخی اتفاقات که ممکن است برایش رخ دهد از خود واکنشهایی نشان دهد. پس با این حال میتوان گفت که هر شیء به همراه سه جنبهی زیر شناخته میشود :
خواص ویژگیهایی است که مشخص کنندهی حالت فعلی شیء است؛ برای مثال میتوان گفت رنگ یک میز قهوهای است یا قد یک شخص 170 سانتیمتر بودن قد خواص آنهاست. رفتار یک شیء نحوهی پاسخ آن شیء در مقابل رویدادهایی است که ممکن است برایش رخ دهد. برای مثال شیء میز در مقابل رویداد وارد آمدن نیروی بیش از حد بر آن میشکند (رفتار). حال خودتان مثالهایی را برای شیء یک شخص و رویدادهایی که میتواند برای وی اتفاق افتد و رفتارهای متقابل او بیابید. توجه داشته باشید که ممکن است شیء خاصی در مقابل بعضی رویدادها هیچ رفتاری از خود نشان ندهد. این در صورتی است که برای رویداد مورد نظر هیچ رفتاری تعریف نشده باشد. روابط هر شیء نیز نشان دهندهی ارتباط آن شیء با اشیای دیگر است. به عنوان مثال، یک شخص میتواند مالک یک شیء مانند میز باشد که در این صورت رابطهی مالکیت بین شیء و شخص برقرار است. اشیایی که در دنیای واقعی وجود دارند، از انواع متفاوتند. حتی اشیای هم نوع ممکن است خصوصیات، رفتارها و روابط متفاوتی داشته باشند. با توجه به این نکته، برای شیءها تقسیم بندی خاصی را در نظر میگیریم و اصطلاح کلاس را تعریف میکنیم. کلاس مجموعهی تمام اشیای هم نوع است. هر چند این شیءها خواص، رفتار و روابط متفاوتی داشته باشند. مثلاً انسان یک کلاس است و هر شخص به خصوصی از این مجموعه شیئی از کلاس مذکور تلقی میشود. با توجه به تعاریف و مفاهیمی که در بالا ذکر شد میتوان روش برنامه نویسی شیء گرا را به صورت زیر بیان کرد: هر برنامهی شیءگرا شامل تعدادی شیء با خواص و متدهای متفاوت است به طوری که روابط خاص بین آنها برقرار میباشد. متدها مجموعهای از دستورالعملهای برنامه نویسی هستند که باید در هنگام بروز رویدادهایی آشکار شوند. مجموعهی این دستورالعملها رفتار آن شیء را در برابر رویداد به خصوصی نشان میدهند. تاریخچهی زبان BASIC BASIC ، سر نام کلمات Beginner’s All-purpose Symbolic Instruction Code به معنی زبان همه منظوره برای افراد مبتدی است. این زبان برنامه نویسی، به دلیل سادگی ساختاری، از محبوبیت زیادی برخوردار است. یک هنرجوی مبتدی که آشنایی زیادی با رایانه و برنامه نویسی ندارد، پس از آموزشی کوتاه، قادر خواهد بود که این زبان را یاد گرفته، امکان نوشتن برنامه در محیط این زبان برنامه نویسی را به دست آورد. زبان برنامه سازی BASIC، در سال 1964 میلادی، از سوی John Kenney و
Thomas – kiurts در کالج دارتموث (Dartmouth) پدید آمد. این زبان، نخستین
زبان برنامه سازی نبود ولی هدف این افراد، فراهم نمودن یک زبان ساده برای
دانشجویان رشتههای مختلف بود. تا به امروز نسخههای متعددی از زبان BASIC
ارائه شده است که میتوان از آن جمله به زبان برنامه نویسی BASIC با ارائهی VISUAL BASIC جان تازهای گرفت و دوباره رونق یافت. به همین دلیل، به عنوان یک زبان برنامه سازی پایهای در دورهی آموزشس رایانه شناخته شده است. هنرجو، با آموختن این زبان، با اصول برنامه سازی و همچنین برنامه نویسی در محیط VISUAL BASIC , QUICK – BASIC آشنا خواهد شد. در هر زبان برنامه سازی اگر مقدمات آن زبان را بیاموزید،نوشتن برنامهها در آن ساده خواهد بود. مقدمات یک زبان عبارتند از : انواع دادههای موجود، چگونگی تعریف متغیرها، انواع عملگرها، دستورهای شرطی، انواع حلقههای تکرار و دستورهای ورودی / خروجی. کار با ویژوال بیسیک محیط ویژوال بیسیک ساده است. این محیط که از جمله محیطهای توسعه یافتهی مجتمع یعنی (Integrated Development Environment) IDE میباشد، به برنامه نویسان امکان میدهد که برنامههای تحت ویندوز خود را بدون نیاز به استفاده از برنامههای کاربردی دیگر، اجرا و خطایابی کند.
آشنایی با محیط ویژوال بیسیک بعد از اجرای برنامه ویژوال بیسیک، کادر محاورهای New project به نمایش در میآید که در این کادر به برنامه نویس امکان انتخاب یکی از انواع برنامههایی را میدهد که میتوان در VB ایجاد کرد. نوع Standard EXE که به طور پیش فرض در این کادر انتخاب شده است به برنامه نویس امکان میدهد که برنامه اجرایی استانداردی را ایجاد نماید (برنامههای اجرایی استاندارد از اکثر خصیصههای ویژوال بیسیک استفاده میکنند). کادر محاورهای New project شامل سه زبانه (Tab)است :
تعریف پروژه (Project) : پروژه عبارت است از مجموعهی فایلهایی (فرم، برنامه و ...) که در کل یک هدف واحد را دنبال میکنند. کدهای برنامه، مشخصات ظاهری برنامه و احتمالاً فایلهای بانک اطلاعاتی در این مجموعه از فایلها قرار دارند. برای باز کردن یک پروژه بر روی آیکن Standard . exe دابل کلیک کرده و یا روی آیکن، کلیک کنید، سپس کلید Enter و یا دکمهیOpen را فشار دهید. با باز شدن پروژه، کادر تبادلی بسته شده و وارد محیط IDE میشویم. این محیط دارای چندین پنجره؛ یک میلهی منو و یک میلهی ابزار است که مشابه میلههای منو و ابزار در اکثر برنامههای تحت ویندوز است. پروژهی Standard EXE شامل پنجرههای زیر میباشد. 1- پنجرهی پروژه (PROJECT) 2- پنجرهی (Form Layout) 3- جعبه ابزار (ToolBox) 4- پنجرهی خصوصیات (Properties) 5- پنجرهی فرم (Form) پنجرهی پروژه : پنجرهای است که معمولاً به نام Project Explorer نیز معروف است شامل تمام فایلهای مربوط به پروژه میباشد. نوار ابزار این پنجره شامل سه دکمه به نامهای : View object , View code و Toggle Folder است.
نکته : اگر در پنجرهی پروژه هیچ فایلی فعال نباشد هر دو دکمهی View code و View object به صورت غیر فعال درمیآیند.
پنجره Project یکی از مهمترین ابزارهای مدیریت پروژه است. پنجره (Form Layout) :این پنجره محل فرم را به هنگام اجرای برنامه (Run time) بر روی صفحهی نمایش مشخص میکند. این پنجره یک صفحهی نمایش را نشان میدهد که در داخل آن محل قرار گرفتن فرم مشخص شده است. با قرار دادن نشان گر ماوس بر روی شکل فرم و پایین نگه داشتن دکمهی سمت چپ ماوس و جابهجا کردن آن (Drag) می توان فرم را در محل جدید خود قرار داد. به این ترتیب در زمان اجرا فرم مورد نظر در محل مشخص شده ظاهر می شود. پنجره ی خصوصیات (properties window) : این پنجره ویژگی ها و خصوصیات فرم یا کنترل را نشان می دهد که به ترتیب الفبایی[1] مرتب شده اند. در قسمت بالای پنجره، جعبهی لیست مانندی (combo box) وجود دارد که در آن نام کنترل یا فرمی که خصوصیات آن در این پنجره آورده شده است. داخل این لیست نام تمامی کنترلها و همچنین نام فرمی که فعلاً فعال است آورده شده است. با انتخاب هر کنترل یا فرم دیگری از این لیست خصوصیات مربوط به آن در پنجره نشان داده میشود. توجه کنید که بعضی از این خصوصیات مشترک هستند مانند خصوصیت Name که در هر مورد نشان دهندهی نام کنترل یا فرم است، برخی دیگر برای کنترلها یا فرم مشترک نیستند بلکه منحصر به فردند. جعبهی ابزار (Tool box) : این جعبه شامل کنترلهایی است که از هر کدام آنها میتوان به تعداد دلخواه بر فرمهای مربوط به پروژه اضافه کرد. به این شرط که نام هر شیء ایجاد شده منحصر به فرد باشد. کنترلهای مربوط به جعبهی ابزار نسبت به نوع پروژهای که در ابتدای ایجاد پروژهی جدید مشخص میشود، متغیر است و معمولاً در نوع Standard EXE تعداد این کنترلها بیشتر میباشد. با این حال روشهایی برای اضافه کردن کنترلهایی که به صورت استاندارد در جعبهی ابزار قرار داده نشدهاند ولی در VB موجود میباشد وجود دارد. پنجرهی فرمها (Forms) : این پنجره، فرم فعال در پنجرهی پروژه، با تمام اشیای مربوط به آن را در یک رابط گرافیکی کاربر [2](CUI) نشان میدهد. در ابتدای ایجاد یک فرم جدید هیچ شیئی در آن وجود ندارد. البته در صورتی که دکمهی View code در پنجرهی پروژه انتخاب شود و یا بر روی شیء یا فرم Double Click شود، پنجرهی مربوط به کد در این قسمت نمایش داده میشود. نوار منو (Menu bar) : نوار منو مکانی است که در اکثر برنامههای تحت ویندوز وجود دارد و شامل دستوراتی برای ساخت، نگهداری و راه اندازی برنامههاست. جدول 1 وظایف هر بخش از منو را به طور خلاصه مشخص نموده است. جدول 1
در پایین نوار منو، نوار ابزاری وجود دارد که توسط آن میتوان به سرعت به برخی از گزینههای منو دسترسی پیدا کرد. طریقهی کار با جعبه ابزار برای اضافه کردن یک شیء از هر کنترل موجود در جعبهی ابزار میتوان به دو روش عمل نمود : الف ) با Double Click کردن روی هر کنترل، یک نمونه از شیء مربوطه که در وسط فرم فعال ظاهر میشود، همیشه از نظر اندازه و موقعیت ثابت است. با پایین نگه داشتن کلید ماوس روی هر شیء اضافه شده و حرکت دادن ماوس (Drag) میتوان محل شیء را تغییر داد و نیز میتوان با قرار دادن مکان نما در گوشههای شیء و Drag کردن، اندازهی آن شیء را نیز به دلخواه تعیین نمود. ب ) کنترل مربوط به آن شیء را در جعبه ابزار توسط کلیک سمت چپ ماوس انتخاب نمود و سپس بر روی فرم مورد نظر در محل دلخواه کلیک کرده و با Drag کردن، شیء را به اندازهی دلخواه بر روی فرم اضافه نمود. کلیات هنگام برنامه نویسی باید بدانید که کدها چگونه با فرم و کنترلهای برنامه ارتباط برقرار میکنند. به یاد دارید که پنجرهی خواص تمام فایلهای برنامه را نشان میدهد. کدهای برنامه در پنجرهی کد نوشته میشوند ولی میدانید که روالهای رویداد به فایلهای خاص خود نیاز ندارند؛ آنها در همان فایل فرم ذخیره میشوند. یک فرم میتواند کدهایی داشته باشد که روال رویداد نیستند، اینها کدهایی هستند که وظایف کلیتری بر عهده دارند. پروژهها میتوانند انواع دیگری از کد داشته باشند. روالهای Visual Basic میتوانید سابروتین یا تابع باشند. تمام کدهایی که روال رویداد نیستند را میتوان در یک محل جداگانه، به نام ماژول (module)، قرار داد. ماژول یک فایل جداگانه است که در پنجرهی خواص ظاهر خواهد شد. از نظر فنی، کدهای موجود در فرم هم در یک ماژول (به نام ماژول فرم) قرار دارند. هر پروژه به تعداد فرمهایشان دارای ماژول فرم است. وقتی برنامهای دارای چند فرم است. برنامه نویس باید تصمیم بگیرد که کدام فرم در شروع برنامه روی صفحه ظاهر شود. فرم شروع (start form) اولین فرمی است که در برنامه ایجاد میشود، اما میتوان این وضع را عوض کرد. برای این کار، آیتم Project>Project Name Properties را کلیک کنید (<Project Name> نام پروژه است) تا Visual Basic کادر محاورهای خواص پروژه را نشان دهد. پنجرهی code اما یک ماژول فرم علاوه بر روالهای رویداد میتواند حاوی قسمت دیگری هم باشد: قسمت تعاریف (Declaration Section). قسمت تعاریف فضایی است که نامهای مورد استفاده در سایر قسمتهای ماژول تعریف میشوند. کنترلها نیازی به تعریف ندارند، اما سایر انواع دادههای BasicVisual را باید در این قسمت تعریف کنید. هر ماژولی هم که داشته باشد میتواند دارای یک قسمت تعاریف باشد؛ این قسمت همیشه در ابتدای ماژول ظاهر میشود. هر کدی که قبل از اولین روال رویداد نوشته شود جزء این قسمت محسوب خواهد شد. متن انتخاب شده (که با دستور Option Explicit شروع شده) قسمت تعاریف ماژول است. دقت کنید که در لیستهای Procedure , Object به ترتیب (Genera;) و (Declarations) دیده میشود؛ دو لیست در هر لحظه نشان میدهند که شما در کدام قسمت از ماژول فرم قرار دارید. دو روال بعدی روال رویداد نیستند و این واقعیت را از نام آنها میتوان دریافت. به یاد دارید که نام یک روال رویداد از دو قسمت، نام کنترل و نام رویداد که با یک زیر خط به هم متصل شدهاند، تشکیل میشود. با این که نام روال Update _ Count () دارای دو قسمت و یک زیر خط است ولی اگر مکان نما را در بدنهی این روال قرار دهید در لیست Object همچنان کلمهی General را خواهید دید، چون روال مزبور جزء روالهای عمومی ماژول است. (اما نام روال Update _ Countدر لیست Procedure ظاهر خواهد شد، چون این لیست حاوی نام تمام روالهای ماژول از جمله روالهای عمومی است). دادههای در ویژوال بیسیک هر زبان برنامهنویسی برای پردازش اطلاعات به انواع مختلفی از دادهها نیاز دارد و BasicVisual هم از این قاعده مستثنی نیست. BasicVisual از انواع دادههای مختلفی پشتیبانی میکند که با آنها میتوان نیازهای مختلف برنامه نویس را برآورده کرد. BasicVisual هم مانند سایر زبانهای برنامهنویسی دربارهی دادههای خود سخت گیر است (البته نه به شدت برخی ازآنها) و باید دقیقاً به او بگویید که از چه نوع دادهای میخواهید استفاده کنید. BasicVisual از دوازده (12) نوع داده (Data type) پشتیبانی میکند. دادههای عددی تمام انواع دادههای عددی در یکی از مقولههای زیر جای میگیرند:
BasicVisual اعداد اعشاری و صحیح را به روشهای مختلف ذخیره و با آنها کار میکند. با آنکه برای یک کاربر بین 8 و 00/8 هیچ فرقی وجود ندارد ولی از نظر BasicVisual آنها متفاوتند. مقدار حافظهای که انواع دادهای مختلف به خود اختصاص میدهند یکسان نیست. با نگاه کردن به یک عدد نمیتوان گفت که چقدر حافظه اشغال کرده است. مثلاً، اعداد 999، 29، 701 هر دو به یک مقدار حافظه میگیرند. با آن که امروزه دیگر حافظه یک مشکل کلیدی نیست و شما هم به عنوان برنامه نویس نباید زیاد نگران آن باشید، ولی همیشه سعی کنید برای دادههایتان نوعی انتخاب کنید که حافظهی کمتری را اشغال میکند. در جدول 2 هفت نوع دادهی عددی BasicVisual، مقدار حافظهی مورد نیاز هر کدام و محدودهای میتوانند در خود جای دهند را میبینید. هنگام تعریف دادهها این جدول را مد نظر داشته باشید. به عنوان مثال، اگر میخواهید با اعداد منفی کار کنید نباید از نوع Byte استفاده کنید، اما اگر با سن افراد سر و کار دارید این نوع بهترین انتخاب ممکن است. جدول 2) هفت نوع دادهی عددی BasicVisual
بایت (byte) معادل یک واحد ذخیره سازی در حافظه PC است. در نوع Single برای نوشتن نمای عدد از E یا e استفاده میشود؛ در نوع Double میتوان از D یا d برای نوشتن نما استفاده کرد. برای تبدیل یک عدد از عدد نویسی معمولی باید عدد بعد از E (یا D) را به توان 10 رسانده و آن را در عدد قبل از E (یا D) ضرب کنید. مثلاً،E+55,83 معادل 10000 (105)× 83/5 یا 583000 است. هنگام کار با اعداد بسیار بزرگ (یا بسیار کوچک) عدد نویسی علمی کمک قابل توجهی به دقت و صرفه جویی درجا خواهد کرد. وقتی در برنامه عددی را صریحاً مینویسید (به این قبیل اعداد واژهی عددی –Numeric Literal– گفته میشود)، Visual Basic مناسبترین نوع را برای آن برمیگزینند ولی گاهی لازم است تا واژهی مورد استفاده از نوعی باشد که شما دارید نه آنچه که Visual Basic تعیین میکند. در چنین مواردی میتوانید نوع واژه را صریحاً به Visual Basic معرفی کنید، این کار با استفاده از پسوند نوع داده (data – type suffix) امکان پذیر است. جدول 3 انواع پسوندهای عددی را در Visual Basic نشان میدهد. جدول 3) پسوندهای عددی Visual Basic
توجه داشته باشید که اگر از عدد نویسی علمی استفاده میکنید، حروف D,E به ترتیب معرف انواع Double , Single هستند و دیگر نباید از پسوند نوع داده استفاده کنید. به یک مثال توجه کنید. اگر در برنامهای از واژهی عددی 8/5 استفاده کرده باشید، Visual Basic به طور خودکار نوع Single را برای آن برمیگزینند و 4 بایت حافظه به آن اختصاص میدهد. اما با نوشتن این عدد به صورت ، Visual Basic را وادار کنید تا به آن چشم یک عدد Double نگاه کند و 8 بایت حافظه برای آن کنار بگذارد. سایر انواع داده درک دادههای غیر عددی (برای کسانی که علاقهای به ریاضیات ندارند) آسانتر است. یکی از دلایلی که BASIC، علیرغم حضور زبانها پیشرفتهتر، همچنان مطرح مانده، تواناییهای آن در کار با رشتههای متن است. رشته (String) ترکیبی است از چند کاراکتر، که حتی میتوانند عدد باشند ولی نمیتوان روی آنها محاسبه انجام داد. نام، آدرس، شماره تلفن یا حساب بانکی را میتوان به صورت رشته نمایش داد. همواره سعی کنید فقط برای اعدادی که نیاز به محاسبه دارند از انواع عددی استفاده کنید. در جدول 4 انواع غیر عددی Visual Basic را میبینید. جدول 4 انواع دادهی غیر عددی Visual Basic
متغیر Boolean فقط میتواند دو مقدار بگیرد: True (درست) یا False (نادرست). واژههای رشتهای (string literal) همیشه بین دو علامت نقل قول (") قرار میگیرند و میتوانند شامل هر کاراکتری باشند. مثالهای زیر همگی رشته هستند. "Oh me, oh my" "543 – 00 – 0324" "1020 S.Yale Avenue" "" هر چیزی که بین دو علامت " قرار گیرد، یک رشته است حتی اگر (مانند مثال آخر) هیچ کاراکتری در آن نباشد. رشتهای که طول آن صفر باشد، رشتهی Nullنامیده میشود. Visual Basic از رشتههای خاصی به نام رشتههای خالی (که با کلمهی کلیدی Empty تعریف میشوند) پشتیبانی میکند. رشتهی خالی رشتهای است که هیچ مقداری (حتی Null) ندارد. هنگام تعریف واژههایی که حاوی تاریخ و زمان هستند از علامت استفاده کنید. Visual Basic از تمام فرمتهای تاریخ و زمان پشتیبانی میکند. به مثالهای زیر توجه کنید: July 4,1776 7:11 pm 19:11:22 1-2-2003 5-Dec-99 نوع دادهای Boolean برای مواردی برای مواردی مناسب است که فقط دو مقدار متضاد (True یا False، Yes یا No و از این قبیل) دارید. خاصیت Enabled کنترلها از این نمونه است. نوع دادهای Variant میتواند هر مقداری (به جز رشتههای با طول ثابت) را در خود جای دهد. از این نوع داده زمانی استفاده کنید که از قبل دقیقاً ندانید با چه نوع دادهای سر و کار خواهد داشت. کار با متغیرها متغیر (variable) مکانی است برای نگهداری یک مقدار، مقداری که در متغیر قرار داده میشود، قابل تغییر است (نام آن هم بر همین ویژگی دلالت دارد). وقتی مقداری را در یک متغیر قرار میدهید مقدار قبلی آن از بین خواهد رفت. متغیر مکانی است در حافظه برای ذخیره کردن دادههای موقتی برنامه. متغیرها با نامشان شناخته میشوند، بنابراین در یک روال استفاده از دو متغیر با یک نام مجاز نیست چون Visual Basic قادر به تشخیص آنها نخواهد بود. بر خلاف کنترلها که Visual Basic خود به آنها یک نام پیش فرض میدهد، نامگذاری متغیرها از همان ابتدا برعهدهی برنامه نویس است. قبل از استفاده از یک متغیر باید آن را تعریف (declare) کنید، تعریف یک متغیر یعنی نامگذاری آن و تعیین نوع مقداری که میتواند بگیرد. متغیرها میتوانند فقط از همان نوعی که تعریف شدهاند مقدار بگیرند (به استثنای متغیرهای variant که میتوانند از تمام انواع داده مقدار بگیرند) تعریف متغیرها برای تعریف یک متغیر (نامگذاری و تعیین نوع آن) از کلمهی کلیدی Dim استفاده میشود. قبل از استفاده از یک متغیر حتماً باید آن را تعریف کرد. البته Visual Basic اجازه میدهد که این قاعدهی کلی را زیر پا بگذارید ولی تخلف از این قاعده میتواند به سردرگمی منجر شود. الزام (یا عدم الزام) به تعریف متغیرها را میتوانید در منوی Tools، گزینه options، برگهی Editor و گزینهی Require Variable Declaration مشخص کنید. اگر دقت کرده باشید، در قسمت تعاریف پنجرهی کد که دستور به صورت پیش فرض وجود دارد: Option Explicit این دستور به Visual Basic میگوید که در کل ماژول مورد بحث، متغیرها قبل از استفاده باید تعریف شوند. در چنین ماژولهایی هر گاه نام یک متغیر را اشتباه بنویسید، Visual Basic آن را به شما گوشزد خواهد کرد. اما اگر این گزینه را غیر فعال کرده باشید، Visual Basic اشتباه در نوشتن نام یک متغیر را متغیر جدیدی تلقی کرده و به کار خود ادامه خواهد داد. در این حالت تمام متغیرهایی که صریحاً تعریف نشوند از نوع Variant در نظر گرفته خواهند شد. شکل کلی استفاده از دستور Dim برای تعریف یک متغیر چنین است : Dim Var Name As Data Type که در آن Var Name نام متغیر و Data Type یکی از انواع دادههای Visual Basic است. متغیرهای مورد استفاده در یک روال باید در همان ابتدای روال تعریف شوند. متغیرهای تعریف شده در یک روال فقط در همان روال قابل استفادهاند و در هیچ روال دیگری قابل دسترسی نیستند؛ به این قبیل متغیرها، متغیر محلی (local variable) گفته میشود. متغیرهایی که در قسمت تعاریف ماژول تعریف شوند از تمام روالهای آن ماژول قابل دسترس خواهند بود؛ به این گونه متغیرها، متغیرعمومی (Global Variable) میگویند. متغیرهای عمومی فقط در همان ماژولی که تعریف شدهاند دیده میشوند. متغیرها را میتوان به گونهای تعریف کرد که در تمام ماژولهای پروژه قابل دسترسی باشند. چون نام گذاری متغیرها بر عهدهی برنامه نویس است، باید قواعد نام گذاری آنها را بدانید:
علاوه بر قواعد الزامی فوق، سعی کنید هنگام نام گذاری متغیرها نکات زیر را هم رعایت کنید:
در هر دستور Dim میتوان بیش از یک متغیر را تعریف کرد؛ تعریفها با کاما (,) از هم جدا میشوند : Dim intTotal As integer, CurSales99 As Currency اگر نوع دادهی یک متغیر ذکر نشود، Visual Basic آن را از نوع variant تعریف خواهد کرد؛ بنابراین هر دو دستور زیر معادل یکدیگرند: Dim vntControlVal As Variant Dim vntControlVal تعریف رشتهها هنگام تعریف رشتهها یک مشکل ثانویه پیش میآید، چون دو نوع String وجود دارد: با طول ثابت، با طول متغیر. متداولترین رشتهها رشتههای با طول متغیرهستند چون روش تعریف آنها درست شبیه تعریف متغیرهای دیگر است. در مثالهای زیر دو رشتهی با طول متغیر تعریف شدهاند : Dim strCityName As String Dim strStateName As String هر دوی این متغیرها میتوانند رشتههایی با طولهای متفاوت را در خود نگه دارند. مثلاً، اگر ابتدا در متغیر strCityName رشتهی "Tehran" و سپس رشتهای "Yazd" را ذخیره کنیم، این متغیر طول خود را متناسب با آن تغییر خواهد داد. در اکثر موارد این همان چیزی است که ما میخواهیم، ولی گاهی پیش میآید (مثلاً هنگام کار با فایلها) که بخواهیم طول رشتهها ثابت بماند. در این موارد باید طول آنها را مشخص کنیم : اگر رشتهای که طول آن بیش از پنج حرف باشد به متغیر strZipCode نسبت داده شود، Visual Basic فقط پنج حروف اول آن را ذخیره میکند و ما بقی را دور خواهد انداخت. مقدار دادن به متغیرها بعد از تعریف یک متغیر، میتوان دادهها را در آن ذخیره کرد. سادهترین راه برای ذخیره کردن یک مقدار در یک متغیر، دستور انتساب (assignment statement) است. شکل کلی این دستور چنین است : Item Name = Expression که در آن Item Name نام یک متغیر (یا خصوصیت) است و Expression میتواند یکی از موارد زیر باشد :
curSales : 571275 strFirstName="Herry" blnPassedTest=True blnsEnabled = iblTitle.Enabled dblValue=45.1# intcount=intNumber dteOld= #4-1-92# sngOld97Tptal=sngNew98Total-100000 مهمترین نکته دربارهی یک عبارت آن است که مقدار سمت راست عبارت به متغیر سمت چپ آن نسبت داده میشود. توجه کنید که مقدار سمت راست عبارت بایستی با نوع متغیر سمت چپ عبارت متناسب باشد، یا اینکه امکان تبدیل آن برای Visual Basic وجود داشته باشد. مثلاً، Visual Basic میتواند یک عدد کوچکتر را در متغیری از نوع Long (که قاعدتاً برای اعداد بزرگ به کار میرود) قرار دهد، ولی نمیتواند یک رشته را به متغیر عددی نسبت دهد. در Visual Basic،برای حفظ سازگاری با بیسیکهای قدیمی، میتوان از کلمه کلیدی let برای مقدار دادن به متغیرها استفاده کرد؛ دو دستور زیر معادل یکدیگرند: Let intCount =1 inCount= 1 عملگرهای ویژوال بیسیک Visual Basic از عملگر (operator) های محاسباتی و رشتهای متعددی پشتیبانی میکند. جدول 5 عملگرهای متداول Visual Basic را نشان میدهد. عملگر ابزاری است برای ترکیب کردن دادههای مورد نظر. عملگر توان (exponentiation) یک عدد را به توان عدد دیگر میرساند؛ 2^3 یعنی 2توان 3، عملگرهای ضرب، تقسیم، جمع و تفریق هم دقیقاً همان کاری را میکنندکه در محاسبات معمول با آن آشنا هستید. عملگر Mod برای محاسبهی باقی مانده یک تقسیم است، بنابراین 3 11 mod معادل 2 خواهد شد. چون باقی ماندهی تقسیم 11 بر 3 معادل 2 است. عملگر Mod فقط برای اعداد صحیح است و اگر از اعداد اعشاری استفاده کنید، Visual Basic ابتدا آنها را به صحیح تبدیل کرده و سپس باقی مانده را محاسبه خواهد کرد. عملگر تقسیم صحیح () خارج قسمت صحیح تقسیم را برمیگرداند و باقی ماندهی تقسیم را دور میاندازد. جدول 5 عملگرهای Visual Basic
نکته جالب در جدول 5 آن است که عملگر + دو کار متفاوت انجام میدهد: جمع معمولی و به هم چسباندن (ترکیب) رشتهها. این عملگرها با توجه به محلی که مورد استفاده قرار رفته (بین دو عدد یا بین دو رشته) واکنش مناسب را نشان میدهد. هنگام ترکیب رشتهها، Visual Basic هیچ چیز به آنها اضافه نخواهد کرد. بنابراین اگر میخواهید بین دو رشته یک فاصله وجود داشته باشد باید خودتان آن را اضافه کنید. به مثال زیر توجه کنید: StrCompleteName=lblFirst.Caption & " " & lblLast.Caption به این نوع عملگرها عملگر تحریف شده میگویند چون عملکرد آنها بسته به مکان استفاده از آن متفاوت خواهد بود.
[1]- خصوصیت Name از این قاعده مستثنی است. [2]- Graphic user interface یاهومارکت |