![]() مقاله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 جهت کپی مطلب از ctrl+A استفاده نمایید نماید |