مفهوم رکوردست در برنامه نویسی VBA

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

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

اگر از کاربران حرفه ای نرم افزار اکسس باشید که قاعدتا باید با برنامه نویسی در محیط این برنامه هم آشنایی داشته باشید .

همان زبان برنامه نویسی VBA  که از آن می توان در محیط نرم افزارهای خانواده آفیس از جمله همین اکسس استفاده کرد .

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

برای مدیریت کردن این اشیا زبان برنامه نویسی VBA  امکانات و قابلیت های متعددی را در اختیار ما قرار می دهد .

یکی از این قابلیت ها و امکانات چیزی است که ما از ان تحت عنوان Recordset  یا همان رکوردست ها نام می بریم و  می شناسیم .

امروز می خواهیم بطور اختصاصی در خصوص این قابلیت ها صحبت بکنیم .

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

۱- منظور از رکوردست ؟

۲- چگونه یک رکوردست را ایجاد کنیم ؟

۳- مثال هایی کاربردی در استفاده از رکوردست ها در محیط برنامه نویسی اکسس داشته باشیم ؟

پس با من تا پایان این مطلب همراه باشید .

مفهوم رکورد ست در زبان برنامه نویسی VBA چیست ؟

رکوردست هم یکی از دهها و صدها اشیا و دستورات موجود در زبان برنامه نویسی VBA  است . 

کار آن چیست ؟

رکوردست شامل  مجموعه ای است از اطلاعات موجود در یک یا چند جدول که ما تعیین می کنیم .

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

پس برای چه کسی قابل دیدن هستند ؟

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

 

 

مطمئنم که درک این مفاهیم که ما اطلاعات را نمی بینیم ولی آنها را ویرایش می کنیم خیلی می تواند سوال برانگیز باشد . 

اینکه چرا ما نمی توانیم این اطلاعات را ببینیم ؟

اینکه وقتی که چیزی را نمی توانیم مشاهده کنیم ویرایش می کنیم ؟

اصلا از همه اینها گذشته این رکوردست به چه دردی قرار است بخورد ؟

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

درست مثل خود من که در اوایل کار که با بحث رکوردست ها آشنا شدم تا مدتی گیج و گنگ بودم و شروع به تحقیق و مطالعه در خصوص رکوردست ها کردم . 

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

اینکه ما رکوردست ها را نمی بینیم ولی می توانیم آنها را ویرایش کنیم .

حالا اینکه اصلا چرا باید این کار را بکنیم ؟

چرا ما باید و یا نمی توانیم این رکوردست ها را ببینیم ؟

وقتی که چیزی را نمی بینیم به چه دردمان می خورد ؟

و چندین و چند سوال دیگر که هیچ جایی یا اصلا پاسخی به آنها نداده بودند یا اینکه قضیه ای را که برای من پیچیده تر بود را پیچیده تر از قبل می کردند .

اما من امروز می خواهم خیلی ساده این قضیه رکورد ست ها را برای شما توضیح دهم و به تمامی سوالاتی که در بالا مطرح کردم و شاید سوالاتی باشد که به  ذهن شما هم خطور کرده باشد را پاسخ بدهم .

حتما شما هم مثل من در برنامه نویسی VBA  انقدر پیشرفت کرده اید و اکنون رسیده اید به پشت دروازه بسته  ای که بر سر در آن نوشته  بشده  رکوردست. 

من خیلی دنبال راهی گشتم تا از این دروازه عبور کنم .

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

معنی رکوردست در زبان برنامه نویسی VBA به زبان ساده 

قدرت در سادگی است .

بیاییم خیلی ساده با هم صحبت کنیم .

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

رکوردست یعنی مجموعه ای از رکوردها .

اجازه بدهید  با استفاده از یک مثال عینی موضوع را بهتر بیان کنم  .

جدول اطلاعات زیر را در نظر بگیرید .

رکوردست

 

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

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

اینکه چگونه می توانیم این کار بکنیم و چه کاربردی می تواند برای ما داشته باشد را در ادامه با هم بررسی خواهیم کرد .

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

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

۱- اول اینکه چگونه یک رکوردست را ایجاد کنیم ؟

۲- چگونه از رکوردست ایجاد شده استفاده کنیم ؟

اول به سراغ پرسش نخست برویم.

پیش از این بررسی کردیم : آشنایی با مفهوم شی در برنامه نویسی VBA .

چگونه یک Recordset را ایجاد کنیم ؟

برای ایجاد یک رکورد ست باید چند تا چیز را بدانیم .

اول اینکه خود رکوردست یک شی است که در کتابخانه DAO  که مخفف واژگان Database Access Object  است قرار دارد .

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

البته در اکسس کتابخانه مجزای دیگری هم وجود دارد که از آن تحت عنوان ADO  نام می برند که مخفف واژگان AxtiveX Data Object است .

این کتابخانه هم عینا دارای یک شی به نام رکوردست است .

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

هر چند که در اینجا نمی خواهیم خیلی تخصصی در خصوص این دو کتابخانه و اشیای موجود در آنها و اینکه هر کدام چه قابلیت هایی دارند با همدیگر صحبت کنیم اما بطور خیلی خلاصه و اجمالی به دو مورد از  نکات مربوط به کار با این  کتابخانه ها اشاره می کنم و بعد بحث اصلی خود را پی می گیریم

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

اما اگر بخواهیم از داخل اکسس با سایر بانک های اطلاعاتی ارتباط برقرار کنیم بیشتر از ADO  استفاده می کینم که خود بحث مفصلی خواهد بود .

تکنولوژی DAO  از سابقه بیشتری نسبت به ADO  برخوردار است .

سرعت پردازش و کار با DAO  اندکی بیشتر از ADO  می باشد .

خوب حالا به موضوع اصلی بحث خود برگردیم .

گفتیم که شی رکوردست در کتابخانه ای تحت عنوان DAO  قرار دارد .

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

برای این کار مراحل زیر را دنبال کنید .

اول نرم افزار اکسس خود را باز کرده با استفاده از کلیدهای ALT +F11  به محیط برنامه نویسی VBA  بروید .

در داخل این محیط منوی  Tools  را باز نموده و بر روی گزینه References  کلیک کنید .

 

رکوردست

 

با این کار پنجره زیر برای شما باز خواهد شد .

رکوردست

 

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

حالا کاری که باید بکنید این  است که در این لیست به سمت پایین حرکت کنید تا به گزینه ای تحت عنوان                 Microsoft DAO 3.6 Object Library  برسید .

این همان کتابخانه مورد نظر ما می باشد .

برای اضافه شدن این کتابخانه به محیط اکسس خود کافی است تیک مربوط به این گزینه را بزنید  و  بر روی دکمه OK  کلیک کنید .

به همین راحتی شما توانستید کتابخانه موسوم به DAO  را به محیط کار خود اضافه کنید .

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

اما شی مورد نظر ما در اینجا شی رکوردست موجود در این کتابخانه است .

پس در قدم بعد باید به سراغ کار با این شی در محیط برنامه نویسی خود برویم .

ما کتابخانه مربوط به شی DAO  را به محیط کار خود اضافه کردیم .

حالا باید شی رکوردست موجود در این کتابخانه را فراخوانی کنیم .

ایجاد و فراخوانی شی رکوردست

ما برای اینکه بتوانیم یک شی رکوردست را ایجاد کنیم نیاز به دو چیز داریم .

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

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

در اینجا ما یک شی ایجاد کردیم و نام آن را بنا به خواست خود db  گذاشتیم که همان مخفف کلمه database  است .

 و نوع آن را نیز از نوع دیتابیس  موجود در کتابخانه DAO  قرار دادیم .

در محله بعد باید شی رکوردست خود را به برنامه معرفی کنیم و بگوییم که این شی  رکوردست مربوط به کدام کتابخانه است  یعنی مربوط به کتابخانه DAO  است یا مربوط به کتابخانه ADO.

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

 در اینجا هم ما شی رکوردست را با نام اختیاری rs  که همان مخفف کلمه recordset  است را ایجاد کرده و نوع آن را از نوع شی recordset  موجود در کتابخانه DAO  قرار دادیم .

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

۱- تعریف شی db  از نوع دیتابیس .

۲- تعریف شی rs  از نوع رکوردست  .

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

این دقیقا مثل این است که شما بعنوان مثال برای کسی تعریف می کنید که می خواهید یک میز از جنس چوب برای خود درست کنید .

اما تا زمانی که دست به کار نشوید و این میز را ایجاد نکنید همه چیز در حد تعریف باقی می ماند .

اینجا هم قضیه از همین قرار است .

ما دو شی db  و  rs  را تعریف کرده ایم و گفته ایم که جنس آنها از نوع دیتابیس و رکوردست است .

اما هنوز خود آنها را ایجاد نکرده ایم .

خوب برای ایجاد اشیای مورد نظر چه باید بکنیم ؟

ایجاد شی رکوردست در محیط VBA

 خوب ما شی db  را  تعریف کردیم برای ایجاد و ساختن آن باید به آن مقدار دهی کنیم . 

برای ین کار هم از کدهای زیر می توان استفاده کرد .

این کد چه مفهومی دارد ؟

ما در این کد با استفاده از کلمه کلیدی set  به برنامه خود می گوییم که شی db  را که قبلا تعریف کردیم را  برابر با دیتابیس جاری قرار دهد .

دیتابیس جاری هم که اشاره به همان برنامه ای دارد که در حال حاضر در داخل آن داریم کد نویسی می کنیم .

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

مثلا برای همین نمونه بالا فرض کنید که فایل اکسسی  که در حال کار کردن بر روی آن هستیم را تحت عنوان mydatabase  نام گذاری کرده ایم .

خوب حالا می توانیم به جای کد قبلی از کد زیر هم استفاده کنیم .

 در اینجا هیچ کدام از کدها با هم فرقی ندارند .

اما یک سوال !

اگر  ما در یک فایل اکسس کار می کنیم و بخواهیم از اطلاعات موجود در فایل اکسس دیگری استفاده کنیم آن وقت فکر می کنید چگونه باید این منبع را تنظیم و معرفی کرد ؟

خوب حالا ما دیتابیس هدفی را که می خواهیم با آن کار کنیم را به برنامه معرفی کردیم . 

حالا فرض کنید که این دیتابیس ما دارای ۱۰ جدول مختلف و همچنین دارای ۵ کوئری می باشد .

چه جوری باید تعیین کنیم که اولا می خواهیم با کدام یک از این ۱۰ جدول کار کنیم و به اطلاعات آن دسترسی پیدا کنیم .

در ثانی از بین اطلاعات جدولی که انتخاب کردیم به کدام رکوردها می خواهیم دسترسی داشته باشیم .

اگر دقت کنید در اینجا ما با یک سلسه مراتب مواجهیم .

 

رکوردست

خوب در مرحله بعد باید برویم به سراغ اینکه برای برنامه تعیین کنیم که می خواهیم با کدام یک از جداول و یا کدام یک از کوئری ها می خواهیم کار کنیم و از  بین اطلاعات موجود در این جدول ها یا کوئری ها می خواهیم به کدام یک دسترسی داشته باشیم .

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

برای دسترسی به این اهداف باید به سراغ ایجاد شی رکوردست برویم .

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

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

 ما در این کد به برنامه گفته ایم که رکوردهای موجود در جدول “tblbooks ” را که در بانک اطلاعاتی جاری ما قرار دارد را در قالب یک رکوردست تحت عنوان rs  درآورد .

این کد تنها یکی از حالت هایی است که ما می توانیم با استفاده از آن به ایجاد رکوردست بپردازیم .

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

l ما در اینجا از یک عبارت SQL  برای ایجاد رکوردست مورد نظر خود استفاده کردیم . 

 هر دو این روش ها  یک خروجی برای ما خواهد داشت .

یعنی رکوردهای موجود در جدول مورد نظر ما در داخل شی رکوردست ما قرار می گیرد .

حالا این اطلاعات در کجا باید قرار بگیرد . 

این اطلاعات در حافظه کامپیوتر ما قرار می گیرد و ما نمی توانیم این رکوردست را مشاهده کنیم .

خوب وقتی که ما این اطلاعات را نمی توانیم ببینیم پس به چه درد ما می خورند و چگونه ما می توانیم از آنها استفاده کنیم .

این مطلب را به تدریج تکمیل خواهد شد ……. باز هم به ما سر بزنید

 

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

رکوردست

 

آموزش اکسس بازدید : 288 views 17 فوریه, 2020 ۰