آشنایی با اکسس

مقدمه

مدیریت پایگاه داده ها (چه داده های متنی یا تصویری یا غیره) شاید مهمترین کاربردی بوده است که همواره از کامپیوترهای تجاری خواسته شده است. به همین دلیل در چند سال گذشته قبل از ظهور محیطهای مبتنی بر رابط گرافیکی شاهد حکومت زبان cobol بر امپراطوری کامپیوتر بودیم.

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

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

ما در این دوره آموزشی شما را با قابلیت access آشنا کرده و شاید اگر اغراق نکرده باشم شما را استاد این برنامه بی نظیر خواهیم کرد شما نیز لحظه به لحظه به آشنایی با قابلیتهای این برنامه مطمئنا مشتاق یاگیری هرچه سریع آن خواهید شد.
قابل ذکر است که ما در این دوره برنامه اکسس ۲۰۰۰ را برای آموزش انتخاب کرده ایم که البته نسخه های دیگر این برنامه فرق چندانی با نسخه ۲۰۰۰ آن ندارد و شما می توانید با یادگیری این نسخه با ان نیز به راحتی کار کنید. (البته توصیه خود من به استفاده از نسخه ۲۰۰۰ است)

آشنایی با اکسس

اکسس که یکی از برنامه های موجود در بسته نرم افزاری آفیس( Microsoft Office ) است برای ساماندهی و کنترل و مدیریت پایگاه داده ایجاد شده است.
این برنامه دارای قابلیتهای بسیار است , مانند ایجاد صفحه ورود اطلاعات به شکل دلخواه.
به عنوان مثال وقتی شما می خواهید اطلاعات موجود در یک چک را در کامپیوتر خود ذخیره کنید شما با استفاده از برنامه اکسس می توانید صفحه ای درست همانند صفحه چک ایجاد کنید و اطلاعات را به صورت کاملا گرافیکی در آن وارد کنید.
شما پس از ایجاد پایگاه داده هایتان حتی می توانید از آنها گزارش گرفته و یا در بین اطلاعات خود جستجو کرده البته تمامی این امکانات را شما با دستان قدرتمند خود ایجاد خواهیدکرد.
از موارد استفاده برنامه اکسس به طور شهودی می توان به استفاده آن در قسمت حسابداری یک شرکت و یا نگهداری اطلاعات اشخاص عضو در سایتتان و حتی نگهداری اطلاعات کارمندان (حتی عکس آنها) و موارد بسیار متنوع دیگر اشاره کرد.
شما پس از ایجاد این پایگاه داده حتی می توانید آن را در شبکه در اختیار دیگران قرار داده یا بر روی آن کلید رمز گذاشته یا حتی در سطح کاربران مختلف مقدار دسترسی هر کاربر را تعیین کنید.
روش ادامه درس ما در جلسات بعدی به صورت زیر خواهد بود:

ابتدا آشنایی با محیط اکسس و تسلط کامل بر آن
کار با help برنامه(به صورت مختصر)
آشنایی با پایگاه داده های نمونه
بررسی و کار با اجزای اصلی
طراحی یک پایگاه داده جدید
کار با جدولها
کار با داده ها
کار با بازجست ها ( Query )
کار با فرمهای ورود اطلاعات
کار با گزارشها
خودکارسازی با ماکروها
برنامه نویسی با مدولها
کاربرد پیشرفته اجزای اکسس
حفظ امنیت در پایگاه داده
کار با برنامه های کمکی اکسس

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

برای مطالعه ی این دوره ی آموزشی نیاز است کاربران محترم آشنایی مقدماتی با محیط Windows داشته باشند .
جهت نصب و اجرای نرم افزارهای Office که اکسس نیز شامل آن می شود ، نیاز به سیستمی با مشخصات ذیل می باشد :
– حداقل سیستم مورد نیاز پنتیوم ۲۳۳
– ۱۶ مگابایت Ram
– حدود ۶۰۰ مگا بایت فضای آزاد

شروع کار با اکسس

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

مفهوم شی گرائی:

وقتی که در مورد یک برنامه از مفهوم شی گرایی صحبت می کنیم یعنی در هنگام کار با آن همواره با شی های مختلف سروکار دارید و حتما لازم نیست که زبان برنامه نویسی خاصی بلد باشید یعنی در واقع شی گرایی کنترل و مدیریت اشیا و نحوه قرارگیری آنها به جای استفاده از دستورات است. به عنوان مثال وقتی ما می خواهیم در محیطی مانند faxpro یک دکمه ایجاد کنیم که هنگام فشاردادن آن اطلاعات کاربری مشتری در جدول ثبت شود باید دستورات بسیار پیچیده و ویژه ای بنویسیم ولی در محیط اکسس کافی است از قسمت ابزار با استفاده از شی دکمه (وسیله ای جهت ساخت دکمه های مختلف) این دکمه را به راحتی ایجاد می کنیم .

آغاز کار با اکسس:

شما بعد از نصب بسته نرم افزاری آفیس می توانید با رفتن به قسمت start سپس قسمت programs و انتخاب microsoft access وارد محیط اکسس شوید. البته بسته به نحوه نصب شدن برنامه ممکن است برنامه اکسس در قسمت ذکر شده نباشد و به صورت معمول این برنامه در این قسمت قرار می گیرد.

با وارد شدن به محیط اکسس با پنجره ای مانند شکل ۲۱ ظاهر می شود که به شما امکان می دهد تا آنچه را که می خواهید انجام دهید انتخاب کنید.گزینه های موجود در این قسمت به ترتیب زیر است:

۱- Blank access database : با استفاده از این گزینه شما می توانید یک پایگاه داده جدید ایجاد کنید. ۲

– access database wizards : با استفاده از این گزینه شما می توانید با استفاده از جادوگر اکسس که کار شما را بسیار آسانتر می کند یک پایگاه داده بسازید (بعدا به طور مفصل توضیح خواهم داد)

۳- open an exiting file: با این گزینه شما می توانید پایگاه داده ای را که قبل ایجاد کرده اید برای ایجاد تغییرات دوباره باز کنید.

۴- از کادر زیر قسمت ۳ شما می توانید پایگاه داده ای را که به تازگی برروی آن کار کرده اید باز کنید. بعد از انتخاب گزینه مورد نظر شما باید با زدن Ok به مرحله بعدی بروید. اگر هر خواستید با زدن دکمه Cancel به محیط اکسس وارد شوید. (فعلا برای آشنایی با محیط اکسس Cancel را بزیند)
ضمن قابل ذکر است که برای ساختن پایگاه داده جدید آنرا باید در همان ابتدا ذخیره کنید و اینگونه نیست که بعد از پایان کار آنرا ذخیره کنید.

آشنایی با محیط کار:

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

– میله عنوان (Title bar): عنوان پایگاه داده در حال کار در این قسمت ثبت می شود و همچنین کنترل پنجره اکسس از همین قسمت صورت می گیرد(چون فرض ما بر این است که شما بر محیط ویندوز و کنترل پنجره ها مسلط هستید نیاز به توضیح بیشتر نیست)

۲- میله منو (Menu bar): در این میله شما به وسیله منوهای مختلف اقدام به ایجاد. کنترل و ویرایش پایگاه داده می کنید. در زیر توضیح کوتاهی در مورد هر منو آمده است.

——————

الف) File (فایل): فرامین لازم برای بازکردن و بستن پایگاه داده. دریافت داده از سایر پایگاه داده ها. ذخیره داده ها. تغییر خصوصیات پایگاه داده. چاپ و غیره ب) Edit (ویرایش): فرامین لازم برای ویرایش و وارد کردن داده ها
پ) View (مشاهده): فرامین لازم برای انتخاب اجزا مختلف پایگاه داده. تغییر خصوصیات پایگاه داده فعال و غیره را در اختیار شما می گذارد.
ت) Insert (درج): فرامین لازم برای درج اقلام مختلف پایگاه داده
ج) Tools (ابزارها): فرامین لازم برای اجرای برنامه های کمکی مختلف. تحلیل پایگاه داده. امنیت و گزینه های متفاوت پیشرفته پایگاه داده
چ) Windows (پنجره ها): فرامین لازم برای تغییر آرایش پنجره ها در محوطه کاری پایگاه داده
ح) Help (کمک): دسترسی به کمک مستقیم

——————-

۳- میله ابزار (Tool bar): در این قسمت تعدادی از فرامین ضروری و پراستفاده در برنامه قرار دارد. ۴- محوطه کاری پایگاه داده: در این محوطه بزرگ شما بر روی پایگاه داده کار می کنید و داده ها را به آن می افزایید و آنها را ویرایش می کنید.

۵- دستیار: این دستیار برای آن است که شما سوالات احتمالی ممکن خود را به طور مستقیم از او پرسیده و او با جستجو در خود برنامه و همچنین اینترنت تا حد ممکن جواب شما را پیدا کند(البته به صورت انگلیسی)

۶- میله وضعیت: در میله وضعیت اطلاعاتی راجع به کاری که انجام می دهید. نمایش داده می شود. و همچنین خطاها را مشاهده خواهید کرد.

توجه به این نکته ضروری است که در بعضی مواقع که امکان استفاده از بعضی از فرامین موجود نمی باشد آنها به صورت غیر فعال در می آیند.
در اینجا باید تین نکته هم ذکر شود که شما در هنگام انتخاب فرامین از منوها هم می توانید با استفاده از ماوس آنها را انتخاب کنید و هم از کلیدهای میانبر استفاده کنید. روش کار کلیدهای میانبر با استفاده از کلیدهای Ctrl و Alt و حرفی که در هر فرمان زیر آن خط کشیده شده است شما می توانید به صورت خیلی سریع به فشار همزمان آنها به فرمان دسترسی پیدا کنید. این قابلیت هنگامی مفید است که شما در محیط اکسس بسیار ماهر شده اید که دیگر نیاز به استفاده از ماوس ندارید.

خروج از محیط اکسس:

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

پایگاه داده های نمونه

در درس قبل کار با اکسس را آغاز کردیم و در مورد محیط برنامه صحبت کردیم. در این درس قصد داریم ابتدا مختصرا در مورد Help در برنامه صحبت کنیم و سپس به صورت مفصل در مورد پایگاههای داده نمونه که در خود اکسس موجود است صحبت کنیم.

دسترسی به راهنما:

راهنمای برنامه برای کسانی که آشنایی کامل به زبان انگلیسی دارند می تواند مانند یک مرجع کامل و معتبر باشد مثلا هرگاه در مورد عملکرد پایگاه داده. طراحی جدول. یا تعریف بازجست مشکل داشتید می توانید از راهنمای برنامه که به زبان انگلیسی ساده و روان نوشته شده استفاده کنید و مسلما در مورد سوال شما چه در خود برنامه یا تحت وب جوابی پیدا خواهد شد. در اکسس راههای مختلفی برای دسترسی به راهنما وجود دارد که متداولترین آنها استفاده از منو Help است.که فرمامین موجود در این منو را شرح می دهیم:

۱- Microsoft access Help : این فرمان دستیار را فعال می کند در صورتی که دستیار فعال باشد وارد سیستم راهنمایی می شود. شما می توانید با انتخاب این گزینه سوالات خود را از دستیار بپرسید و او نزدیکترین جواب را به سوال شما خواهد داد این امکان بسیار می تواند برای شما مفید باشد و دستیار مانند یک شخص ماهر به تمامی سوالات شما به طریقی پاسخ خواهد داد.

۲- Hide The Office Assistant: شما می توانید با استفاده از این فرمان دستیار را مخفی کنید و این در مواقعی به کمک شما می آید که دستیار قدرت دید شما در محیط را کاهش دهد.

۳- What`s This: با استفاده از این گزینه ماوس شما به یک علامت سوال تبدیل می شود و هر کجایی از محیط که کلیک کنید در مورد آن شما را راهنمایی می کند.

۴- Office On The Web: به کمک این گزینه می توانید به سایت ماکروسافت رجوع کنید و آخرین امکانات و اصلاحات در برنامه و همچنین متداولترین سوالها را بپرسید.

۵- Detect and Repair: با استفاده از این گزینه اگر در برنامه اکسس شما ایرادی باشد به صورت اتوماتیک رفع می شود.

۶- About Microsoft Access: در مورد نسخه فعلی اکسس اطلاعاتی در اختیار شما می گذارد.

یکی دیگر از راهنمایی ها که در اکسس موجود است راهنمای شناور است به این ترتیب که با نگه داشتن نشانه ماوس بر روی یک فرمان به مدت چند ثانیه اسم و شاید راهنمایی کوچکی در مورد آن فرمان ظاهر شود. با توجه به اینکه بیشتر خوانندگان این درس با محیط ویندوز و راهنمای آن آشنا هستند و راهنمای اکسس نیز مانند آن است من نیاز بیشتری به توضیح نمی بینم.

سیری در پایگاه داده های نمونه:

در اکسس چهار پایگاه داده نمونه وجود دارد که می توانید آنها را باز کرده. بررسی نموده و یا مورد استفاده قرار دهید.(البته این نکته قابل ذکر است که شما حتما باید در موقع نصب این پایگاهها را انتخاب کرده باشید تا نصب شوند وگرنه با قراردادن CD در درایو و نصب دوباره آنها کار را دنبال کنید) این پایگاهها برای کسانی که تازه شروع به کار با اکسس می کنند بسیار مفید است و چیزهای مفیدی را در برمی گیرد.

بعد از نصب پایگاه داده نمونه شما می توانید با استفاده از منو File و گزینه Open به پوشه Samples در جایی که اکسس را نصب کرده اید رفته و پایگاه داده را بازکنید(امکان دارد این پایگاه داده به صورت پیش فرض در پایین ترین قسمت منو File موجود باشد) ما در این درس به توضیح پایگاه داده Northwind خواهیم پرداخت.

قبل از شروع کار باید این نکته را ذکر کنم که تمامی فایلها و جدولهای اکسس در فایلی با پسوند MDB ذخیره می شود.
پایگاه داده Northwind امکان تمرین با یک نرم افزار پایگاه داده کامل را به شما می دهد. این پایگاه داده یک نرم افزار کنترل موجودی برای شرکت فرضی Northwind Traders است. بعد از باز کردن این پایگاه داده که ممکن است مدتی طول بکشد. صفحه ابتدایی ظاهر می شود که شما می توانید با کلیک روی Ok این پنجره را رد کنید. بعد از این کار پنجره Database این پایگاه نشان داده خواهد شد. این پنجره جایی است که اکثر کارهای اکسس در آن انجام می شود. این پنجره هفت شاخص دارد که شما را به شش جز اصلی Access می برد. این پنجره در شکل ۳۱ نشان داده شده است.

برای حرکت در صفحات پنجره Database با ماوس برروی شاخصهای کناری پنجره کلیک کنید. کلماتی که در هر صفحه مشاهده می کنید. معرف جداول. پرسانه ها. فرمها. گزارشها. ماکروها و برنامه های خاص این پایگاه است. مثلا نام یکی از جداول پایگاه داده Shippers است. اگر برروی هر یک از جداول دوبار کلیک کنید جدول مورد نظر باز می شود.

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

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

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

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

آموزش اکسس ( بخش دوم )

بررسی اجزای اصلی

در درسهای گذشته به طور کامل با محیط اکسس آشنا شدیم و امیدوارم که شما تمامی پایگاهای نمونه را بررسی کرده باشید و کاملا مفهوم کار با اکسس برای شما روشن شده باشد. درس این جلسه یکی از مهمترین دروس در رابطه با اکسس است و شما حتما سعی کنید به طور کامل این درس را بفمید و حتما در مورد این درس اگه سوالی بود بپرسید چون واقعا فهمیدن این قسمت از اکسس کار را بسیار ساده خواهد کرد.
در این درس ما با بخشهای مختلف پنجره Database آشنا می شویم و چگونگی استفاده از هر یک را توضیح خواهیم داد. می توان گفت پنجره Database سکوی پرتاب شما به سوی Access است, تمامی فعالیتهای که در اکسس انجام می شود از این محل شروع می شود, آشنایی با این پنجره می توان گفت آشنایی با خود اکسس است. بعد از یادگیری این بخش ار اکسس شما براحتی خواهید توانست دیگر خصوصیات پایگاه داده را یاد بگیرید. من به شما توصیه می کنم یکی از پایگاههای داده نمونه را باز کنید تا هنگام درس اجزای اصلی پنجره Database را مشاهده کنید.

معنی دقیق پایگاه داده ها

به احتمال بسیار قوی شما با مفهوم پایگاه داده آشنا هستید ولی ما برای ادامه کار اشاره کوچکی به آن می کنیم. شاید اساسی ترین تعریف پایگاه داده این باشد:

پایگاه داده: مجموعه ای از داده های مرتبط به هم است.

در واقع این تعریف شامل هر نوع فایل داده ای که با آن کار می کنید می شود. مثلا نامه, گزارش و کتاب مجموعه ای از داده ها به صورت کلمات مرتبط به هم است. یا فایلهای گرافیکی داده های مرتبطی است متشکل از نقاط رنگی بسیاری (پیکسل) که تصویر را تشکیل می دهند. با توجه به اینکه ممکن است تعریف بالا کمی پیچیده و عمومی تر باشد در زیر اشاره به تعریفی خاص در مورد پایگاه داده در اکسس می کنیم:

پایگاه داده اکسس: مجموعه ای است از داده های مرتبط و ابزارهایی که با استفاده از آنها با داده ها کار می کند.
بنابراین پایگاه داده در اکسس از فایلهای داده مرتبط به یکدیگری تشکیل شده است که به همراه ابزارهایی که شی نامیده می شوند به شما امکان دسترسی, گردآوری و گزارش گیری از داده ها را می دهد. هر پایگاه داده ارتباطی برخلاف انواع دیگر فایلها مجموعه هایی از داده ها را شامل می شود که به آنها جدول گفته می شود. در خارج پایگاه داده, هر جدول, ممکن است بعنوان یک فایل مجزا در نظر گرفته شود. مثلا یک پایگاه داده تجاری ممکن است شامل فایل مرتب شده ای از سفارشات خریداران, فایل موجودی, فایل فهرست نشانی خریداران, فایل اطلاعات کارمندان و فایل دستمزد باشد که تک تک این فایلها در اکسس به صورت جدول هستند.
بدون ساخت پایگاه داده ها, هریک از این فایلها را باید جداگانه مدیریت کرد, اما پایگاه داده ها قادر است تا در صورت وجود مقادیر مشترک. این جدولها (فایلها) را به هم مرتبط کند, مثالی در این مورد کد مشترکی است که در جدول مشتریان و جدول سفارشات مشتریان وجود دارد.

توجه:

اکسس پایگاه داده ارتباطی نامیده می شود زیرا می تواند جداول داده ها را براساس مقادیر مشترک به یکدیگر مرتبط کند.
جدول خریداران (فایل داده های خریداران)ممکن است شامل کد, نام و نشانی هر خریدار باشد. جدول سفارشها, ممکن است شامل اطلاعات سفارش هر خریدار در طی یکسال گذشته باشد. در اینجا باید توجه کرد که جدول سفارشها نباید نام و نشانی خریداران را داشته باشد فقط کد آنها کافی است. اگر تمامی اطلاعات خریدار در جدول سفارش نیز موجود باشد اینکار سبب هدر رفتن وقت و وجود اطلاعات مشابه و تکراری بسیار خواهد شد و همچنین در موقعی که مثلا نشانی خریدار عوض می شود باید تمامی سفارشها را چک کرد و همه را عوض کرد ولی در موقعی که فقط کد در جدول سفارشها می باشد نیازی به تغییر در جدول سفارشها نیست و فقط باید جدول خریدار عوض شود.

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

هر پایگاه داده, علاوه بر جداول, شی های دیگری نیز دارد. هرچند که شاید جداول یک پایگاه داده مهمترین شی آن باشد (جداول, داده های پایگاه داده را نگهداری می کنند). اشیای دیگر در پنجره Database ما را در مدیریت, پهنگام سازی و گزارش گیری از جداول همیاری می کنند. اکثر پایگاههای داده اکسس از بجز جدولها که در تمام پایگاهها موجود است از بیشتر عناصر پنجره Database نیز استفاده می کنند.

توجه:

هر از چند گاهی به پنجره پایگاه داده, ظرف پایگاه داده نیز گفته می شود زیرا تمامی اشیای پایگاه داده را شامل می شود.
حال هر یک از اجزا در پنجره Database را به طور مختصر توضیح می دهیم:(این اجزا در زیر ستون Objects قرار دارند و به اجزای اصلی مشهورند)

———————

۱-جدولها(Tables):
مجموعه ای از داده ها را که به یک موضوع مشخص مربوط هستند در خود نگهداری می کنند. مثلا اگر یک سیستم حسابداری خانگی ایجاد کنید باید جدولی برای درآمدها, جدولی برای مخارج, جدولی برای هزینه های مشخص و غیره ایجاد کنید.

۲-بازجست ها(Queries):
زیرمجموعه ای از داده ها را ایجاد می کند, که برای گزارشگیری و جستجو قابل استفاده می باشند. مثلا اگر شما بخواهید کلیه مخارجی را که در ۱۰ روز آتی پرداخت شده اند را بدست آورید باید از بازجست استفاده کنید.

۳-فرمها(Forms):
صفحه ای گرافیکی برای ورود داده ها یا نمایش آنها را نشان می دهد که از فرمهای کاغذی تقلید شده است. فرم, روش ساده ای است برای مشاهده تمام یا بخشی از داده ها. مثلا شما می توانید یک فرم مانند صفحه چک درست کنید و هر وقت چکی پرداخت کردید در وارد کردن صورتحساب یک چک معمولی را در صفحه پر کنید.

۴-گزارشها(Reports):
فهرست شکل بندی شده ای از داده ها را چاپ می کند. یک گزارش ممکن از مواردی از یکی از جداول, فهرستی از اقلام انتخاب شده, تمامی اقلام یک جدول یا فهرستی از مقادیر گوناگون از جداول مختلف را چاپ کند. مثلا شما میتوانید در حسابداری خانه گزارشی از کلیه بدهی هایتان بگیرید.

۵-صفحه ها(Pages):
عملی مشابه گزارشگیری را انجام می دهد با این تفاوت که در این حالت گزارش به صورت یک صفحه اینترنتی به بیرون داده می شود و موارد استفاده آن در طراحی صفحات اینترنتی است.

۶-ماکروها(Macros):
بسیاری از کارهای متداول اکسس را خودکار می کند. مانند مرتب کردن داده ها, ایجاد گزارشها و ایجاد سرجمع ها. مثلا سیستم پایگاه داده حسابداری خانه می تواند ماکرویی برای محاسبه گردش پولی در یک ماه داشته باشد.

۷-مدولهای برنامه(Macros):
قابلیت خودکار کردن اکسس و ایجاد سیستم های آماده برای کار را فراهم می کند, بطوری که برای افرادی که چیزی از اکسس نمیدانند قابل استفاده باشد. زمانی که برنامه ای برای اکسس می نویسید, در واقع آن را برای انجام کارهای پیچیده ای برنامه ریزی می کنیدکه از طریق منوها و ماکروها بخودی خود امکان انجام آن نیست. در واقع ماکروهای اکسس شکلی از مدولهای ترجمه شده هستند, بدین معنی که ماکروها شما را در راستای تمامی اطلاعات لازم برای تکمیل یک فرمان Visual Basic for Applications هدایت می کنند. برخی افراد پس از سالها استفاده از اکسس هیچگاه به مدول نویسی نیازی نداشته اند. اگر سابقه برنامه نویسی نداشته باشید, نوشتن برنامه دشوار است. ولی به نظر من شما فقط در واقع خیلی پیچیده به مدولها نیاز خواهید داشت.

———————

توجه به این نکته ضروری است که پایگاه داده ممکن است پیوسته در حال تغییر باشد. مثلا شما با توجه به نیازهایی که پیش می آید اقدام به ساخت جدولهای جدید و ایجاد گزارشهای دیگری کنید. در شکل ۴۲ در زیر شما شش شی پایگاه داده را که ترکیب آنها پایگاه داده مستقلی را شکل می دهد, مشاهده می کنید. شاید یکی از مشکلترین چیزهائی که در هنگام کار با اکسس باید راجع به آن تصمیم گیری کنید این است که چه وقت مجموعه ای از اطلاعات را در پایگاه داده جدید یا پایگاه داده موجود قرار دهیم.

پایگاه داده می تواند هدفی گسترده داشته باشد, هر پایگاه داده معمولا یک برنامه کاربردی است. در مثالهای زیر به کاربردهای پایگاه داده های خاص اشاره ای می شود:
۱-اگر بخواهید حسابهای شما با یکدیگر بده-بستان یا تعامل داشته باشند, حساب دفتر کل به یک پایگاه داده مجزا احتیاج دارد. هنگامی که از حسابی پرداختی انجام می دهید, می خواهید تا هم در جدول پرداختها و هم در جدول حسابها منعکس شود.
۲-اگر بخواهیم یک سیستم مستقل پرداخت دستمزد داشته باشید, بطوری که بخش پرداخت دستمزد منحصرا برای پرداخت چک و نگهداری سوابق پرداخت مورد استفاده قرار گیرد, سیستم دستمزد نیز یک پایگاه داده مجزا نیاز دارد.
۳-نرم افزار بودجه بندی, برای بودجه بندی هریک از حسابهای خانه, از قبیل پرداختهای قبض, حساب اتومبیل و گزارش گیری از تمامی حسابها, به یک پایگاه داده مجزا نیازمند است.
۴-یک سیستم کنترل موجودی به پایگاه داده ای نیازمند است تا بتواند ثبتهای موجودی مربوط به شرکت را پیگری, بهنگام و نگهداری کند.
باید توجه داشت که فهرست بالا تنها چند مورد مثال خاص می باشد که بسیار مختصر است و فقط برای آشنایی ذکر شده اند. به طور کلی باید ذکر کرد هر یک از جداولی که به نوعی با هم در ارتباط هستند باید در یک پایگاه داده قرار داده شوند.

استفاده از اجزا’ پنجره Database:

هنگامی که یک پایگاه داده جدید ایجاد می کنید, اکسس یک پنجره Database خالی را نمایش می دهد که برای هر یک از هفت شی پایگاه داده در آن شاخصی وجود دارد.اگر قصد کار کردن با هر یک از این هفت شاخص را دارید باید بر روی آن کلیک کنید مثلا اگر قصد ایجاد ماکرو را دارید باید بر روی گزینه Macros در پنجره Database کلیک کنید. بسته به انتخابی که شما از شاخصها می کنید در بالای پنجره Database کلیدهای فرمان مختلفی نمایش داده می شود که در زیر به طور مختصر به معرفی آنها می پردازیم:

———————

۱-باز کردن(Open): برای باز کردن شی موجود مثلا باز کردن یک جدول یا یک فرم

۲-طراحی(Design):برای ایجاد تغییر در شی که با انتخاب این فرمان حالت نمایشی Design پدیدار می شود مثلا شما اگر بعد از ایجاد یک فرم قصد ایجاد تغییر در آن را داشتید باید بر روی Design کلیک کنید.

۳-جدید(New):برای ایجاد شی جدید مثلا ایجاد جدولی جدید

۴-بازنگری(Preview):
این فرمان فقط در قسمت گزارش وجود دارد و برای مشاهده گزارش قبل از چاپ می باشد.

۵-اجرا(Run):یک فرمان در شاخصهای ماکرو و مدول وجود دارد و برای اجرای یک ماکرو یا مدول(برنامه) به کار می رود.

۶-حذف(Delete): در تمامی شاخصها موجود است و برای حذف شی به کار می رود. این راحترین قسمت است.

۷-مرتب سازی: چهار گزینه بعدی که در همه شاخصها موجود است برای مرتب سازی اشیا به کار می رود و درست مانند مرتب سازی آیکونها در ویندوز عمل می کند.

———————

هنگامی که شی جدیدی ایجاد می کنید باید آنرا نامگذاری کنید. می توانید نامهایی با حداکثر درازی ۶۴ کاراکتر(حرف و عدد), که در آن فاصله نیز می توان استفاده کرد اختیار کنید.با ایجاد و نامگذاری یک شی آن شی در پنجره Database نمایش داده خواهد شد.
درس این جلسه تا بدینجا بود در درس بعدی در مورد هر یک از شاخصها به طور مفصلتر بحث خواهیم کرد. پیشنهاد می کنیم قبل از آنکه به درس بعدی بروید اجزایی که یاد گرفتید آشنایی کامل پیدا کنید.

نگاهی کلی به اجزای اصلی

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

نگاهی به جداول:

اگر پایگاه داده, هیچ شی دیگری نداشته باشد, همواره باید حداقل یک جدول داشته باشد. داده های پایگاه داده را جدول نگهداری می کند. همانطوری که در درس قبل اشاره شد,جداول اغلب با مقادیر داده مشترک به یکدیگر مرتبط می شوند, به ترتیبی که دو یا چند جدول نباید داده های زیادی یا تکراری داشته باشند. برای نمایش اسامی جداول موجود در پایگاه داده بر روی شاخص Tables در پنجره Database کلیک کنید. برای باز کردن و مشاهده محتویات هر جدول می توانید بر روی نام آن جدول دوبار کلیک کنید. که در این حالت Access جدول را در حالت نمایش Datasheet یا کاربرگ باز می کند,که در این حالت شما می توانید داده های موجود در جدول را مشاهده کنید.
معمولا در حالت نمایشی کاربرگ تمامی داده های یک سطر جدول در صفحه نمایش جا نمی گیرد. برای مشاهده بقیه داده های هر سطر می توانید از میله های گردش افقی پنجره در زیر آن استفاده کنید و به چپ و راست بروید.
جدول برای مشاهده و کار با آن, به حالات دیگری هم برای نمایش نیاز دارد. در حالیکه حالت نمایشی Datasheet یا کاربرگ امکان مشاهده, افزودن, حذف و اصلاح داده های جدول را می دهد, حالت نمایشی طراحی که در اکسس با عنوان Design view شناخته می شود امکان تغییر شکل جدول و طراحی خود جدول را فراهم می کند. البته وقتی که بیشتر راجع به ساختار جدول صحبت کردیم شما تصویر بهتری از حالت طراحی خواهید داشت. به طور کلی حالت Datasheet برای اضافه کردن و مشاهده داده ها و حالت طراحی برای طراحی و تغییر خود جدول نه داده ها به کار می رود.
برای دیدن جدول در حالت نمایشی طراحی یا Design می توانید جدول خود را انتخاب کرده و سپس بر روی دکمه design در بالای پنجره Database که قبلا معرفی شد کلیک کنید. بعد از باز کردن پنجره در حالت Design ملاحظه خواهید کرد که در این حالت هیچ خبری از داده های موجود در جدول نیست و فقط شکل جدول در این حالت در دسترس است.
اگر جدول را در حالت Datasheet باز کرده اید و قصد رفتن به حالت design را دارید این کار را می توانید با استفاده از منو view و انتخاب دو حالت Datasheet view و Design view انجام دهید و به راحتی بین دو حالت جدول حرکت کنید.
جدول ساختاری مشخص و اکید دارد. داده های جدول در داخل جدول درون سطرها و ستونها جدول قرارگرفته و سازماندهی می شوند که به این سطرها و ستونها به ترتیب رکورد و فیلد گفته می شود(حتما به خاطر بسپارید سطر در معنای رکورد و ستون در معنای فیلد به کار می رود.)
هر رکورد جدول بیانگر یک داده مستقل است. مثلا: در جدول اقلام موجودی در انبار هر رکورد جدول نشان دهنده یکی از انواع قطعات موجود در انبار است.هر فیلد رکورد, نشانه دهنده جزیی از داده های مربوط به هر قطعه, مانند شماره قطعه, تعداد و شرح است. اگر قطعه ای ۳۲ عدد موجود باشد, رکورد قطعه فقط یک بار در جدول تکرار می شود اما میزان موجودی در فیلد تعداد منعکس می شود. با توجه کردن به شکل ۵۱ زیر بیشتر مفهوم این بیان را خواهید فهمید.

این که تمامی رکوردها, فیلدهای مشابهی دارند, به این معنی نیست که تمامی فیلدهای هر رکورد باید پر باشد. مثلا یک جدول موجودی, ممکن است فیلدی به نام قیمت خرده فروشی داشته باشد, ولی فقط تعداد اندکی از رکوردها, مقداری را در این فیلد نگه داشته باشند. بنابراین برخی از رکوردها قیمت خرده فروشی ندارند علیرغم اینکه پاره ای از رکوردهای جدول, قیمت خرده فروشی دارند.
توجه به این نکته ضروری است که فیلد مشترک مانند شماره قطعه یا کد مشتری, مبنای ارتباط بین دو جدول مرتبط را تشکیل می دهد و امکان خالی رد کردن این فیلدها داده نمی شود.
وجود فیلد مشترکی که دو جدول را به یکدیگر مرتبط می کند, بدین معنی است که امکان رهائی کامل از داده های تکراری وجود ندارد. برای دو جدول مرتبط, داده ها باید تکرار شوند زیرا هر دو جدول باید فیلدهای مشترکی برای ارتباط داشته باشند. شاید اگر برای تمامی داده ها یک جدول بزرگ ایجاد کنید, مجبور به داشتن فیلدهای تکراری نباشید, اما با اینکار زمان زیادی را در ورود داده ها هدر خواهید داد, چون در هر رکورد باید تمامی فیلدهای پایگاه داده وجود داشته باشد و از طرفی بعضی مواقع هم امکان ایجاد یک جدول بزرگ وجود ندارد پس ما مجبور به استفاده از چندین جدول هستیم که بهترین راه برای جلوگیری از افزایش تعداد داده های مشترک استفاده از ارتباط فیلد مشترک است.
بعد از کار با جدول می توانید جدول را با استفاده از منو File و گزینه Close ببندید.

نگاهی به بازجست:

برای مشاهده بازجستهای هر پایگاه داده باید بر روی شاخص Queries در پنجره Database استفاده کنید. برای باز کردن هر بازجست می توانید بر روی نام آن دوبار کلیک کنید یا بد از انتخاب آن به وسیله ماوس بر روی دکمه Open در بالای پنجره Database کلیک کنید.
هنگامی که بازجستی را باز می کنید, اکسس آن بازجست را در حالت نمایش Datasheet مربوط به بازجست باز می کند, که کاملا مشابه حالت نمایشی Datasheet مربوط به جدول است. تنها تفوت در آن است که حالت نمایشی Datasheet مربوط به بازجست معمولا به اندازه جدول, داده و اطلاعات ندارد. در واقع این حالت نمایشی میزان محدودی از داده ها را, که مقصود اصلی از ایجاد بازجست است نمایش می دهد. بازجست, داده ها را از یک یا چند جدول انتخاب می کند و می توانید زیرمجموعه ای از داده ها را به عنوان جدول یا گزارش نمایش دهید. در بیشتر مواقع مقدار داده های پایگاه داده بیشتر از آن است که مایل به مشاهده هستید. هدف از ایجاد بازجست, محدود کردن مقدار داده های به نمایش درآمده است. بازجست انتخابی از جمله متداولترین انواع بازجست ها است. بازجست انتخابی, داده ها را میان دو یا چند جدول انتخاب کرده و نمایش می دهد. علاوه بر حالت نمایشی Datasheet که مانند حالت نمایشی جدول می باشد بازجست را می توان در حالت نمایشی Design نیز باز کرد که مربوط به حالت طراحی بازجست است و برای رفتن به این حالت می توانید درست مانند جدول رفتار کنید و یا با انتخاب بازجست مورد نظر و کلیک روی دکمه Design در بالای پنجره Database این حالت را نمایان کنید.
همانطور که مشاهده می کنید حالت طراحی Design مربوط به بازجست, ظاهر پیچیده ای دارد. اما بعد از آشنایی کامل با بازجست ایجاد و اجرای آن برای شما بسیار ساده خواهد بود. ایجاد بازجست در حالت طراحی Design و نمایش آن در حالت نمایشی Datasheet صورت می پذیرد. بعد از پایان کار خود با بازجست می توانید بوسیله منو File و گزینه Close بازجست را ببندید.

نگاهی به فرم:

برای مشاهده فرمهای یک پایگاه داده, از شاخص Form در پنجره Database استفاده می کنیم. برای مشاهده محتوای هر فرم می توانید در روی نا آن دوبار کلیک کنید و یا پس از انتخاب فرم مورد نظر بر روی دکمه Open در بالای پنجره Database کلیک کنید.
بعد از باز کردن فرم مورد نظر اکسس آنرا در حالت نمایش Form یا Form View نشان خواهد داد. حالت نمایشی Form, فرم را در شکل نهایی آن نشان می دهد و امکان ورود, اصلاح و نمایش داده ها را فراهم می سازد. کلیدهای راهبری که در زیر اکثر حالات نمایشی وجود دارد, شماره رکورد و تعداد کل آنها را نمایش می دهد.
چهار کلید اطراف نشانگر رکورد, برای گرداندن فرم و نمایش رکوردهای مختلف به کار می رود. شما می توانید رکوردهای اول, بعدی, قبلی و آخری را مشاهده کنید. شماره بین کلیدها, شماره رکورد جاری که فعلا مشاهده می کنید است.اگر بر روی شماره رکورد جاری, شماره رکورد جدیدی را وارد کنید اکسس در صورت وجود آن رکورد آنرا در فرم نمایش می دهد.کلیدهای راهبری که در منتهی الیه سمت راست قرار دارد, امکان ایجاد رکورد جدیدی را با یک فرم خالی فراهم می سازد. همانطور که مشاهده می کنید کلیدهای راهبری مشابه کلیدهای کنترلی پخش صوت طراحی شده اند. با توجه کردن به شکل ۵۲ در زیر مفهوم کلیدهای راهبری را بیشتر درک خواهید کرد.

حالت نمایشی Design در مورد Form نیز شکل فرم را نشان می دهد. برای دسترسی به این حالت شما می توانید درست مانند جدول رفتار کنید و یا با انتخاب فرم مورد نظر بر روی دکمه Design در بالای پنجره Database کلیک کنید. شاید برای شما در این لحظه شکل آن عجیب به نظر بیاید ولی وقتی در درسهای آتی روش ایجاد فرم را فراگرفتید, نحوه خواندن حالت نمایشی Form را نیز خواهید فهمید. با دستکاری در حالت نمایشی Design, می توانید نحوه نمایش داده های درون فرم را تغییر دهید.
در درون فرم حالت نمایشی دیگری نیز وجود دارد و آن حالت نمایشی Datasheet است. که برای دسترسی به آن بعد از باز کردن فرم مورد نظر می توان از منو View گزینه Datasheet را انتخاب کرد.این حالت کاملا شبیه حالت نمایشی Datasheet در جداول است. مزین حالت نمایشی Datasheet به حالت نمایشی معمولی فرم در این است که در این حالت تعداد رکورد بیشتری نمایش داده می شود در حالی که در حالت نمایش معمولی فقط یک رکورد نمایش داده می شود. البته در درسهای آتی بیشتر در مورد این حالت نمایشی صحبت خواهد شد.
بعد از پایان کار با فرم می توانید به وسیله منوی File و گزینه Close از فرم مورد نظر خارج شوید.

نگاهی به گزارش:

برای نمایش گزارشهای هر پایگاه داده می توان از شاخص Reports در پنجره Database استفاده کرد. هرچند که می توان گزارشها را روی صفحه نمایش بازنگری کرد ولی وقتی که آنها را بر روی کاغذ چاپ کنیم بسیار مفیدتر خواهند بود. اگر بخواهیم قبل از چاپ محتوای گزارش را مشاهده کنیم می توانیم بر روی نام گزارش مورد نظر دوبار کلیک کنیم یا با انتخاب گزارش موردنظر بر روی دکمه Preview در بالای پنجره Database کلیک کنیم. (البته باید توجه کرد که گزارش تنها مختص چاپ کردن نیستند و کاربردهای دیگری نیز دارند)
شما می توانید گزارشی بسازید که تمامی داده های یک جدول, چندین جدول, بازجست را نمایش دهد.با باز کردن گزارش شما آنرا در حالت Print Preview (بازنگری چاپ) به نمایش در خواهید آورد.بازنگری چاپ گزارش را در شکل نهایی آن نشان می دهد, اما بجای چاپ گزارش, آنرا برروی صفحه مشاهده می کنید, تا قبل از چاپ گزارش از صحت آن مطمئن شوید.
در حالت Print Preview در مورد گزارش, امکان تغییر, اضافه یا حذف داده ها از پایگاه داده وجود ندارد. ولی با استفاده از آن می توانید مقادیر مختلفی از اطلاعات را مشاهده کنید. دقت داشته باشید که در هنگام حرکت ماوس بر روی پنجره Print Preview, مکان نمای ماوس به یک ذره بین تبدیل می شود. در این حالت اگر با ماوس کلیک بزنید, تصویر بزرگ شده گزارش را مشاهده می کنید, بدین تزتین می توانید گزارش را از نزدیک مرور کنید.
حالت نمایشی Design در مورد گزارش شکل آنرا نشان می دهد.برای دسترسی به این حالت می توان درست مانند اجزا دیگر عمل کرد ویا با انتخاب گزارش مورد نظر بر روی دکمه Design در بالای پنجره Database کلیک کرد.بعدا با استفاده از حالت نمایشی Design شکل گزارش را تغییر خواهیم داد.

نگاهی به صفحه ها:

برای نمایش صفحه های وب موجود در یک پایگاه داده می توانید بر روی شاخص Pages در پنجره Database کلیک کنید. صفحه ها در یک پایگاه داده اکسس برای استخراج داده ها از جدول به یک صفحه وب مورد استفاده قرار می گیرند درست مانند گزارش با این اختلاف که این بار به جای چاپ صفحه گزارش آنرا در یک مرورگر وب مانند IE می تواند مشاهده کرد. من نمی خواهم زیاد در مورد صفحه ها در این قسمت توضیح دهم زیرا کارکرد آنها بسیار شبیه گزارشها می باشند و هر کاری که با گزارش انجام دادیم می توانید با این صفحه ها نیز انجام دهید فقط به خاطر داشته باشید که اینها هر کدام یک صفحه وب می باشند. در صفحه ها نیز مانند گزارش ها حالت نمایشی Design برای طراحی استفاده می شود.
می توان بزرگترین تفاوت بین گزارشها و صفحه ها را پویاتر بودن صفحات بیان کردن بدین معنی که شما بهتر از گزارش می توانید اطلاعات موجود در پایگاه داده را مرور کنید و بین آنها حرکت کنید.

نگاهی به ماکروها:

ماکروها فهرست فرامینی است که در آنها کارهایی که معمولا از طریق صفحه کلید انجام می دهید, تعریف می شود. مثلا می توانید ماکرویی ایجاد کنید که هنگام وقوع شرایطی خاص مثل هنگامی که میزا فروش چیزی از تعداد یا مقدار مشخصی کمتر شود, گزارش مشخصی را چاپ کند. البته با استفاده از منوها نیز می توانید گزارش مورد نظر را چاپ کنید ولی ماکرو مراحل کار را خودکار می کند, بدین ترتیب کی توانید با فشار کلید فرمان روی فرم, گزارش را چاپ کنید.
به این نکته توجه کنید که ماکروها اغلب به کلیدهای فرمان وصل می شوند تا اجرای آنها برای کاربر ساده باشد چون به هرحال شما استفاده کننده هستید و مایلید تا کارها تا حد امکان ساده انجام شود.
توجه کنید که کلید Run در بالای صفحه Database ماکرو را اجرا می کند ولی تا زمانی که نحوه عملکرد آنرا در برنامه نمی دانید به هیچ وجه اقدام به اجرای آن نکنید.
هرگاه بخواهید محتویات ماکرو را از پنجره Database مشاهده کنید باید نام ماکرو مورد نظر را انتخاب کرده و بر روی دکمه Design در بالای پنجره Database کلیک کنید که در این حالت حالت نمایش Design مربوط به ماکرو را مشاهده می کنید. فهرست اعمال ماکرو را در این پنجره مشاهده می کنید به احتمال قوی این اعمال مرموز به نظر می رسندولی به مرور با آنها آشنا خواهید شد.
چون ماکرو فهرست کارهای خودکار شده است و شما هنوز نمی دانید اکسس چه کارهایی می تواند انجام دهد پس در این مقطع نمی توان کار زیادی برای افزایش درک نسبت به ماکرو کرد. پس از پایان کار با ماکرو آنرا به وسیله منو File . گزینه Close ببندید.

نگاهی به مدول ها:

مدولها برنامه های کاملی هستند که با Visual Basic for Applications نوشته می شوند, و برای خودکار کردن کارها به کار می روند.برخلاف ماکروها که ساده هستند برنامه کاربردی را می توان به نحوی ایجاد کرد که به هر حرکت استفاده کننده پاسخ داده و عکس العمل نشان دهد. ما در درسهای آینده به چگونگی کار مدولها خواهیم پرداخت ولی به دلایل زیر به طور کامل آنرا توضیح نخواهیم داد:

—————-

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

—————

اگر قبلا برنامه نویسی کرده باشید, خصوصا با یکی از زبانهای مشابه Basic مانند Qbasic و BasicA یا Visual Basic در استفاده از مدولها مشکل خاصی نخواهید داشت.
البته در کلاسهای این سایت یکی از همکاران من دروس Visual Basic را برای شما عزیران تدریس می کنند که بسیار مفید و پرمحتوا می باشد و شما تما با دنبال کردن دروس این همکار عزیز براحتی کار با مدولها را یاد خواهید گرفت و من نیز شما را در این راه یاری خواهم کرد.
پس از پایان کار با مدول می توانید از منو File و گزینه Close اقدام به بستن مدول بکنید.

———————

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

درک بهتر مفهوم ارتباط

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

درک ارتباط بین جداول:

قبلا گفته شد که جداول از طریق فیلدهای مشترک به یکدیگر مرتبط هستند. هرچند که فیلدهای مشترک مرتبط شده, سبب تکرار برخی داده ها میشوند.(در هرجدولی که به دیگری مرتبط است خود فیلد مشترک دوباره ظاهر می شود), ولی خواهید دید که وقتی قدام به ایجاد پایگاه داده می کنید, فیلد مشترک کمک می کند تا بسیاری از داده های تکراری, که در صورت نبود فیلد مشترک ایجاد می شود, از بین ببرید.
ممکن است واژه شناسی پایگاه داده ها گیج کننده باشد اما خوشبختانه ساده ترین زبان زبان ارتباطی است, که چگونگی ارتباط جداول به یکدیگر را تعریف می کند. در این درس به سه روش ارتباط خواهیم پرداخت: ۱-ارتباط یکی به یک ۲-ارتباط یک به چند ۳-ارتباط چند به چند

فیلدهای کلیدی منحصر به فرد رکوردها:

قبل از تشریح ارتباطات جداول, دقت داشته باشید که اغلب جداول پایگاه داده, فیلدی به نام فیلد کلید دارند, که به سایر فیلدهای جدول تقدم دارد. هرچند که فیلد کلید لزوما مهمترین ارزش اطلاعاتی را ندارد, ولی دری هستند برای ورود به جدول که نیاز اصلی ما در ارتباط شمرده می شود.فیلد کلید, فیلدی از جدول است که بصورتی منحصر به فرد هر رکورد را تبیین می کند.(یعنی امکان اینکه فیلد کلید در دو رکورد مانند هم باشند وجود ندارد.)
توجه: فیلد کلید اصلی جدول باید مقداری منحصر به فرد داشته باشد. اکسس امکان تعیین چندین فیلد کلید را می دهد. اگر کلید از چندین فیلد تشکیل شده باشد, یک یا چند تا از این فیلدها ممکن است داده های تکراری داشته باشندولی وقتی ترکیب شوند, فیلد ادغامی باید مقدار منحصر به فردی را ایجاد کند. توجه بیشتر به این مثال خالی از لطف نیست: جدول کارمندان معمولا شامل فیلدهایی از قبیل نام کارمند, نشانی, تاریخ تولد, میزان حقوق می شود. بعلاوه همیشه مانند کد ملی, یک شماره کارمندی دارند. کد ملی شما منحصر به فرد است یعنی تنها به یک نفر اختصاص دارد بنابراین این شماره کارمندی فیلد کلیدی خوبی برای فایل کارمندان است. به شکل ۶۱ در زیر توجه کنید:

برای دسترسی به نام, نشانی یا حقوق هر کارمند, صرفنظر از تعداد کارمندان جدول اکسس فقط به شماره کارمند احتیاج دارد.هر کارمند شماره منحصر بفردی دارد لذا هنگامی که اکسس یکبار شماره کارمندی را گرفت, می تواند آنرا با رکوردی از جدول پیوند دهد, یکبار برای هر رکورد. به این ترتیب اکسس می تواند به بقیه داده های رکورد در سایر فیلدها دسترسی داشته باشد.
توجه: اسامی فیلدها کلیدهای خوبی نیستند, چون افراد بسیاری نام یکسان دارندو یا بسیاری از افراد اسامی را به شکلهای گوناگون می نویسند. زمانی که یک شرکت به مشتریان, کارمندان و اجناس خود عددی را تخصیص می دهد, احتمالا آن شرکت پروژه هایش را کامپیوتری کرده است. این اعداد می تواند کلید منحصر به فردی برای یافتن بقیه داده های مرتبط با آن باشند.
همچنین باید به نکته توجه داشته باشید که فیلد کلید همواره فیلد ارتباط دوجدول مرتبط نیست ولی برای این کار بسیار مناسب است و غالبا برای همین منظور به کار می رود.
دو یا چند فیلد نیز می توانند یک کلید منحصر به فرد را تشکیل دهند. اغلب به فیلد کلید, فیلد کلید اصلی گفته می شود. اگر بخواهید که دو یا چند فیلد همراه با یکدیگر به عنوان کلیدی منحصر به فرد عمل کنند, باید اکسس را وادارید تا فیلدهای ادغام شده را به عنوان یک فیلد منحصر به فرد در نظر گیرد. مثلا ممکن است بخواهید که دو فیلد نام خانوادگی و کد پستی را یکدیگر ادغام کنید تا فیلد کلید نحصر به فردی ایجاد شود.
حال که با مفهوم فیلد کلید برای ارتباط آشنا شدید به انواع ارتباط موجود در اکسس می پردازیم:

ارتباطات یک به یک(One to One):

شاید ارتباط یک به یک نادرترین ارتباط ممکن بین جداول باشد. هنگامی که در دو جدول تعداد رکوردها یکسان باشد و هر رکورد یک جدول به رکورد دیگری در جدول دیگر مرتبط باشد, بک ارتباط یک به یک بوجود می آید. ارتباط یک به یک نادرست است چون معمولا می توانید آن دو جدول را در یک جدول ادغام کنید.
در شکل ۶۲ در زیر مثالی از ارتباط یک به یک بین دو جدول نشان داده شده است. فیلد کد کالا کلید و فیلد ارتباط را تشکیل می دهد. نخستین رکورد در نخستین جدول به نخستین رکورد در دومین جدول مرتبط شده است.

خود شرکت ماکروسافت توصیه می کند که از ارتباط یک به یک اجتناب کنید. زیرا بهتر آن است که دو جدول را در یک جدول بزرگتر ادغام کنید, که این طریقه بسیار کارآتر است. در اکسس هر جدول می تواند تا ۲۵۶ فیلد داشته باشد ولی اگر وجود جدولی با بیش از ۲۵۶ فیلد ضرورت داشته باشد,فقط با ایجاد دو یا چند جدول و برقراری ارتباط یک به یک بین آنها, قادر به برآوردن این نیاز خواهید بود. که برای این منظور هم ماکروسافت امکانات بسیاری را فراهم آورده است از ان جمله امکان دسترسی سریع به اطلاعات جدول دوم از طریق جدول اول بدون باز کردن آن جدول.

ارتباط یک به چند(One to Many):

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

ارتباط یک به چند صرف جویی زیادی در فضای دیسک را سبب می شود. مثلا ارتباط یک به چندی که در شکل ۶۳ در بالا نشان داده شد, به شما امکان می دهد تا گزارشی تهیه کنید که شامل مشتری همراه با شرح کالای سفارشی باشد. ولی شرح در هر رکورد سفارش نمی آید. شرح هرکالا در جایی مستقل,در رکوردی منحصر بفرد در فایل موجودی قرار دارد. اکسس می تواند در هنگام نیاز, با استفاده از فیلد ارتباطی مشترک از جدول سفارش در جدول موجودی جستجو کند و شرح کالا را از آنجا بردارد. اکسس بدون فیلد کلید نمی تواند تعیین کند که در برابر هر سفارش چه شرحی را باید قرار دهد.
توجه داشته باشید که اکسس جدولهای مرتبط را می شناسدو در موقع لزوم اطلاعات صحیح را از آنها استخراج می کند. لذا باید هنگام ایجاد پایگاه داده اکسس این ارتباطات را به اکسس بفهمانید تا در هنگام مشاهده و چاپ داده ها از جداول مرتبط اکسس تمام کارها را انجام دهد.
همچنین قابل ذکر است که ارتباط چند به یک و یک به چند مشابه هستند, لذا هر دو عبارت به یک معنی به کار می روند.

ارتباطات چند به چند(Many to Many):

اکسس ارتباطات چند به چند را مستقیما پشتیبانی نمی کند ولی می توانید آن را شبیه سازی کنید. ارتباط چند به چند هنگامی ایجاد می شود که رکوردهای متعددی از یک جدول به یک یا چند رکورد از جدول دیگر مرتبط باشند. براساس تصاویر جداولی که قبلا مشاهده کرده اید, می توان چنین تصور کرد که خریداران متعددی, محصولات متعددی را سفارش دهند. بنابراین بین خریداران و محصولات یک ارتباط چند به چند وجود دارد.
جدول خریداران و جدول موجودی محصولات از طریق جدول سفارش به هم متصل می شوند.بنابراین برای ارتباط چند به چند بین خریداران و موجودی محصولات, جدول سفارشات بعنوان واسطه بین این دو جدول عمل می کند.جدول خریداران ارتباطی یک به چند با جدول سفارشات دارد و جدول محصولات نیز ارتباطی یک به چند با جدول سفارشات دارد.پس همانطور که در شکل ۶۴ در زیر می بینید جدول سفارشات بطور غیر مستقیم بین خریداران و محصولات ارتباط چند به چند ایجاد می کند.

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

طراحی یک پایگاه داده های جدید

در درس پیش در مورد ارتباطات جداول به طور مفصل توضیحاتی دادیم و انواع ارتباطات را شناختیم حال دیگر قادر به ایجاد پایگاه داده دلخواه خود هستیم و این کار را به تدریج از این درس که مقدمی بر ایجاد پایگاه داده جدید است آغاز می کنیم.
در این درس در مورد جادوگرهای اکسس (Wizards) صحبت خواهیم کرد. این جادوگرها شما را در ایجاد برنامه های کاربردی متداول پایگاه داده ها, از قبیل مدیریت فهرست پستی یا ورود سفارشات راهنمایی می کنند.هرچند که نیازهای شما به کار خاص موردنظر یا احتیاجات شخصیتان مربوط است, اما بیشتر پایگاه داده ها به یکی از نمونه های کلی پایگاه داده تعلق دارند. جادوهای اکسس چهارچوب پایگاه داده برنامه کاربردی را ایجاد می کنند, در مرحله بعد شما می توانید آن را اصلاح کنید تا با نیازهای خاص شما تطابق داشته باشد. اما به هرحال برای ایجاد پایگاه داده مجبور به استفاده از جادوگر نیستید. شاید جادوگرها به کنترل مورد نظر شما به عنوان یک پایگاه داده امکانات لازم را فراهم نکنند.

ایجاد پایگاه داده های جدید با استفاده از جادوگر:

برای ایجاد یک پایگاه داده با بهره گیری از جادوگر(Wizard) باید هنگام وارد شدن به اکسس از طریق پنجره اولیه قسمت Access database wizards,pages and projects را انتخاب کنید و یا اگر وارد محیط اکسس شده اید از منو File گزینه New را انتخاب کنید,تا پنجره محاوره ای New که دارای دو سربرگ است ظاهر شود.
هنگامی که سربرگ General (عمومی) را انتخاب می کنید, صفحه General ظاهر می شود که با آن می توانید یک پایگاه داده خالی ایجاد کنید. در دروس بعدی نحوه ایجاد یک پایگاه داده خالی را شرح خواهم داد. اصولا زمانی پایگاه داده خالی لیجاد می کنیم که بخواهیم تمامی جنبه های اولیه طراحی و ایجاد پایگاه داده را کنترل کنیم. زمانی که یک پایگاه داده جدید و خالی ایجاد می کنیم اکسس کاری برای شما انجام نمی دهد و هیچ پیش فرضی راجع به پایگاه داده ای که می خواهید ایجاد کنید,ندارد.
ولی به جای ایجاد یک پایگاه داده خالی می توانید بر روی سربرگ Databases کلیک کنید تا صفحه Databases در پنجره محاوره ای New, نمایان شود. توجه داشته باشید که جادوگر راهنمای گام به گام اکسس است که در انجام کارهایی از قبیل ایجاد پایگاه داده جدید به شما کمک می کند. اگر اکسس جادوگری داشته باشد که امکان ایجاد پایگاه داده ای مشابه آنچه لازم دارید را فراهم سازد راحتتر آن است که بجای این که از ابتدا پایگاه داده ایجاد کنید, جادوگر را به کار اندازید. در زیر هر یک از پایگاه داده هایی که توسط جادوگر می توان ایجاد کرد تشریح شده است, برای اجرای آن کافی است که نماد مربوطه را انتخاب کنید و بر روی کلید Ok کلیک کنید.
حال به جادوگرهای موجود و کاری که برای شما در اکسس انجام می دهند توجه کنید:
——————
Asset Tracking(پیگیری اموال): پایگاه داده ای برای مدیریت, نگهداری اموال, فروشندگان و کارمندان شرکت ایجاد می کند.
Contact Managment(مدیریت ملاقاتها): پایگاه داده ای برای قرارهای ملاقات و تماسهای تلفنی شخصی شما ایجاد می کند.
Event Managment(مدیریت وقایع):یک پایگاه داده برای وقایعی مانند قراردادها(موافقت نامه ها), کارمندان و قیمتها ایجاد می کند.
Expenses(مخارج و هزینه ها):یک پایگاه داده برای نگهداری گزارشهای مخارج ایجاد می کند.
Inventory Control(کنترل موجودی):پایگاه داده ای برای اطلاعات محصولات, خریداران و سفارشات ایجاد می کند.
Ledger(حساب کل): پایگاه داده ای برای حسابهای کل, شامل تبادلات و حسابها ایجاد می کند.
Order Entry(دریافت سفارش): پایگاه داده ای برای مدیریت سفارشات خریداران, پرداختها و محصولات ایجاد می کند. در این پایگاه داده سیستمی از جداول ایجاد میشود که تاحدودی به جداولی که در قبلا در درسهای پیش شرح دادیم تطابق دارد.
Resource Scheduling(زمانبندی منابع): پایگاه داده ای برای مدیریت منابعی از قبیل زمانبندی و اقلام خریداران ایجاد می کند.

Service Call Managment(مدیریت سرویس تلفن):

پایگاه داده ای برای نگهداری اطلاعات خریداران, کار, دستورات کار, قطعات و پرداختها ایجاد می کند. Time and billing(زمان و صورتحساب): پایگاه داده ای برای نگهداری مشتریان, پروژه ها, کارتهای زمانی, کارمندان و پرداختها ایجاد می کند.
——————-
توجه کنید که اگر جادوگری انتخاب کنید در همان پنجره New در طرف راست زیر قسمت Preview شکلی هدف پایگاه داده را که چندان واضح نیست نشان می دهد یعنی شما می توانید با انتخاب پایگاه داده ابتدا از هدف ایجاد آن از طریق این شکل مطلع شوید و سپس برروی Ok کلیک کنید.
جادوگر نه تنها جداول اصلی پایگاه داده را ایجاد می کند, بلکه همچنین فرمها, گزارشها و حتی ماکروها و برنامه های اصلی را نیز در صورت لزوم ایجاد می کند. استفاده از جادوگر برای ایجاد پایگاه داده اصلی, تهیه پایگاه داده اصلی را بسیار ساده تر می کند. بطور خلاصه مراحل ایجاد یک پایگاه داده با استفاده از جادوگر را شرح می دهم:
۱-جادوگر مورد نظر خود را در پنجره New انتخاب کنید و بر روی Ok کلیک کنید.
۲-نامی برای ذخیره شدن پایگاه داده انتخاب کنید یا نام پیش فرض را قبول کنید و بر روی Create کلیک کنید.
۳-پنجره ای ظاهر می شود که پایگاه داده ای را که می خواهید ایجاد کنید به شما معرفی می کند و شکل کلی آن را اعلام می کند. اگر این همان پایگاه داده مورد نظر شماست بر روی Next کلیک کنید.
۴- در پنجره بعدی در مورد جداول و دیگر اجزایی که ایجاد خواهد شد به شما اطلاعاتی می دهد شما می توانید از لیست موجود جدولهای مورد نظر خود را انتخاب یا حذف کنید و سپس بر روی Next کلیک کنید.
۵-در پنجره بعدی لیستی ظاهر می شود که شما می توانید شکل ظاهری پایگاه داده خود را از لیست انتخاب کنید شکل مورد علاقه خود را انتخاب کرده بر روی Next کلیک کنید.
۶-در پنجره بعدی شکل کلی گزارشهای شما را نشان می دهد در این قسمت هم با انتخاب شکل موردنظر خود روی Next کلیک کنید.
۷-در این قسمت عنوان پایگاه داده از شما سوال می شود می توانید نام پیش فرض را انتخاب کرده و بر روی Next کلیک کنید.
۸- حال دیگر کار جادوگر تمام شده است می توانید بر روی Finish کلیک کنید.
۹- بعدی مدتی که اکسس تمامی جداولها و اجزا را ایجاد کرد می توانید با پایگاه داده کار کنید. توجه کنید که در هر مرحله ای که منصرف شدید می توانید بر روی Cancel کلیک کنید.
۱۰-ذکر این نکته نیز ضروری به نظر می رسدبعضی از سوالها که در هنگام ایجاد پایگاه داده با استفاده از جادوگر از شما می شود شاید برای شما گنگ به نظر برسد ولی مطمئنا بعد از یادگیری کامل این سوالات را می توانید به راحتی جواب دهید. پس حتما باید با ایجاد یک پایگاه داده خالی آشنا شوید.

طراحی یک پایگاه داده جدید:

اگر قصد دارید که از جادوگر استفاده نکنید که به نظر من کار معقولانه ای است باید مراحل زیر را بپیمایید:
۱-هنگام وارد شدن به اکسس از پنجره اولیه باز شده گزینه Blank access database راانتخاب کنید و اگر وارد محیط اکسس شده اید می توانید از منو File گزینه New را انتخاب کنید و از پنجره New در سربرگ General شکل database را انتخاب کرده و برروی Ok کلیک کنید.
۲- حال باید محل ذخیره شده پایگاه داده را انتخاب کرده و نامی برای آن انتخاب کنید که من مطمئن هستم با اینکار آشنایی لازم را دارید پس نامی برای پایگاه داده خود انتخاب کرده و بر روی Create کلیک کنید.
۳- حال اکسس پایگاه داده را ایجاد کرده و صفحه خالی در برابر شما ظاهر شده است از این قسمت به بعد باید آشنایی لازم را به کارهای پیشرفته داشته باشید.
توجه کنید که هنگامی اصول کار اکسس را رفته رفته بهتر یاد گرفتید جادوگرها هم بهتر درک خواهید کرد.

میله ابزار پنجره Database:

هنگامی که یک پایگاه داده جدید ایجاد کرده باشید میله ابزار به صورت شکل ۷۱ در زیر درمی آید. این میله ابزار در حالات مختلف تغییر می کند و امکانات دیگری را به شما می رساند.

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

تعریف جدول

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

ایجاد جدول جدید:

وقتی که می خواهید یک جدول جدید ایجاد کنید, با کلیک کردن بر روی شاخص Tables در پنجره Database به صفحه جداول(Tables) می روید.(البته توجه کنید که این صفحه هنگامی که پایگاه داده را باز یا ایجاد می کنید به صورت پیش فرض ظاهر می شود).حال برای ایجاد جدولی جدید باید بر روی دکمه New در بالای پنجره Database کلیک کنید. هنگامی که بر روی این دکمه کلیک می کنیداکسس پنجره محاوره ای کوچکی به نام New Table را نشان می دهد.(کلید میانبری که شما می توانید برای دسترسی به این پنجره کوچک استفاده کنید کلید Alt+N می باشد که به سرعت شما را به این پنجره می برد).
در این پنجره باید انتخاب کنیم که می خواهیم ایجاد جدول را در چه محیطی ادامه دهیم که به نظر من حالت نمایشی Design بهترین حالت نمایشی برای ایجاد و کار با جدول است,برای ایجاد جدول گزینه Design View را از پنجره محاوره ای New Table انتخاب کرده و بر روی Ok کلیک کنید. برای آشنایی شما با دیگر گزینه های این پنجره یعنی New Table آنها را در زیر به طور خلاصه شرح می دهم.
—————
Datasheet View: جدولی کلی به شکل صفحه گسترده می سازد که می توانید داده های جدید را در آن اضافه کنید. این جدول بسیار ساده بوده و برای ایجاد پایگاه داده پیشرفته اصلا مناسب نیست.
Design View: امکان تعیین تمامی خصوصیات جدول جدید مانند نام فیلد, نوع داده, و حتی ملاحظات امنیتی, را فراهم می کند.این گزینه برای ایجاد هر گونه جدول مناسب است.
Table Wizard: امکان انتخاب از میان فهرستی از جادوگرهای از پیش نوشته شده را فراهم می سازد که از این جادوگرها برای ایجاد جداول خاص مانند فهرست پستی یا جدول موجودی استفاده می شود. من این گزینه را برای ایجاد جدول به هیچ وجه پیشنهاد نمی کنم.
Import Table: از یک فایل داده غیر اکسس, جدولی ایجاد می کند.
Link Table: از یک فایل داده اکسس یا غیراکسس, جدول دیگری می سازد. این جدول اتصالی را نگه می دارد که اگر فایل داده خارجی تغییر کند جدول اکسس نیز تغییر کند.
—————
به موضوع اصلی برمی گردیم یعنی حالت نمایشی Design. این حالت نمایشی بیشترین میزان کنترل را برروی جدولی که قصد ایجاد آنرا دارید فراهم می سازد. هنگامی که برحالت نمایشی Design تسلط پیدا کردید, می توانید هر جدولی را ایجاد و اصلاح کرده و یا مطابق میلتان دستکاری کنید, و این شامل جداولی که با جادوگر ایجاد کرده این نیز می شود.بعد از انتخاب حالت Design View از پنجره New Table جدول جدیدی را خواهید دید که اصول کار ما از اینجا شکل می گیرد.
لازم به یادآوری است که همانطور که قبلا گفتم برای رفتن از حالت نمایشی Design View به حالت نمایشی Datasheet View می توانید از منو View یا میله ابزار استفاده کنید. در میله ابزار اولین انتخاب که به شکل جدول کوچکی است برای اینکار طراحی شده است.در شکل ۸۱ در زیر شما می توانید میله ابزار را در بعد از باز شدن پنجره Design تغییر کرده است ببینید و با آن آشنا شوید و سعی کنید آنرا به خاطر بسپارید.ذکر این نکته قابل توجه است که اکسس همواره میله ابزار را تغییر می دهد را فرامین کارایی بهتری را ایجاد کنند.

نخستین جدول خود را طراحی کنید:
در میله عنوان پنجره Design View, نام جدول همراه با کلمه Table که معرف پنجره است, نشان داده می شود.اکسس به طور خودکار نخستین جدول را Table1 می نامد(یعنی شما در میله عنوان این عبارت را می بینید Table1:Table)اما هرگاه که بخواهید جدول را در فایل پایگاه داده ذخیره کنید,امکان تغییر نام وجود دارد. هر سطر در پنجره Design View یک فیلد را مشخص می کندیعنی در این پنجره ما می توانیم نوع فیلدها و نام آنها را در سطرها تعریف کنیم و کار اصلی این پنجره به شمار می رود.همانگونه که ملاحظه می شود, پنجره Design View دارای میله گردان عمودی در سمت راست است لذا در صورت تمایل تا ۲۵۶ فیلد می توانید اضافه کنید و با استفاده از میله گردان قادر به حرکت بین فیلدها هستند.
هنگامی که فیلدی می خواهیم اضافه کنیم باید در سه ستون پنجره Design View آن فیلد را به طور کامل تعریف می کنیم.در زیر وظیف هر یک از ستونها که در تعریف فیلدهای جدول کاربرد دارند تشریح شده است:
—————
Field Name(نام فیلد):باید به هر فیلدنامی تخصیص دهید.طول نام آن تا ۶۴ حرف می تواند باشد.نام فیلد باید عنوانی منحصر بفرد باشد.برای فیلدی که ارقام حقوق را نگه می دارد,بهترین نام حقوق یا مبلغ حقوق است.نام فیلد می تواند فضای خالی و سایر علایم خاص بجز نقطه,علامت تعجب,علامت تکیه صدا(‘)یا براکت را شامل شود.توجه داشته باشید که هنگام کار با جدول برای رجوع به فیلد از نام آن استفاده می شود.
Data Type(نوع داده):نوع داده ای را که در فیلد جای می گیرد را تعیین می کند. اکسس داده های مختلفی را دارا است.به عنوان مثال برای فیلد حقوق باید داده ای از نوع ارز یا انتخاب کرد.(در درس آتی در این مورد به صورت مفصل توضیح خواهم داد).
Description(شرح):شرح اختیاری است و برای توضیح فیلد به کار می رود.می توانید منشا و محتوای فیلد را در آن تشرح کنید.توجه داشته باشید که پر کردن یا نکردن این قسمت اصلا تاثیری در جدول نخواهد داشت.
—————
توجه:ایجاد شرح برای هر فیلد عاذت خوبی است.در هنگام توسعه بعدی برنامه,این کار بسیار سودمند خواهد بود.برای فیلدها اسامی معنی دار انتخاب کنیدتا بعدا داده های داخل فیلد از طریق نامش قابل شناسایی باشند. مثلا:تاریخ تولد,نام فیلد خوبی برای تاریخ تولد کارمند است, حال آنکه نامی مانند فیلد۳, محتوای فیلد را مشخص نمی کند.

مفهوم اولین و آخرین ستونهای جدول پنجره Design view یعنی ستونهای نام فیلد و شرح از نامشان مشخص است.
نام فیلد شرح کوچکی از فیلد است و برای رجوع به فیلد و محتوای آن مورد استفاده قرار می گیرد.مثلا: در یک گزارش دستمزد اگر قرار باشد مقادیر حقوق که در فیلد حقوق ذخیره شده است چاپ شود به این فیلد رجوع می شود.فیلد شرح بعنوان مرجعی برای مستندسازی محتوای فیلد به کار می رود.اکسس از این فیلد هیچ استفاده ای نمی کند, ولی شما باید از این بخش برای شرح هر فیلد پایگاه داده استفاده کنید. اگر با سایر همکاران برروی یک پروژه پایگاه داده کار می کنید,هریک از شما باید هر فیلدی را که به پایگاه داده اضافه می کنید را مستند کنید,تا دیگران از علت وجود فیلد کاملا آگاه باشند.
توجه:فیلدها را بیش از حد مستند نکنید.برای نمونه,یک ستون خالی شرح بهتری از شرحی است که تاثیری نداشته باشد.مثلا نوشتن شرح “فیلد سوم” زائد بوده و در واقع توضیحی نمی دهد.بعلاوه شرحی که مشابه نام فیلد باشدنیز غیرضروری است. هرفیلدی به شرح نیاز ندارد.مثلا فیلدی با نام نرخ مالیات, در جدول دستمزد, به فیلد شرح احتیاجی ندارد. اگر نامی که برای فیلد انتخاب می کنید بامعنی باشد اصلا به شرح نیاز ندارد.
ستون میانی در پنجره Design View نوع داده را تعیین می کند.برای این فیلد,به اطلاعات بیشتری نیاز دارید.داده های اکسس به اشکال مختلفی ظاهر می شوند.شکل داده های فیلد مشخص کننده کاری است که با فیلد و محتوای آن می توانید انجام دهید. ستون Data Type و کلیه موارد مربوط به آن در درس بعدی توضیح داده خواهد شد.

هرگاه فیلدی (یا فیلدهایی)را اضافه کردید که می خواهید کلید اصلی باشد,باید موقعی که نشانگر ماوس روی سطر موردنظر است دکمه Primary Key را از میله ابزار فشار دهید(دکمه ای که تصویر کلید روی آن است).یا می توانید با انتخاب سطر موردنظر از منو Edit گزینه Primary Key را انتخاب کنید. همچنین یک روش دیگر برای مشخص کردن کلید اصلی کلیک راست کردن برروی سطر مورد نظر و انتخاب Primary Key از منو ظاهر شده است. پس از انتخاب فیلد کلید اصلی اکسس در سمت چپ فیلد تصویر کلید را نشان می دهد. توجه کنید که هر جدولی که ایجاد می کنید باید حتما یک کلید اصلی داشته باشد در درسهای پیش در مورد کلید اصلی به طور مفصل صحبت کردیم. پس باید به یاد داشته باشیم که در هنگام ایجاد جدول یک فیلد را به عنوان کلید اصلی انتخاب کنیم.

توجه:برای اینکه بیش از یک فیلد را در کلید اصلی قرار دهید باید کلید Ctrl را پایین نگه دارید و همزمان سطرهایی را که می خواهید به عنوان کلید اصلی باشند انتخاب کنید سپس از میله ابزار Primary Key را کلیک کنید. اکسس در سمت چپ کلیه فیلدهایی که جز کلید اصلی هستند تصویر کلید را قرار می دهد.
توجه:اگر فیلد کلید اصلی را تعریف نکنید در هنگام بستن یا ذخیره کردن جدول طراحی شده اکسس از شما سوال می کند که آیا می خواهید چنین فیلدی داشته باشید اگر پاسخ Yes را بدهید اکسس فیلدی از نوع Auto Number(بعدا توضیح داده خواهد شد)به جدول اضافه کرده و آن را کلید اصلی قرار می دهد. اگر مطمئن هستید که هرگز به کلید اصلی نیاز ندارید (معمولا به یک فیلد کلید اصلی نیاز است) No را انتخای کنید.
درس تعریف جدول هم تمام شد حال شما می توانید جدول خود را ایجاد کنید ولی یک مشکل کوچک وجود دارد و آن هم نوع داده های موجود در ستون Data Type می باشد نوع داده ها خود بحث مفصلی است که آنرا به درس بعدی موکول می کنیم

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

در درس پیش مبحث طراحی جدول را آغاز کردیم و پنجره Design View آشنا شدیدو توانستیم اقدام به ایجاد جداول جدید کنیم ولی یکی از مباحث مهم در طراحی جدول را ذکر نکردیم و قول آن را به جلسه بعد دادیم و آن مبحث که در این درس به طور مفصل توضیح داده خواهد شد نوع داده های فیلدها می باشد.
اگر به یاد داشته باشید در پنجره Design View ما برای تعریف کردن فیلدها از سه ستون Field Name و Data Type و Description استفاده می کردیم و همچنین گفته شد که Field Name برای شرح نام فیلد و Description برای توضیح فیلد برای استفاده های بعدی می باشد. اما نکته ای که اینجا قابل ذکر می باشد ستون Data Type می باشد که نوع داده های هر فیلد را مشخص می کند مثلا داده های از نوع متن, عدد, تاریخ و غیره که تمامی موارد در زیر به طور کامل شرح داده خواهند شد.

تعریف انواع داده ها:

هر داده ای نوع خاصی دارد. هرفیلد جدول, داده هایی از یک نوع خاص را می تواند در خود جای دهد.مثلا برای فیلدی با اسم “نام کارگر” باید داده هایی از نوع متن تعریف شود تا تمامی رکوردهای ثبت شده در این فیلد دارای یک نوع داده و آن هم از نوع متن باشند.لذا هرگاه جدولی طراحی می کنیم باید نوع داده هر فیلد را از فهرست پایین جهنده ستون Data Type انتخاب کنیم.(برای نمایش فهرست ستون Data Type کافی است بر روی فلش موجود در این ستون کلیک کنیم تا فهرستی از نوع تمامی داده هایی که می شود در اکسس ثبت کرد برای ما نشان داده شود)
توجه: هنگامی که موردی را از فهرست بازشونده Data Type انتخاب می کنیم اکسس فهرستی از اطلاعات را در بخش زیرین پنجره نمایش می دهد که به آنها Field Properties (یا خصوصیات فیلد) گفته می شود. مثلا وقتی ما فیلدی از نوع Text (متن) را از ستون بازشونده انتخاب می کنیم. در زیر همین پنجره خصوصیات فیلد مربوط به متن برای ما نشان داده می شود. این خصوصیات عنوان درس بعدی ما می باشد که به طور مفصل شرح داده های خواهد شد که در این قسمت ما تنظیمات جالب توجه ای داریم.
حال در زیر به تشریح تمامی انواع داده ها می پردازیم:

داده از نوع Text(متن):

از داده نوع Text در فیلدهایی که حروف, واژه ها, اسامی و عبارات را نگه می دارد استفاده می شود. لازم نیست که محتوای فیلد متن فقط متون الفبایی باشد بلکه می تواند اعداد و علایم خاص نیز باشد. ولی توجه کنید که برای اعدادی که در محاسبات از آنها استفاده می کنید, از فیلد نوع متن استفاده نکنید. فیلد متن برای داده های مناسب است که می خواهید آنها را نگهدارید و نه آنهایی که قصد انجام محاسبه بر روی آنها را داشته و یا به عنوان تاریخ و زمان بکار ببرید.مثلا داده های با عنوان “نام” باید در این نوع فیلد ذخیره شوند.
توجه: از فیلد متنی برای داده های با طول حداکثر ۲۵۵ کاراکتر استفاده کنید. اگر طول داده بیش از این مقدار است, از داده نوع Memo استفاده کنید. همچنین دقت کنید که برای کنترل طول فیلد متنی, از خصوصیات فیلد استفاده کنید(در درس بعدی شرح داده خواهد شد) مثلا می توانید از اکسس بخواهید تا در هز رکورد فیلد متنی, تا ۲۵۵ حرف را نگهدارد.
آدرس و شماره تامین اجتماعی مثالهای کاملی از داده های متنی هستند که از اعداد و علایم خاص (مانند تیره و ویرگول) تشکیل می شوند.

داده از نوع Memo (یادداشت):

از داده نوع Memo برای فیلدهایی استفاده می شود که تا ۶۴۰۰۰ کاراکتر (شامل حروف, اعداد و کارکترهای خاص) طول دارند.تعیین طول فیلدهای Memo ضروری نیست چون اکسس فقط به همان مقدار که لازم است برای آنها جا تعیین می کند. در واقع جدولهایی که فیلد Memo دارند, رکوردهایی با طول متغیر دارند, چون طول فیلد Memo در هر رکورد, با رکوردهای دیگر فرق دارد. مثال برای این نوع فیلد, فیلدی به نام “توضیحات” می تواند باشد.
توجه کنید که اگر بخواهید متون شکل بندی شده ای مانند متون واژه پردازی شده در Word را در اکسس نگه داری کنید باید از داده های نوع OLE استفاده کنید نه داده های نوع Memo.

داده از نوع Number (عدد):

هر داده ای از جدول را که بخواهید در محاسبات بکار ببرید, از نوع Number تعریف کنید. داده از نوع Number برای تمامی ارقام, بجز مقادیر پولی و ارقام با دقت زیاد که در محاسبات علمی بکار میرود مناسب است.(توجه کنید که از داده نوع Currency (ارز) برای ارقام پولی و دقت بالا استفاده می شود). اکسس در ارقام با دقت بالا زیاد دقیق نیست مگر اینکه از داده نوع Currency استفاده کنید.مثال برای داده های نوع Number می تواند مثلا شماره کدپستی یا شماره کارگری باشد.

داده از نوع Data/Time (زمان/تاریخ):

داده های از نوع تاریخ و زمان را در فیلدهایی که نوع آنها Data/Time است نگهدارید. از این نوع داده در فیلدهایی مانند تاریخ استخدام و زمان ملاقاتها استفاده می شود. وقتی فیلدهای تاریخ و زمان را از نوع Data/Time تعیین می کنید, اکسس به شما امکان مرتب کردن آنها را بر اساس تاریخ و زمان می دهد. مثلا می توانید گزارشی از تمامی کرامندانی که تاریخ شروع به کار آنها اول مهرماه ۱۳۷۷ بوده است و یا فهرستی از تمامی حسابهایی که بیش از ۶۰ روز به سررسید آنها مانده را چاپ کنید.

فیلد داده از نوع Currency (ارز):

از این نوع داده ها برای نگهداری مقادیر پولی یا ارزی استفاده می شود. داده از نوع Currency, کاربر را مطمئن می سازد که مقادیر پولی/ارزی که در محاسبات بکار می روند به درستی گرد شده اند.(ولی یک مشکل کوچک در اکسس ۲۰۰۰ در این نوع فیلد برای ثبت نتایج به ریال وجود دارد) اکسس تمامی مقادیر پولی/ارزی را با ۱۵ رقم در سمت چپ و چهار رقم در سمت راست نقطه اعشار(ممیز کسری) نگه می دارد, لذا می توانید اعداد با دقت بالا را در فیلدهای پولی نگه دارید. از مثالهای بارز این نوع فیلد مقدار حقوق کارمند را می توان ذکر کرد.

فیلد داده از نوع Auto Number (عدد خودکار):

وقتی که فیلدی را را از نوع داده Auto number تعریف می کنید, با هر رکوردی که به جدول اضافه شود اکسس بطور خودکار عددی را در این فیلد نگه می دارد.سه نوع ارقامی که اکسس در فیلد عدد خودکار نگه می دارد, عبارتند از:
—————-
اعداد متوالی: هنگامی که رکورد جدی را به جدول اضافه می کنید, اکسس رقمی متوالی را تخصیص می دهد که از ۱ شروع می شود. مقادیر متوالی Auto Number معمولا برای کلید اصلی جدول بکار برده می شوند.
اعداد تصادفی: اکسس در رکورد جدید به این فیلد, عددی منحصر به فرد و تصادفی را اختصاص می دهد. اعداد شناسائی انعکاسی: اکسس مقدار منحصر به فردی را به این فیلد تخصیص می دهد که پایگاه داده های تکرار شونده را با یکدیگر هماهنگ می کند.
—————-
فیلد داده از نوع Yes/No (بلی/خیر):

فیلدی که از نوع Yes/No تعریف می شود به ازای Yes عدد ۱- و به ازای No عدد ۰ را دارا می شود. با استفاده از بخش Filed Properties در پنجره مذکور می توانید بسته به دلیل استفاده از فیلد, یکی از سه حالت Yes/No, True/False (درست یا غلط) یا On/Off (روشن و خاموش) را به کار ببرید. از موارد استفاده از این نوع داده می توان به متاهل بودن اشاره کرد که می تواند یا بله یا خیر را دربرگیرد.

فیلد داده از نوع شی OLE:

OLE مخفف Object Linking and Embedding (اتصال و نشاندن شی) است. اگر برنامه دیگری تحت ویندوز از OLE پشتیبانی کند یعنی بتواند شی قابل انتقال به برنامه دیگری را ایجاد کند آنگاه فیلد شی OLE در اکسس نیز قادر خواهد بود تا آن داده را در خود نگه دارد. فیلدهای OLE برای نگهداری اشیایی از قبیل عکس, تصاویر ویدیوئی و صدا مناسب است. (همانطور که ملاحظه می کنید, پایگاه داده اکسس علاوه بر داده های عددی و متنی می تواند انواع متنوع دیگری از داده ها را نیز نگه دارد.)
وقتی که فیلدی از نوع OLE را در جدول قرار می دهید, می توانید علاوه بر مثلا اطلاعات مربوط به اقلام موجودی, تصویر آن را نیز به شکل یک شی OLE در درون فیلد OLE قرار دهد. به این ترتیب هنگامی که رکورد را نمایش می دهید, اکسس داده های رکورد را همراه با تصویر نمایش می دهد.
برای نگهداری فیلدهای از نوع OLE در پایگاه داده اکسس به نرم افزاهای کمکی از قبیل برنامه های گرافیکی و یا صفه گسترده نیاز دارید.

داده از نوع Hyperlink (ابرمتن):

این نوع فیلد برای نگهداری ابرمتنها بکار می روند. اگر تا حالا تجربه کار کردن با برنامه های طراحی صفحات وب یا کارکردن با کدهای HTML را داشته باشید منظور از ابرمتنها را به خوبی می دانید. ابرمتنها در واقع لینکهای اینترنتی هستند که ما را به صفحات مختلف در اینترنت هدایت می کنند مثلا ما اگر لینکی به صورت http://www.yahoo.com داشته باشیم و برروی آن کلیک کنید ما را به صفحه یاهو خواهد برد و در واقع این نوع فیلد از انواع فیلدهایی است که به ندرت مجبور به استفاده از آن می شویم. عملکرد آنها درست مانند فیلو از نوع متن می باشد با این تفاوت که در اینجا هر متنی را که برای نگهداری تایپ کنیم در واقع آن لینکی از به یک صفحه اینترنتی.
از موارد استفاده از این فیلد می توان به نگهداری آدرسهای اینترنتی مرتبط با شرکت اشاره کرد.

داده از نوع Lookup Wizard (جادوگر جستجوگر):

هنگامی که فیلدی از نوع Lookup Wizard ایجاد می کنید, اکسس با بکار گرفتن جادوگری به آن امکان می دهد تا بجای یک مقدار, فهرستی از مقادیر را نگهدارد. این فیلد می تواند فهرستی از مقادیر را از یک جدول یا بازجست و یا فهرستی از مقادیر ثابتی که در هنگام ایجاد فیلد تعریف کرده اید,( برای فهرستهایی که مقادیر ثابتی دارند) باشد.
فرض کنید که شرکتی به پنج کشور کالا می فروشد. هنگام طراحی پایگاه داده می توانید با بکار انداختن Lookup Wizard, فهرست ثابتی از اسامی کشورها بسازید که در هنگام ورود داده ها به جدول, ظاهر شود.
هنگام که کاربر بخواهد کشوری را انتخاب کند به جای تایپ نام کشور برای هر رکورد فقط باید از فهرست ثابت انتخاب کند.
حال شما قادر به شناسایی انواع داده های موجود در اکسس می باشید و با نوع عملکرد آنها آشنا هستید و تا حدودی قار به ایجاد جدول هستید ولی یک نکته در اینجا باقی مانده و آن خصوصیت انواع فیلدها می باشد که موضوع درس آینده ما را تشکیل می دهد که موضوعی جالب می باشد .

خصوصیات فیلدها

اگر به خاطر داشته باشید در دروس قبلی شروع به طراحی پایگاه داده های خود کردیم و در مورد پنجره Design View که ما را در طراحی جداول یاری می کند به طور مفصل صحبت شد. همچنین در درس قبل در مورد انواع داده هایی که از طرف اکسس پشتیبانی می شود و شما می توانید از آنها در ایجاد جداول خود کمک بگیرید بحث کردیم. حال که ما با انواع داده ها آشنا شدیم وقت آن رسیده است که به تنظیم خصوصیات این داده ها بپردازیم و این همان موضوعی است که در این درس به آن پرداخته شده است.

تعریف خواص فیلد:

به محض آنکه شما نوع داده را از لیست قسمت Data Type انتخاب کردید در پایین همان پنجره قسمتی که به Field Properties مشهور است در پایین گوشه چپ نمایان می شود که در این پنجره کوچک که دارای دو شاخص General و Lookup می باشد ما اقدام به تنظیم خواص فیلد می کنیم. بسیاری از فیلدهای خواص فیلد, اختیاری است. برخی از فیلدها به هیچ فیلد خاصه ای نیاز ندارند حال آنکه برخی دیگر از فیلدها به چندین فیلد خاصه نیاز دارند. شما می توانید در شکل ۱۰۱ در زیر پنجره خواص فیلد برای یک فیلد متنی را مشاهده کنید.
هر فیلدی که دارای نوع خاصی است همچنین دارای خصوصیات مربوط به خود می باشد که با خصوصیات دیگر فیلدها متفاوت می باشدمثلا در شکل بالا ما از لیست باز شده Text را که فیلد متنی ایجاد می کند را انتخاب کردیم اگر به جای آن یک نوع دیگر فیلد مانند Number (اعداد) را انتخاب می کردیم خصوصیات فیلد ما که در پایین پنجره مشخص است متفاوت از این شکل می شد یعنی فیلد متنی خصوصیات مربوط به خود را دارد و فیلد اعداد خصوصیات متمایز از فیلد متنی این موضوع در مورد انواع دیگر داده نیز صدق می کند. همانطور که برای فیلد خود نوع داده ای را انتخاب کردیم مانند Text باید برای آن خصوصیات مخصوص به خود را نیز ذکر کنیم. برای این کار می توانیم بر روی کادرهای موجود در قسمت خصوصیات فیلد کلیک کرده و مقدار مورد نظر خود را در آنها وارد کنیم که در طول این درس ما با نحوه عملکرد کادرهای خصوصیات فیلد آشنا خواهیم شد.
بخش Field properties (خصوصیات فیلد) خاصه هایی از قبیل اندازه فیلد, شکل نمایش و تعداد اعشار را مشخص می کند. هر نوع فیلد داده, مجموعه فیلدهای خاصه خودش را دارد. در زیر به ترتیب به معرفی خاصه های مختلف هریک از انواع داده می پردازیم.

خواص فیلد متنی:

در زیر هر یک از مقادیر خاصه های فیلد از نوع Text را تشریح کرده ام:
—————>
Field Size(اندازه فیلد): حداکثر طول داده ای را که در فیلد قابل نگهداری است تعیین می کند مثلا اگر ما بخواهیم که کاربر در فیلد نام بیش از ۱۵ کاراکتر قرار ندهد می توانیم با تنظیم این خصوصیت روی ۱۵ بیش از این مقدار را قبول نکنیم.
Format(شکل): شکلی را که اکسس برای نمایش داده فیلد بکار می برد تعیین می کند. مثلا ما می توانیم در این قسمت تعیین کنیم که حرف اول فیلد ما به صورت بزرگ نشان داده شود.
Input Mask(قالب ورودی): نحوه ورود داده به فیلد را تعیین می کنیم مثلا اگر ما کد کارگری به شکل ۲۲۲۵-۲ داشته باشیم می توانیم تعیین کنیم که کاربر به هنگام وارد کردن کد در این قسمت حتما باید در دومین کاراکتر خط فاصله قرار دهد.
Caption(عنوان): پیامی است که در هنگام انتخاب فیلد در حالت نمایش Datasheet در میله وضعیت نمایش داده می شود.
Value Default(مقدار پیش فرض):مقداری است که کاربر همواره در فیلد مشاهده می کند مگر آنکه آن را تغییر دهد مثلا در فیلد جنسیت می توان نام مرد را همواره برای کاربر نشان داد و اگر کاربر مایل باشد می تواند آن را تغییر دهد و یا آنرا به صورت پیش فرض قبول کند.
Validation Rule(قاعده مقبولیت): مقادیری که کاربر در فیلد وارد می کند را محدود می سازد (در این مورد در دروس آتی بیشتر صحبت می کنیم)
Validation text(متن مقبولیت):پیام خطایی است که در صورتیکه کاربر اقدام به ورود مقداری کند که قاعده مقبولیت را نقض کند نمایش داده می شود.
Required(ضرورت):مشخص می کند که آیا کاربر می تواند در هنگام ورود داده در جدول این فیلد را خالی رد کند یا حتما باید مقداری در آن وارد کند مثلا اگر کاربر فیلد که کلید اصلی می باشد خالی رد کند برنامه با مشکل روبرو می شود.
Allow Zero Length(مجاز بودن طول صفر): مشخص می کند که آیا متنی با طول صفر در فیلد قابل قبول است یا نه.
Indexed(نیاز به ایجاد اندیکس):مشخص می کند که آیا فیلد به اندیکس نیاز دارد یا نه. فیلد اندیکس مرتب کردن و جستجو را تسریع می کند.
Unicode Compression(فشرده سازی یونیکد): در این قسمت تعیین می کنیم که مایلیم فیلد ما با استفاده از سیستم Unicode فشرده سازی شود که این گزینه برای قابلیت فارسی نویسی در اکسس مفید می باشد.(در مورد سیستم Unicode می توانید به دروس HTML در همین سایت مراجعه کنید).
—————
توجه: هنگامی که خاصه اندازه فیلد را معین می کنید, آنرا بزرگتر از آنچه واقعا نیاز دارید قرار ندهید. اکسس فضای تخصیص یافته را بر مبنای این مقدار تعیین می کند, صرفنظر از اینکه طول به کار گرفته شود یا خیر. در صورت بزرگتر گرفتن آن , فضای دیسک بیهوده اشغال می شود.
فیلدهای Format(شکل) و Input Mask(قالب ورودی) پیچیده ترین خاصه های هر فیلد هستند. به عبارت دیگر, هنگامی که نحوه نمایش و ورود داده با استفاده از این خاصه ها را یاد می گیرید چنان است که گویی زبان جدیدی را فرامی گیرید. اینکه اکسس چگونه داده های وارد شده در فیلد را نمایش دهد, توسط فیلد خاصه Format تعیین می شود و خاصه Input Mask چگونگی ورود داده در فیلد را تعیین می کند.
در زیر مقادیری را که شما می توانید در فیلد خصوصیت شکل Format وارد کنید تشریح شده اند که به وسیله آنها می توانید نحوه نمایش داده ها را تعیین کنید:
—————>
! : برخلاف پیش فرض تراز از سمت راست, داده های درون فیلد را تراز به سمت چپ می کند.
* : در این مکان از فیلد کاراکتری باید قرار گیرد.
& : در این مکان از فیلد وجود کاراکتر دلخواه است. (الزامی نیست)
< : در این مکان از فیلد کاراکتر به حروف کوچک تبدیل می شود.
> : در این مکان از فیلد کاراکتر به حروف بزرگتر تبدیل می شود.
\ : بجای اینکه کاراکتر بعدی را حرفی در نظر گیرد, آنرا بعنوان کد شکل در نظر می گیرد. (برای نمایش * مفید است, در غیر اینصورت اکسس ستاره به عنوان کاراکتر علامت محل فیلد در نظر می گیرد.)
————–
مثال: بنابراین اگر خاصه format فیلدی را &>&&&&& تعیین کنید و نخستین رکورد جدول بصورت lw3dp2 باشد اکسس آنرا به lw3dP2 تبدیل می کند (کاراکتر > حرف P را به صورت حرف بزرگ P نشان می دهد).
در زیر هم به معرفی مقادیری که شما می توانید در خاصه Input Mask قرار دهید ذکر شده اند:
————->
۰ : در این مکان از فیلد عدد باید باشد.
۹ : در این مکان از فیلد عدد یا فاصله باید باشد.
# : در این مکان از فیلد عدد, علامت مثبت, علامت منفی یا فاصله می تواند قرار گیرد.
۱ : در این مکان از فیلد باید یک حرف الفبایی باشد.
؟ : در این مکان از فیلد هر حرف الفبایی به دلخواه می تواند باشد.
A : در این مکان از فیلد باید یک حرف یا یک عدد باشد.
a : در این مکان از فیلد به دلخواه یک حرف یا عدد می تواند قرار گیرد.
& : در این مکان از فیلد باید یک کاراکتر یا فاصله قرار گیرد.
c : در این مکان از فیلد یک کاراکتر دلخواه قرار می گیرد.
> : کاراکتر در این محل به حرف بزرگ تبدیل می شود.
< : کاراکتر در این محل به حرف کوچک نبدیل می شود.
! : باعث می شود تا کاراکترهای ورودی در فیلد به جای آنچه از سمت راست شروع شوند, از سمت چپ شروع شوند.
\ : بجای اینکه کاراکتر بعدی را حرفی در نظر بگیرد آنرا به عنوان کد شکل در نظر می گیرد (برای نمایش کاراکترهای مانند * و ! مناسب است.)
————–
مثال: بنابراین اگر خصوصیت شکل فیلدی را ۰۰۰۰-۰۰۰(۹۹۹۹) تعریف کنید اکسس کاربر را مجبور خواهد کرد تا شماره تلفن را به شکل ده رقمی وارد کند.

خواص فیلد Memo:

داده از نوع Memo (یادداشت) مقادیر خاصه های فیلد زیر را نیز داراست, که تمامی آنها در بالا بخش مربوط به فیلد Text تشریح شدند پس فقط به ذکر آنها بسنده کرده و آنها را توضیح نمی دهیم:
Format (شکل), Caption(عنوان), Default Value(مقدار پیش فرض), Validation Rule(قاعده مقبولیت), Validation Text(متن مقبولیت), Required(لازم بودن), Allow Zero Length(مجاز بودن طول صفر), Unicode Compression(فشرده سازی یونیکد).
به عبارت دیگر اگر فیلدی از نوع Memo داشته باشید می توانید درست مشابه فیلد متن شکل, عنوان و سایر خصوصیات آنرا را تعریف کنید.

خواص فیلد عددی:

در زیر مقادیر خاصه های فیلد از نوع Number تشریح شده است( به خاطر تکرار نکردن آنچه قبلا ذکر شد آنهایی که مشابه فیلد از نوع Text می باشند ذکر نشده اند تا فقط موارد جدید به اطلاع شما برسند):
————->
Field Size(اندازه فیلد):اگر فیلدی از نوع عدد داشته باشید و بخواهیم اندازه فیلد را در خصوصیات آنرا تعریف کنید شما می توانید از لیست موجود در این قسمت یکی را انتخاب کنید که هر کدام را عناصر لیست را با نوع کاربرد آنرا ذکر می کنیم: Byte(برای نگهداری یک عدد کوچک بین ۰ تا ۲۵۵), Integer(یک عدد بزرگتر تا ۳۲۷۶۷), Long Integer(یک عدد باز هم بزرگتر تا ۲/۱ میلیون), Single(عدد اعشاری), Double(عدد اعشاری با دقت زیاد), Replication ID( یک مقدار عدد شناسائی انعکاسی برای هماهنگ کردن چندین جدول پایگاه داده), Decimal(برای اعدادبر مبنای دسیمال).
Format(شکل): در این بخش از خصوصیات هم باید یکی از موارد موجود در لیست را انتخاب کنید که به ذکر آنها بسنده می کنیم: General Number(برای مقادیر معمولی), Currency(برای مقادیر پولی), Euro(برای مقادیری با واحد پول یورو), Fixed(همواره باید یک رقم اعشار داشته باشد), Standard(که در اعداد بزرگ ویرگول نشان می دهد), Percent(برای نمایش ارقام درصدی همراه با علامت درصد),Scientific(برای نمایش ارقام علمی).
Decimal Places(ارقام اعشار): تعداد ارقام اعشاری که برای یک مقدار نشان داده می شود.
————-
دیگر موارد موجود در خصوصیات فیلد از نوع عدد تکراری بوده و انها را می توانید مانند فیلد از نوع متن تنظیم کنید.
اگر داده ای که در فیلد وارد می کنید بزرگتر از نوع داده انتخابی باشد, اکسس پیام خطایی مبنی بر وجود مشکل را نمایش می دهد.

خواص فیلد تاریخ/زمان:

در زیر به تشریح هر یک از مقادیر خاصه های فیلد تاریخ/زمان می پردازیم توجه کنید که از ذکر موارد تکراری اجتناب شده است.
————>
Format(شکل): در این بخش از خصوصیات باید از لیست موجود یکی را به دلخواه و نحوه عملکرد برنامه انتخاب کنید: General Data (برای تاریخ به شکل ۱۳۸۲/۴/۲۰ و زمان به شکل ۳:۱۲:۲ عصر ), Long Data(برای نشان داده تاریخ به شکل بلند که در آن نام ماه ذکر شده است), Medium Data(برای نشان دادن تاریخ به شکل ۸۲-مرداد-۲۰), Short Data(برای نشان دادن تاریخ به شکل معمول و کوچک), Long Time(برای نشان دادن زمان به شکل ۳:۱۲:۲ عصر ), Medium Time:(برای نشان داده زمان به شکل ۳:۱۲ عصر ), Short Time(برای نشان دادن زمان به صورت ۳:۱۲).
————
دیگر موارد و خصوصیات موجود در این نوع داده مانند داده از نوع Text می باشد.
توجه: اگر هیچ یک از اشکال دقیقا آنچه لازم دارید نبود, می توانید شکل مورد نظر خود را, با کاراکترهای خاص بسازید که این مبحث یک مبحث طولانی می باشد در برنامه ما نمی گنجد شما می تواند برای اینکار از Help بهره بگیرید.

خواص فیلد Currency (ارز/پول):

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

خواص فیلد از نوع Auto Number(عدد خودکار):

در زیر هر یک از موارد و خصوصیات داده از نوع عدد خودکار شرح داده شده است:
————>
Fielg Size(اندازه فیلد): اگر می خواهید به صورت پیش فرض از این نوع داده استفاده کنید از لیت باز شده Long Integer را انتخاب کنید ولی اگر می خواهید از پایگاه داده تکرار شونده استفاده شود باید Replication ID انتخاب شود.
New Values(مقادیر جدید): باید تعیین کنید که اکسس اعدادی را که در این فیلد قرار می دهد از نوع Increment(به صورت افزایشی) یا از نوع Random(به صورت تصادفی) باشد.
Format(شکل): لیست موجود در این بخش از خصوصیات فیلد درست مانند داده از نوع عدد می باشد که می توانید مانند آن یکی از مقدارهای موجود را انتخاب کنید.)
————
دیگر خصوصیات موجود در این نوع داده در بالا ذکر شده که از تکرار کردن آنها اجتناب می کنیم.

خواص فیلد Yes/No(بلی/خیر):

هر یک از خصوصیات این فیلد در زیر تشریح شده است و طبق معمول از تکرار اجتناب کرده ایم:
———–>
Format(شکل): برای اینکه نحوه نمایش فیلد برای اکسس مشخص شود یکی از حالات Yes/No(بلی یا خیر), True/False(درست/غلط), On/Off(روشن/خاموش) را می توانید انتخاب کنید.
———–

خواص فیلد شی OLE :

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

خواص فیلد از نوع Hyperlink(ابرمتن):

خاصیتهای موجود برای این نوع از داده همانند خواص موجود برای داده از نوع Text(متن) می باشد که من ضرورتی در تکرار موارد ساده ای مانند این نمی بینم.

خواص فیلد Lookup Wizard(جادوگر جستجوگر):

داده از نوع Lookwizard جادوگری را به کار می اندازد که شما با طی مراحل این جادوگر و انتخاب جدول و فیلدهای جدولهایی که انتخاب کرده اید و می خواهید داده ها از آنها استخراج شده و در مقابل کاربر نشان داده شود خصوصیات متفاوتی را برای شما نمایان می کند.(توجه کنید که برای استفاده از جادوگر جستجو قبلا باید جدولی داشته باشید که داده ها از آن استخراج شده و در این قسمت قرار داده شود پس اول جدولی حاوی داده هایی که می خواهید در لیست قرار داده شود ایجاد کرده وسپس از جادوگر استفاده کنید). بعد از طی مراحل جادوگر و ایجاد آن شما می توانید بر روی شاخص Lookup موجود در قسمت خصوصیات فیلد کلیک کرده تا خصوصیات مربوط به جادوگر طراحی شده برای شما نمایان شود در زیر هر یک از این خصوصیات موجود تشریح شده است:
———–>
Display Control(کنترل نمایش داده شده): این خاصه مشخص می کند که در هنگام دریافت اطلاعات در حالت نمایشی Datasheet چه کنترلی در این فیلد اعمال شود لیست موجود در این قسمت حاوی Text Box(جعبه متن), List Box(جعبه لیست شده), Combo Box(جعبه ترکیب) می باشد.
Row Source Type(نوع ماخذ سطر):مشخص کننده جایی است که داده از آن منشا می گیرد. گزینه های ممکن عبارتند از Table/Query(جدول یا بازجست), Value List( داده هایی که وارد می کنید), Field list(فهرستی از فیلدهای یک جدول یا جستجو).
Row Source(ماخذ سطر): می تواند یک جدول یا بازجست یا معمولا یم عبارت SQL باشد. از شنیدن عبارت SQL مضطرب نشوید نمایشش شاید به چشم گیج کننده برسد اما در واقع همان چیزی است که هنگام ایجاد بازجست آنرا می سازید. پس زیاد این قسمت از خصوصیات را دستکاری نکنید تا با آن بیشتر آشنا شوید.
Bound Column(ستون مقید): ستونی از List Box یا Combo Box است که قبلا انتخاب شده است و این فیلد داده های نمایش را از آن برمی دارد.
Column Count(تعداد ستونها): تعداد ستونهای ماخذ سطری است که می خواهید نمایش داده شود.
Column Heads(عناوین ستونها): تعیین می کند که آیا برای ستونها عنوانی نیز نمایش داده شود یا نه.
Column width(پهنای ستونها): پهنای هر یک از ستونها را بر حسب سانتیمتر نشان می دهد که با ویرگول از هم جدا شده اند.
List Rows(تعداد سطور فهرست): این خصوصیت همانطور که از نامش پیدا است تعداد ستونها نمایش داده شده را تعیین می کند.
List Width(پهنای فهرست): پهنای کلی Combo Box یا List Box را مشخص می کند.
Limit to list(محدود به فهرست): مشخص می کند که آیا کاربر باید از فهرست انتخاب کند یا این که می تواند مقادیر مورد نظرش را نیز وارد کند.
———-
Lookup Wizard قابلیتی جالب است, این قابلیت ابزار قدرتمند و سودمندی است. هر چند تا زمانی که قدری با اکسس کار نکنید از این فهرستها در جدول استفاده نخواهید کرد, لیکن هنگامی که آماده استفاده از آن شدید متوجه خواهید شد که کار با آنها ساده است.

خواص جستجو:

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

ذخیره کردن جدول:

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

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

ورود داده‌ها به جدول

حال که در سه درس قبلی با طراحی جداول در اکسس آشنا شدید و موفق شدید که اولین جدول خود را طراحی و در پایگاه داده قرار دهید موقع آن رسیده است که از جداول طراحی شده توسط خودتان استفاده کامل را ببرید یعنی داده ها خود را برای نگهداری و انجام عملیات در جداول خود وارد کنید و این موضوع یعنی وارد کردن داده ها در جدول و اصلاحات در آنها موضوع درس این جلسه می باشد.
در ادامه این درس به بررسی راه کارهای موجود برای وارد کردن اطلاعات در جدول های طراحی شده خواهیم پرداخت. شاید ساده ترین و پرکاربردترین راه برای ورود داده ها, استفاده از حالت نمایشی Datasheet یا صفحه گسترده باشد.اگر تا به حال تجربه کارکردن با برنامه هایی مانند Microsoft Excel را داشته باشید حتما تشابه بسیار بین این برنامه و حالت نمایشی Datasheet خواهید دید. با استفاده از حالت نمایشی Datasheet به راحتی می توانید مقادیر را در سطرها (رکوردها) و ستونهای (فیلدها) جدول وارد کنید.در این حالت نمایشی با ورود مقادیر در سطرها و ستونها در واقع رکوردها و فیلدهای جدول را پر می کنید. علاوه بر ورود داده های جدید هنگامی که خطایی در داده وارد شده مشاهده کنید یا وقتی بخواهید مقادیر را تغییر دهید با ید داده های موجود را اصلاح کنید. اکسس برای جستجو و اصلاح محتوای جدول ها, در حالت نمایشی Datasheet ابزارهای اصلاحی متعددی دارد. حالت نمایشی Datasheet علاوه بر ورود و اصلاح داده ها, می تواند در میان داده های مورد نظر جستجو کند.

مقدمات جهت افزودن داده ها به جدول :

هنگامی که با استفاده از حالت Design جدولی ایجاد کردید برای ورود داده ها به آن آمادگی خواهید داشت. پس اگر جدولی طراحی نکرده اید یک جدول طراحی کنید و اگر جدولی از پیش طراحی شده دارید مراحل زیر را طی کنید:
۱) از لیست جدولهای موجود جدولی را که می خواهید داده ها را در آن وارد کنید انتخاب کنید, برای اینکار کافی است بر روی نام جدول موردنظر یک بار کلیک کنید.
۲)برای باز کردن جدول روی کلید Open کلیک کنید. اکسس جدول را در حالت نمایشی Datasheet نمایش می دهد. اگر اولین دفعه باشد که اقدام به وارد کردن داده در جدول موردنظر می کنید جدول به صورت خالی ظاهر می شود ولی اگر داده ای قبلا در آن وارد کرده باشید داده های موجود نیز نشان داده خواهند شد. توجه: اگر قصد داشته باشید که تغییری در ساختار جدول ایجاد کنید باید بر روی دکمه Design کلیک کنید تا بتوانید قسمتهای موردنظر خود را تغییر داده یا فیلدهای جدید خود را به آن اضافه کنید( در این مورد به صورت مفصل قبلا صحبت کرده ایم)
هنگامی که برای اولین بار حالت نمایشی Datasheet ظاهر می شود, اکسس نشانگر را در ابتدای نخستین فیلد در نخستین رکورد قرار می دهد.

ورود داده ها در جدول :

به طور حتم تا حالا متوجه شده اید که برای وارد کردن داده ها در جدول به مهارت خاصی نیاز ندارید. شروع به وارد کردن نخستین مقدار در جدول کنید تا اکسس آنرا از شما قبول کند. با استفاده از تمامی کلیدهای صفحه کلید می توانید به راحتی داده ها را در جدول وارد کرده و بین فیلدها و رکوردهای مختلف گشت بزنید.
توجه: اگر برای فیلدی خصوصیات ویژه ای را تعریف کرده باشید باید مطابق با آن عمل کنید. مثلا اگر طول فیلی را ۱۲ کاراکتر تعیین کرده باشید, اکسس فقط امکان ورود ۱۲ کاراکتر را به شما خواهد داد. اگر توجه کرده باشید متوجه می شوید که هنگامی که شما شروع به وارد کردن اولین مقدار در نخستین فیلد رکورد کردید, اکسس به طور خودکار رکورد خالی بعدی را ایجاد می کند. بدین ترتیب می توانید پس از اتمام ورود داده در اولین رکورد به رکورد بعدی بروید. همچنین اگر دقت کنید ستاره ای را در ابتدای رکورد خالی می بینید این ستاره به این معنا است که رکورد جدید بوده و خالی نمی باشد. اگر در این رکورد جدید داده ای وارد نکنید اکسس آن را در جدول ذخیره نخواهد کرد.
یکی از راههای متداول حدکت کردن در بین فیلدهای جدول استفاده از کلید Tab است اگر کلید Tab را فشار بدهید به فیلد بعدی موجود در جدول می روید و همچنین اگر Shift+Tab را فشار دهید به فیلد قبلی موجود در جدول هدایت خواهید شد. همچنین می توانید با اشاره گر ماوس بر روی فیلد مورد نظر کلیک کرده و اقدام به ورود داده کنید.
همواره نیم نگاهی هم به میله وضعیت در پایین پنجره حالت نمایشی Datasheet داشته باشید. وقتی که داده ها را در فیلدهای جدولی وارد می کنید میله وضعیت توضیحی در باره آن فیلد می دهد. در واقع این توضیح همان توضیحی است که شما در هنگام طراحی جدول در قسمت Description (شرح) فیلد واردکرده اید و حال برای اطلاع کاربر در میله وضعیت نشان داده می شود. مثلا اگر در قسمت Description فیلد نام متن “نام کامل خود را وارد کنید” را وارد کرده باشید هنگامی که کاربر می خواهد این فیلد را در جدول پر کند در میله وضعیت عبارت “نام کامل خود را وارد کنید” را می بیند.
توجه: در ابتدای رکوردی که در حال ورود داده یا اصلاح آن هستید شکلک مداد نمایش داده می شود.
توجه کنید هنگامی که تمامی فیلدهای یک رکورد را پر کردید و به رکورد بعدی رفتید اکسس به طور خودکار رکورد را ذخیره می کند. در این صورت در صورت به وجود آمدن اتفاق غیر قابل پیش بینی شما حداقل اطلاعات را از دست خواهید داد. ولی چنانچه مایل هستید به صورت دستی در میانهای وارد کردن داده ها در یک رکورد آن رکورد را ذخیره کنید می توانید از کلیدهای Shift+Enter استفاده کنید.

اصلاح فیلدهای جدول :

در اکسس تغییر داده های وارد شده بسیار آسان است. فقط کافی است که با استفاده از کلیدهای Tab و Shift+Tab یا با بهره گیری از ماوس به فیلد مورد نظر خود بروید تا اکسس تمامی محتویات آن فیلد را به صورت پر رنگ درآورد.حال می توانید اقدام به ورود داده جدید در آن فیلد بکنید. فقط دقت کنید چون تمامی محتویات فیلد به حالت پررنگ است داده جدید جایگزین آنها خواهد شد.
توجه: اکسس در ابتدای رکوردی که در حال اصلاح است علامت فلش را قرار می دهد. در واقع سه علامت مداد(ورود داده), فلش(اصلاح داده) و ستاره(رکورد جدید)علامتهای متداول جدول است.
اگر قصد ندارید که تمامی محتویات فیلد را پاک کنید کافی است کلید F2 را فشار دهید تا داده از حالت پر رنگ خارج شود. بدین ترتیب داده جدید به داده قبلی در همان فیلد اضافه می شود.در واقع با زدن کلید F2 به حالت اصلاح وارد می شوید.البته توجه کنید که با استفاده از ماوس می توانید در هرجایی از فیلد تغییرات لازم را بدهید و استفاده از ماوس در این کارها به مراتب راحتتر از صفحه کلید است.
در اینجا ذکر این نکته را ضروری می بینم شما می توانید از کلیدهای صفحه کلید تمامی بهره را ببرید و همه کلیدها به طوری که در برنامه های دیگر مانند ورد عمل می کنند در اینجا نیز عمل خواهند کرد. همچنین شما می توانید با انتخاب گزینه های Copy و Paste از منو Edit محتوای یک فیلد را در فیلد دیگری کپی کنید این عمل درست مانند عمل کپی و الصاق در برنامه های واژه پرداز مانند Word می باشد و عملکرد آن بسیار ساده و آسان است.

استفاده از میله ابزار حالت نمایشی Datasheet

هنگام استفاده از حالت نمایشی Datasheet میله ابزار می تواند بسیار سودمند باشد. همانطور که چندین بار نیز گفته ام اکسس در انجام فعالیتهای مختلف میله ابزار را تغییر می دهد. در شکل ۱۱۱ در زیر شما می توانید با میله ابزار این پنجره آشنا شوید. حتما سعی کنید تمامی امکانات میله ابزار را به خاطر بسپارید که در مواقعی به آنها احتیاج خواهید داشت.یکی از کاربردهای مفید میله ابزار دکمه view اولین دکمه موجود در این میله است که با فشار دادن آن می توانید در بین حالتهای نمایشی Datasheet و Design حرکت کنید.

کنترل بر روی رکوردهای زیاد:

فرض کنید بخواهید به جدولی که قبلا چند صد رکورد وارد آن شده, رکوردهای جدید را اضافه کنید.ممکن است رکوردهای جدید شما را گیج کنند و یا تشخیص رکوردهای جدید دشوار باشد.قبل از ورود رکوردهای جدید می توانید تمامی رکوردهای پیشین را مخفی کنید.برای این کار کافی است از منو Records گزینه Data Entry را انتخاب کنید اکسس بجز رکوردهایی که به تازگی وارد شده, باقی را از دید شما پنهان می کند. در این هنگام وقتی شما داده های جدید را وارد می کنید اکسس فقط رکوردهای جدیدی را که وارد کرده اید نمایش می دهد.در واقع تمامی رکوردها در جدول وجود دارند ولی اکسس آنها را پنهان می کند. برای بازگشت به وضعیت نمایش تمامی رکوردها می توانید از منو Records گزینه Remove File/Sort را انتخاب کنید. در این صورت اکسس تمامی رکوردهای جدول را نشان می دهد.
جدولهای پایگاه داده ممکن است بسیار بزرگ باشد مثلا ممکن است در انبار یک شرکت صدها جنس وجود داشته باشد که در پایگاه داده ثبت شده اند.

برای حرکت در جدولهای بزرگ بجای استفاده از کلیدهای صفحه کلید می توانید از منو Edit گزینه Goto را انتخاب کنیدتا لیستی باز شود که به شما امکان رفتن به اولین رکورد, آخرین رکورد, رکورد قبلی یا بعدی در جدول را می دهد.همچنین اگر از لیست باز شده گزینه New را انتخاب کنید اکسس یک راست به رکورد جدیدی در انتهای جدول می رود. در واقع این لیست Goto درست مانند دکمه های حرکت در زیر پنجره Datasheet است که قبلا درباره آنها صحبت کردیم. در این دکمه شما می توانید با تایپ شماره رکورد مورد نظر یک راست به آن رکورد بروید. مثلا اگر در جدولی قصد رفتن به رکورد ۱۳۶۳ را دارید کافی است کلید F5 را فشار داده و عدد ۱۳۶۵ را وارد کنید تا اکسس به آن رکورد رجوع کند.(البته در درس آتی جستجوی داده های معین توضیح داده خواهد شد)
حتما همگی با کاربرد دکمه Undo آشنا هستید در واقع این دکمه زمانی به کار می رود که هنگام وارد کردن داده در یک فیلد متوجه شدید که اشتباهی رخ داده است و قصد دارید داده های قبلی فیلد به آن بازگردند با زدن دکمه Undo(بازگرداندن) از میله ابزار یا فشار کلید Esc از صفحه کلید این عمل به راحتی انجام می شود.

ورود داده های غیر متنی:

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

ورود داده در فیلدی از نوع Memo :

همانطور که در دروس پیش نیز ذکر شد داده از نوع Memo نسبت به داده از نوع متن می تواند مقدار کاراکتر بیشتری را در خود نگهداری کند یعنی چیزی حدود ۶۴۰۰۰ کاراکتر. اکسس برای کار با این متن بزرگتر ابزار خاصی را در نظر گرفته است.
توجه: در حالت نمایشی Datasheet ابزارهای ورود داده برای فیلدهای از نوع Memo ضعیف است. فرمها و پنجره های محاوره(درون برنامه), قابلیتهای بهتری برای این کار فراهم می کنند.
معمولا در هنگامی که در یک فیلد از نوع Memo قصد ورود داده ای را داشته باشیم روی آن Zoom می کنیم برای این کار کافی از کلیدهای shift+F2 را فشار دهید.
کارکرد این پنجره zoom به طرز خاصی تعجب آور است مثلا اگر شما بخواهید پس از پایان یک پاراگراف در فیلد Memo یک پاراگراف دیگر را شروع به تایپ کنیدباید به جای Enter کلیدهای ctrl+Enter را فشار دهید. تا اکسس نشانگر را به خط جدید ببرد.
اگر برای ورود داده ها از فرم استفاده کنید فرم قادر خواهد بود تا تمامی فیلد Memo را در یک لحظه نمایش دهد و به شما امکان می دهد تا به راحتی و بسیار طبیعی تر در فیلد از نوع Memo گردش کنید.(البته بعدا در مورد فرمها به طور مفصل صحبت خواهیم کرد.)

ورود داده در فیلدی از نوع Data/Time (تاریخ/زمان):

در ورود داده در این نوع فیلد باید توجه کنید که شما در هنگام ایجاد پایگاه داده برای ورود داده در این فیلد چه شکلی را انتخاب کرده اید پس باید بر اساس همان شکل انتخابی داده ها را وارد کنید. واضح است که در این نوع فیلدها هم تاریخ و هم زمان را می توانید وارد کنید یا یکی را وارد کنید. برای درج تاریخ سیستمی خود در این نوع فیلد (یعنی تاریخ حال) کافی است دکمه های ;+Ctrl را فشار دهید تا تاریخ موجود در سیستم در فیلد وارد شود.

ورود داده در فیلدی از نوع Yes/No (بلی/خیر):

اگر داده ای از نوع Yes/No در جدول خود داشته باشید به جای آن یک جعبه انتخابی را خواهید دید که اگر جعبه را انتخاب کنید در واقع Yes و اگر انتخاب نکنید در واقع No را برگزیده اید. برای انتخاب جعبه های انتخابی یا باید از ماوس استفاده کنید یا اینکه کلید SpaceBar را از صفحه کلید فشار دهید.

ورود داده در فیلدی از نوع OLE:

اگر بخواهید داده های نرم افزارهای دیگر را در اکسس ذخیره کنید (مانند عکس,صوت,فیلم و غیره) باید داده ای از نوع OLE ایجاد کرده باشید نحوه ایجاد این نوع داده در دروس پیش گفته شده است. برای وارد کردن این نوع داده نمی توانید از صفحه کلید استفاده کنید پس باید روش مخصوصی را طی کنید. برای قرار دادن شی از نوع OLE ابتدا باید مکان شی OLE را با استفاده از ماوس در جدول انتخاب کنید بعد از منو Insert گزینه Object را انتخاب کنید تا پنجره ای مانند شکل ۱۱۲ در زیر باز شود. این پنجره راه ورود داده های دیگر در اکسس است.

در این پنجره دو انتخاب وجود دارد یکی استفاده از نرم افزارهای گوناگون برای ایجاد فایل مورد نظر(Create New) و دیگری استفاده از فایلهایی که قبلا ایجاد و روی هارد ذخیره شده اند(Create form file). اگر از حالت اول استفاده کنید یعنی قصد داشته باشید با استفاده از نرم افزاری دیگر اقدام به ایجاد فایل خود کنید با انتخاب گزینه Create Now از لیست کناری آن نرم افزار مورد نظر خود را انتخاب کنید و بر روی OK کلیک کنید تا نرم افزار باز شود و شی جدید ایجاد گردد.(مانند استفاده از نرم افزار Photoshop برای ذخیره یک فایل فوتوشاپ در پایگاه داده)
ولی اگر حالت دوم را مورد استفاده قرار می دهیدهرچند که پیشنهاد من استفاده از مورد قبل است باید گزینه Create form file را انتخاب کنید تا کادری در مقابل شما ایجاد شود. با کلیک روی دکمه Browse اقدام به انتخاب فایل موردنظر کنید. توجه کنید که اکسس نمی تواند در حالت نمایشی Datasheet شی از نوع OLE را نمایش دهد و فقط به ذکر یک نام در مورد آن بسنده می کند مانند Bitmap Image ولی با استفاده از فرمها یا گزارشها می توان موضوع OLE را نمایش داد.
درس ورود داده ها در جدول هم به پایان رسید. امیدواریم این مبحث برای شما مفید بوده باشد. در درس آتی در مورد جستجو و دیگر موارد لازم در کار با داده ها صحبت خواهیم کرد.

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

در تمام نسخه های ویژوال بیسیک تقریبا به صورت مشابه این کار انجام میشود . نسخه ۴ ویژوال بیسیک از طریق Data manager و در نسخه های بعدی به وسیله Visual Data Manager میتوان از امکانات پایگاه داده ها استفاده کرد . از آنجا که من از ویژوال بیسیک ۶ استفاده میکنم بنابراین به بررسی Visual Data Manager می پردازم .
برای اجرای این برنامه از منوی Add-Ins گزینه Visual Data Manager را انتخاب کنید . در صورتی که برای اولین بار این برنامه را اجرا کرده باشید پیغامی در مورد فایل حفاظت System.MD? دریافت خواهید کرد . برای ادامه No را انتخاب کنید تا برنامه Vis Data اجرا شود.

خوب حالا میخواهیم یک پایگاه داده ایجاد کنیم . در ویژوال بیسیک میتوان از انواع پایگاههای داده از قبیل قاکس پرو , پاراداکس , درایو ODBC و غیره استفاده کرد و همچنین تمام جداول آنها را ایجاد کرد ولی ما در اینجا فقط ایجاد پایگاه داده استاندارد مایکروسافت که همان اکسس است را شرح میدهیم .

۱- منوی File | New | Microsoft Access | Version 7.0 MDB را انتخاب کنید .

۲- در قسمت بعد باید مسیر ذخیره سازی و نام این پایگاه را مشخص کنیم به عنوان مثال برای نام آن MyDatabase را در قسمت نام فایل نوشته و روی دکمه Save کلیک میکنیم . آنگاه برنامه دو پنجره را در اختیار ما قرار میدهد , یکی Database Windows و دیگری SQL Statement میباشد .

۳- در پنجره Database Windows دکمه راست ماوس را کلیک کرده تا منویی روی این پنجره باز شود از این منو گزینه New Table را برای ایجاد جدول جدید انتخاب نمائید .

۴- پنجره Table Structure شامل دو قسمت میباشد که یکی مربوط به فیلدهای جدول و دیگری مربوط به ایندکس های آن میباشد.

۵- در قسمت Table Name نام جدول مورد نظر را مانند MyTable وارد میکنیم برای ایجاد فیلدهای این جدول باید دکمه فرمان Add Field را انتخاب کنیم تا پنجره مربوط به آن باز شود.

۶- حال تک تک مشخصات فیلد های این جدول از قبیل Name , Type , Size , Variable Field , Fixed Field , allow zero length و غیره را تنظیم میکنیم

۷- بعد از ایجاد فیلد ها اگر بخواهیم به آنها ایندکسی نسبت دهیم در پنجره Table Structure روی دکمه Add index تنظیمات مربوط به ایندکس را نیز انجام میدهیم .

۸- خوب حالا بانک اطلاعاتی ما آماده شد . روی این جدول در پنجره Database Windows دو بار کلیک کنید تا جدول MyTable نمایش داده شود .

آموزش اکسس (بخش پنجم)

ماجول تاریخ هجری شمسی با توابع جانبی آن
در بانک اطلاعاتی Access فیلدهای نوع Date پاسخگوی نیاز کاربران فارسی که با تاریخ هجری شمسی کار می کنند نیست . البته برنامه هایی مثل پارسا ۹۹ تقویم سیستم را به تقویم هجری شمسی تبدیل می کند و بعد از آن کاربران فارسی می توانند از فیلدهای نوع Date اکسس استفاده کنند .بدین ترتیب پارسا مشکل تاریخ هجری شمسی را حل میکند ولی بعضا تاریخ شمسی سیستم بنا به دلایلی از بین میرود . مثلا اگربعد از نصب پارسا، Officeنصب شود تاریخ هجری شمسی سیستم به هم می خورد. برای رهایی از وابستگی برنامه های شما به پارسا و … ، توابع زیر می تواند مشکل شما را بطور کامل حل کند .
این ماجول در چندین برنامه تست شده و جواب گرفته است شما هم می توانید از آن استفاده کنید.
(توجه داشته باشید که کدهای نوشته شده ، در اینجا از چپ به راست نمایش داده شده اند ولی با کپی آن در اکسس ، نمایش آن از چپ به راست خواهد شد)در صورت استفاده از این ماجول ، فیلدهای از نوع تاریخ را باید از نوع Number تعریف کنید. توضیحات بیشتر جهت استفاده از ماجول ، درون خود ماجول نوشته شده است.
برای استفاده از این ماجول ، از دو خط پایین تر تا انتهای متن را در حافظه کپی کرده (Copy) و سپس در یک ماجول جدید در اکسس یا VB قرار دهید (Paste):

‘ ۱- تعریف کنید Number(Long) است را بصورت Date فیلدهایی که نوع آنها
‘ ۲- این فیلدها را بصورت ۰۰/۰۰/۰۰ تنظیم کنید InputMask خاصیت
‘ بدلیل ۶ رقمی در نظر گرفتن فیلد تاریخ ، این توابع تا سال ۱۳۹۹ کارایی دارد
‘ …
‘ تاریخ جاری سیستم را به هجری شمسی تبدیل می کند Shamsi() تابع
‘ بکار ببرید Now() را می توانید در گزارشات بجای تابع Dat() تابع
‘ :برای جلوگیری از ورود تاریخ غلط به درون یک فیلد بترتیب زیر عمل میکنید
‘ :بشکل زیر بکار ببرید ValidationRule را در خاصیت ValidDate() تابع
‘ ValidDate([نام فیلد])=True
‘ …

‘*******************************************
Public Function Rooz(F_Date As Long) As Byte
‘این تابع عدد مربوط به روز یک تاریخ را برمگرداند
Rooz = F_Date Mod 100
End Function
‘*******************************************
Function Mah(F_Date As Long) As Byte
‘این تابع عدد مربوط به ماه یک تاریخ را برمگرداند
Mah = Int((F_Date Mod 10000) / 100)
End Function
‘*******************************************
Public Function Sal(F_Date As Long) As Byte
‘این تابع عدد مربوط به سال یک تاریخ را برمگرداند
Sal = Int(F_Date / 10000)
End Function
‘*******************************************
Public Function Kabiseh(ByVal OnlySal As Variant) As Byte
‘ورودی تابع عدد دورقمی است
‘این تابع کبیسه بودن سال را برمیگرداند
‘اگر سال کبیسه باشد عدد یک و درغیر اینصورت صفر را بر میگرداند
Kabiseh = 0
If OnlySal >= 75 Then
If (OnlySal – 75) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
ElseIf OnlySal <= 70 Then
If (70 – OnlySal) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
End If

End Function
‘*******************************************
Function ValidDate(F_Date As Long) As Boolean
Dim M, S, R As Byte
‘ این تابع اعتبار یک عدد ورودی را از نظر تاریخ هجری شمسی بررسی می کند
‘ را برمی گرداند False واگر نامعتبر باشد True اگر تاریخ معتبر باشد
ValidDate = True
S = Sal(F_Date)
M = Mah(F_Date)
R = Rooz(F_Date)
‘********
If F_Date < 100101 Then
ValidDate = False
Exit Function
End If

If M > 12 Or M = 0 Or R = 0 Then
ValidDate = False
Exit Function
End If

If R > MahDays(S, M) Then
ValidDate = False
Exit Function
End If
End Function
‘*******************************************
Public Function AddDay(ByVal F_Date As Long, ByVal add As Integer) As Long
Dim K, M, S, R, Days As Byte
R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

‘تبدیل روز به عدد ۱ جهت ادامه محاسبات و یا اتمام محاسبه
Days = MahDays(S, M)
If add > Days – R Then
add = add – (Days – R + 1)
R = 1
If M < 12 Then
M = M + 1
Else
M = 1
S = S + 1
End If
Else
R = R + add
add = 0
End If

While add > 0
K = Kabiseh(S) ‘کبیسه: ۱ و غیر کبیسه: ۰
Days = MahDays(S, M) ‘تعداد روزهای ماه فعلی
Select Case add
Case Is < Days
‘اگر تعداد روزهای افزودنی کمتر از یک ماه باشد
R = R + add
add = 0
Case Days To IIf(K = 0, 365, 366) – 1
‘اگر تعداد روزهای افزودنی بیشتر از یک ماه و کمتر از یک سال باشد
add = add – Days
If M < 12 Then
M = M + 1
Else
S = S + 1
M = 1
End If
Case Else
‘اگر تعداد روزهای افزودنی بیشتر از یک سال باشد
S = S + 1
add = add – IIf(K = 0, 365, 366)
End Select
Wend
AddDay = (S * 10000) + (M * 100) + (R)

End Function

‘***********************************************
Public Function Shamsi() As Long
‘تاریخ جاری سیستم را به تاریخ هجری شمسی تبدیل می کند
Dim Shamsi_Mabna As Long
Dim Miladi_mabna As Date
Dim Dif As Long
‘در اینجا ۸۰/۱۰/۱۱ با ۲۰۰۲/۰۱/۰۱ معادل قرارداده شده
Shamsi_Mabna = 791012
Miladi_mabna = #1/1/01#
Dif = DateDiff(“d”, Miladi_mabna, Date)
If Dif < 0 Then
MsgBox “تاریخ جاری سیستم شما نادرست است , آنرا اصلاح کنید.”
Else
Shamsi = AddDay(Shamsi_Mabna, Dif)
End If
End Function
‘***********************************************
Public Function DayWeek(F_Date As Long) As String
Dim a As String
Dim N As Byte
N = DayWeekNo(F_Date)
Select Case N
Case 0
a = “شنبه”
Case 1
a = “یکشنبه”
Case 2
a = “دوشنبه”
Case 3
a = “سه‌شنبه”
Case 4
a = “چهارشنبه”
Case 5
a = “پنج‌شنبه”
Case 6
a = “جمعه”
End Select
DayWeek = a
End Function

‘***********************************************
Public Function Dat()
Dim D As Long
D = Shamsi
Dat = DayWeek(D) & ” 13″ & Sal(D) & “/” & Mah(D) & “/” & Rooz(D)
End Function

‘***********************************************
Public Function Diff(ByVal FromDate As Long, ByVal To_Date As Long) As Long
‘این تابع تعداد روزهای بین دو تاریخ را ارائه می کند
Dim Tmp As Long
Dim S1, M1, r1, S2, m2, r2 As Integer
Dim Sumation As Single
Dim Flag As Boolean
Flag = False
If FromDate = 0 Or IsNull(FromDate) = True Or To_Date = 0 Or IsNull(To_Date) = True Then
Diff = 0
Exit Function
End If

If FromDate > To_Date Then
‘اگر تاریخ شروع از تاریخ پایان بزرگتر باشد آنها موقتا جابجا می شوند
Flag = True
Tmp = FromDate
FromDate = To_Date
To_Date = Tmp
End If
r1 = Rooz(FromDate)
M1 = Mah(FromDate)
S1 = Sal(FromDate)
r2 = Rooz(To_Date)
m2 = Mah(To_Date)
S2 = Sal(To_Date)
Sumation = 0

Do While S1 < S2 – 1 Or (S1 = S2 – 1 And (M1 < m2 Or (M1 = m2 And r1 <= r2)))
‘اگر یک سال یا بیشتر اختلاف بود
If Kabiseh((S1)) = 1 Then
If M1 = 12 And r1 = 30 Then
Sumation = Sumation + 365
r1 = 29
Else
Sumation = Sumation + 366
End If
Else
Sumation = Sumation + 365
End If
S1 = S1 + 1
Loop

Do While S1 < S2 Or M1 < m2 – 1 Or (M1 = m2 – 1 And r1 < r2)
‘اگر یک ماه یا بیشتر اختلاف بود
Select Case M1
Case 1 To 6
If M1 = 6 And r1 = 31 Then
Sumation = Sumation + 30
r1 = 30
Else
Sumation = Sumation + 31
End If
M1 = M1 + 1
Case 7 To 11
If M1 = 11 And r1 = 30 And Kabiseh(S1) = 0 Then
Sumation = Sumation + 29
r1 = 29
Else
Sumation = Sumation + 30
End If
M1 = M1 + 1
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + 30
Else
Sumation = Sumation + 29
End If
S1 = S1 + 1
M1 = 1
End Select
Loop

If M1 = m2 Then
Sumation = Sumation + (r2 – r1)
Else
Select Case M1
Case 1 To 6
Sumation = Sumation + (31 – r1) + r2
Case 7 To 11
Sumation = Sumation + (30 – r1) + r2
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + (30 – r1) + r2
Else
Sumation = Sumation + (29 – r1) + r2
End If
End Select
End If

If Flag = True Then
Sumation = -Sumation
End If
Diff = Sumation
End Function

Public Function DayWeekNo(F_Date As Long) As String
‘این تابع یک تاریخ را دریافت کرده و مشخص می کند چه روزی از هفته است
‘اگر شنبه باشد عدد ۰
‘اگر ۱شنبه باشد عدد ۱
‘……
‘اگر جمعه باشد عدد ۶
Dim day As String
Dim Shmsi_Mabna As Long
Dim Dif As Long
‘مبنا ۸۰/۱۰/۱۱
Shmsi_Mabna = 801011
Dif = Diff(Shmsi_Mabna, F_Date)
If Shmsi_Mabna > F_Date Then
Dif = -Dif
End If
‘با توجه به اینکه ۸۰/۱۰/۱۱ ۳شنبه است محاسبه میشود day متغیر
day = (Dif + 3) Mod 7
If day < 0 Then
DayWeekNo = day + 7
Else
DayWeekNo = day
End If
End Function

Function MahName(ByVal Mah_no As Byte) As String
Select Case Mah_no
Case 1
MahName = “فروردین”
Case 2
MahName = “اردیبهشت”
Case 3
MahName = “خرداد”
Case 4
MahName = “تیر”
Case 5
MahName = “مرداد”
Case 6
MahName = “شهریور”
Case 7
MahName = “مهر”
Case 8
MahName = “آبان”
Case 9
MahName = “آذر”
Case 10
MahName = “دی”
Case 11
MahName = “بهمن”
Case 12
MahName = “اسفند”
End Select
End Function

Function SalMah(ByVal F_Date As Long) As Integer
‘چهار رقم اول تاریخ که معرف سال و ماه است را برمی گرداند
SalMah = Val(Left$(F_Date, 4))
End Function

Function MahDays(ByVal Sal As Byte, ByVal Mah As Byte) As Byte
‘این تابع تعداد روزهای یک ماه را برمی گرداند
Select Case Mah
Case 1 To 6
MahDays = 31
Case 7 To 11
MahDays = 30
Case 12
If Kabiseh(Sal) = 1 Then
MahDays = 30
Else
MahDays = 29
End If
End Select

End Function

Function Make_Date(ByVal F_Date As Long) As String
‘یک تاریخ را بصورت یک رشته ۱۰ رقمی با ذکر چهار رقم برای سال ارائه می کند
Dim D As String
D = Trim(Str(F_Date))
If IsNull(F_Date) = True Or F_Date = 0 Then
Make_Date = “”
Else
Make_Date = “13” & Mid(D, 1, 2) & “/” & Mid(D, 3, 2) & “/” & Mid(D, 5, 2)
End If
End Function

Function NextMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 12 Then
NextMah = (Int(Sal_Mah / 100) + 1) * 100 + 1
Else
NextMah = Sal_Mah + 1
End If
End Function

Function PreviousMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 1 Then
PreviousMah = (Int(Sal_Mah / 100) – 1) * 100 + 12
Else
PreviousMah = Sal_Mah – 1
End If
End Function

Function SubtractDay(ByVal F_Date As Long, ByVal Subtract As Long) As Long
‘به تعداد روز معینی از یک تاریخ کم کرده و تاریخ حاصله را ارائه میکند
Dim K, M, S, R, Days As Byte

R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

‘تبدیل روز به عدد ۱ جهت ادامه محاسبات و یا اتمام محاسبه
If Subtract >= R – 1 Then
Subtract = Subtract – (R – 1)
R = 1
Else
R = R – Subtract
Subtract = 0
End If

While Subtract > 0
K = Kabiseh(S – 1) ‘کبیسه: ۱ و غیر کبیسه: ۰
Days = MahDays(IIf(M >= 2, S, S – 1), IIf(M >= 2, M – 1, 12)) ‘تعداد روزهای ماه قبلی
Select Case Subtract
Case Is < Days
‘اگر تعداد روزهای کاهش کمتر از یک ماه باشد
R = Days – Subtract + 1
Subtract = 0
If M >= 2 Then
M = M – 1
Else
S = S – 1
M = 12
End If
Case Days To IIf(K = 0, 365, 366) – 1
‘اگر تعداد روزهای کاهش بیشتر از یک ماه و کمتر از یک سال باشد
Subtract = Subtract – Days
If M >= 2 Then
M = M – 1
Else
S = S – 1
M = 12
End If
Case Else
‘اگر تعداد روزهای کاهش بیشتر از یک سال باشد
S = S – 1
Subtract = Subtract – IIf(K = 0, 365, 366)
End Select
Wend
SubtractDay = (S * 10000) + (M * 100) + (R)

End Function

 Join کردن بیش از ۲ جدول برای Database های Access

کتاب ColdFusion MX Bible برای Join کردن بیش از دو جدول یک بانک اطلاعاتی راه حل زیر را پیشنهاد می کند:

SELECT
c.CompanyID,
c.CompanyName,
e.LastName,
e.FirstName,
e.Salary,
d.FullName,
d.RelationShip
FROM
Company c INNER JOIN Employee e
ON c.CompanyID = e.CompanyID
INNER JOIN Dependant d
ON e.SSN = d.SSN

که در بیشتر برنامه های Database Server درست عمل می کند.
اما در بانکهای اطلاعاتی Microsoft Access پیغام خطایی با توضیح زیر می دهد :

Operator expected

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

SELECT
c.CompanyID,
c.CompanyName,
e.LastName,
e.FirstName,
e.Salary,
d.FullName,
d.RelationShip
FROM
(Company c INNER JOIN Employee e
ON c.CompanyID = e.CompanyID)
INNER JOIN Dependant d
ON e.SSN = d.SSN

و یک نمونه ی دیگر در اتصال ۴ جدول :

SELECT
cfarticle.id,
cfarticle.title,
cfarticle.description,
cfarticle.dateadded,
editorial.authorname as author,
categories.name,
levels.levelname
FROM
((cfarticle INNER JOIN categories ON cfarticle.category=categories.id)
INNER JOIN editorial ON cfarticle.author=editorial.id)
INNER JOIN levels ON cfarticle.skllevel=levels.id

سئوال :

چگونه در اکسس اشیاء مخفی (Hidden)  مثل فرمها ، جداول و … را می توان دید؟

چواب :

این گزینه را تیک بزنید       Tools>Options>view>Show hidden Object

سئوال :

در برنامه های کاربردی بهترین روش برای چاپ گزارشات چگونه است ؟

چواب :

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

روش اجراء این کار در اکسس :

فرم فوق الذکر باید یک رشته تولید کند که در حقیقت همان بخش Where یک رشته  Sql است . این رشته را باید در آرگومان WhereCondition از دستور OpenReport بکار برد . مثال زیر گویای مطلب است :

Sub Print_Click()

      Dim Str As String

  Str=””

 If Not IsNull(M.ComboCity) Then

  Str=”CityId=”& Me.ComboCity

 Endif

 Docmd.OpenReport “Report1”,acviewNormal,,Str

End Sub

سئوال :

چگونه می توان شرطهای یک Query  را به مقدار وارده در تکست باکس یک فرم نسبت داد بگونه ای که اگر تکست باکس خالی بماند شرطی در Query اعمال نشود؟

جواب :

همانطور که می دانید در حالت عادی برای ارجاع شرط Query  به فرم ،  باید در Criteria  مربوط به Query عبارتی با این ساختار بنویسیم : [Forms![FormName]![TextBoxName مثلا: Forms![Form1]![Text1]

اما این روش شرط گذاری برای حاتی که تکست باکس خالی باشد شرطی را اعمال می کند که باعث می شود هیچ رکوردی  در نتیجه اجراء Query حاصل نشود و اگر بخواهیم در حالت خالی بودن تکست باکس هیچ شرطی اعمال نشود باید در Criteria  به این شکل بنویسیم:

 Forms![Form1]!Text1 Or Forms![Form1]!Text1 Is Null

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

نحوه استفاده از تابع :
تابع Adad که در زیر ارائه شده است یک عدد را بعنوان ورودی گرفته و معادل حروفی آن عدد در زبان فارسی را بعنوان خروجی تولید می کند. مثلا (Adad(1373 مقدار”یکهزار و سیصد و هفتاد و سه” را بعنوان خروجی تولید می کند.برای استفاده از این توابع باید از چند خط پایین تر (Start of Module) تا انتهای این یادداشت را در حافظه کپی (Copy) کرده و در یک ماجول جدید در اکسس یا VB ، Paste کنید . ( توجه داشته باشید که نمایش کدهای نوشته شده در اینجا راست به چپ است که پس از کپی کردن آن در ماجول اکسس بشکل صحیح نمایش داده خواهد شد)

‘ *********** Start of Module ***********

‘توابع تبدیل عدد به معادل حروفی آن در زبان فارسی
‘برنامه نویس : حمید آزادی اردکانی
‘ویرایش اول : اردیبهشت ۱۳۸۰
‘ پست الکترونیک : azadi1355@yahoo.com
‘ آدرس وب : http://try.persianblog.com

Function Adad(ByVal Number As Double) As String
If Number = 0 Then
Adad = “صفر”
End If
Dim Flag As Boolean
Dim S As String
Dim I, L As Byte
Dim K(1 To 5) As Double

S = Trim(Str(Number))
L = Len(S)
If L > 15 Then
Adad = “بسیار بزرگ”
Exit Function
End If
For I = 1 To 15 – L
S = “0” & S
Next I
For I = 1 To Int((L / 3) + 0.99)
K(5 – I + 1) = Val(Mid(S, 3 * (5 – I) + 1, 3))
Next I
Flag = False
S = “”
For I = 1 To 5
If K(I) <> 0 Then
Select Case I
Case 1
S = S & Three(K(I)) & ” تریلیون”
Flag = True
Case 2
S = S & IIf(Flag = True, ” و “, “”) & Three(K(I)) & ” میلیارد”
Flag = True
Case 3
S = S & IIf(Flag = True, ” و “, “”) & Three(K(I)) & ” میلیون”
Flag = True
Case 4
S = S & IIf(Flag = True, ” و “, “”) & Three(K(I)) & ” هزار”
Flag = True
Case 5
S = S & IIf(Flag = True, ” و “, “”) & Three(K(I))
End Select
End If
Next I
Adad = S
End Function

Function Three(ByVal Number As Integer) As String
Dim S As String
Dim I, L As Long
Dim h(1 To 3) As Byte
Dim Flag As Boolean
L = Len(Trim(Str(Number)))
If Number = 0 Then
Three = “”
Exit Function
End If
If Number = 100 Then
Three = “یکصد”
Exit Function
End If

If L = 2 Then h(1) = 0
If L = 1 Then
h(1) = 0
h(2) = 0
End If

For I = 1 To L
h(3 – I + 1) = Mid(Trim(Str(Number)), L – I + 1, 1)
Next I

Select Case h(1)
Case 1
S = “یکصد”
Case 2
S = “دویست”
Case 3
S = “سیصد”
Case 4
S = “چهارصد”
Case 5
S = “پانصد”
Case 6
S = “ششصد”
Case 7
S = “هفتصد”
Case 8
S = “هشتصد”
Case 9
S = “نهصد”
End Select

Select Case h(2)
Case 1
Select Case h(3)
Case 0
S = S & ” و ” & “ده”
Case 1
S = S & ” و ” & “یازده”
Case 2
S = S & ” و ” & “دوازده”
Case 3
S = S & ” و ” & “سیزده”
Case 4
S = S & ” و ” & “چهارده”
Case 5
S = S & ” و ” & “پانزده”
Case 6
S = S & ” و ” & “شانزده”
Case 7
S = S & ” و ” & “هفده”
Case 8
S = S & ” و ” & “هجده”
Case 9
S = S & ” و ” & “نوزده”
End Select

Case 2
S = S & ” و ” & “بیست”
Case 3
S = S & ” و ” & “سی”
Case 4
S = S & ” و ” & “چهل”
Case 5
S = S & ” و ” & “پنجاه”
Case 6
S = S & ” و ” & “شصت”
Case 7
S = S & ” و ” & “هفتاد”
Case 8
S = S & ” و ” & “هشتاد”
Case 9
S = S & ” و ” & “نود”
End Select

If h(2) <> 1 Then
Select Case h(3)
Case 1
S = S & ” و ” & “یک”
Case 2
S = S & ” و ” & “دو”
Case 3
S = S & ” و ” & “سه”
Case 4
S = S & ” و ” & “چهار”
Case 5
S = S & ” و ” & “پنج”
Case 6
S = S & ” و ” & “شش”
Case 7
S = S & ” و ” & “هفت”
Case 8
S = S & ” و ” & “هشت”
Case 9
S = S & ” و ” & “نه”
End Select
End If
S = IIf(L < 3, Right(S, Len(S) – 3), S)
Three = S
End Function

‘ *********** End Of Module ***********

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

مقدمه
مطلب زیر در زمینه افزایش امنیت سیستم ها است. نکته ای که در زمینه امنیت هر نوع سیستمی باید به آن توجه داشت اینست که بطور کلی امنیت یک امر نسبی است .
بعبارت دیگر یک راه حل امنیتی ، قطعا جلوی بسیاری از حملات علیه سیستم را خواهد گرفت ولی هیچگاه بطور کامل حملات را خنثی نخواهد کرد و همیشه حفره های امنیتی وجود خواهند داشت .
در یادداشت قبل گفتیم که به هنگام باز شدن فایلهای اکسس، Startup اجراء می شود . به کمک گزینه های Startup می توانیم از دسترسی کاربران به محیط طراحی برنامه جلوگیری کنیم . ولی همانطور که قبلا گفته شد میکرو سافت با انگیزه ایجاد سیستم امنیتی چند مرحله ای یک روش ضد امنیتی برای آن ایجاد کرده است و کاربران برنامه ما می توانند با پایین نگه داشتن دکمه Shift از اجراء Startup جلوگیری کنند و وارد محیط طراحی شوند . حال اگر بخواهیم دکمه شیفت را غیر فعال کنیم تا کسی نتواند وارد محیط طراحی شود باید به این طریق عمل کرد :

استفاده از خاصیت AllowByPassKey
خاصیت AllowByPassKey یکی از خواص شیء Database است که:
اگر مقدار آن True باشد دکمه شیفت فعال است .
و اگر مقدار آن False باشد دکمه شیفت غیر فعال است .

این خاصیت عملا در لیست خواص یک Database نیست و باید آنرا فقط برای اولین بار ایجاد (Create) کرد . بعد از ایجاد آن می توان مقدار آنرا False یا True کرد .

تذکر : حتما یک کپی از فایل خودتان قبل از اجراء این برنامه بردارید چون ممکن است دیگر نتوانید وارد محیط برنامه خودتان شوید . من هم با عرض معذرت وقت پاسخگویی به ایمیل های دوستان را ندارم و دچار مشکل خواهید شد.

سه دکمه روی یک فرم مطابق شکل بالا ایجاد کنید و کدهای زیر را در آن بنویسد.
(نمایش کدهای نوشته شده مناسب نیست ولی اگر آنرا در حافظه کپی کنید و در ماجول فرمتان کپی کند بدرستی تمایش داده می شود .)

‘برای اولین دفعه :
Private Sub Create_Click()
On Error GoTo Er

Dim db As Database
Dim prp As Property
Set db = CurrentDb
Set prp = db.CreateProperty(“allowbypasskey”, dbBoolean, False)
db.Properties.Append prp
db.Close

Ex:
Exit Sub
Er:
If Err.Number = 3367 Then
MsgBox “این خاصیت ایجاد شده و لازم نیست مجددا ایجاد شود”
End If
Resume Ex

End Sub

‘جهت غیر فعال کردن شیفت
Private Sub ShiftNo_Click()
Dim db As Database
Set db = CurrentDb
db.Properties(“allowbypasskey”) = False
db.Close
End Sub

‘جهت فعال کردن شیفت
Private Sub ShiftOk_Click()
Dim db As Database
Set db = CurrentDb
db.Properties(“allowbypasskey”) = True
db.Close
End Sub

روشهای ضد امنیتی دیگری هم هست که همین خاصیت توسط کاربران برنامه تغییر داده شود.
امیدوارم مفید واقع شده باشد.
ما اصل مطلب :
یکی از دوستان وبلاگی من پرسیده بود چطوری پیغام Error مربوط به ورود رکورد تکراری را در اکسس فارسی کنیم . ترجیح دادم جواب کاملی برای سئوال ایشون بدم تا همه استفاده کنن. بنابراین ابتدا جواب ایشون رو میدم و بعد از اون بطور کاملتر برای همه وبلاگی های عزیز روش کنترل خطا را تشریح می کنم .

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

جواب دوست ما:
در رویداد OnError مربوط به فرم ورود اطلاعات این کد را می نویسیم:

If DataErr = 3022 Then
MsgBox “اطلاعات وارده تکراری است”
Response = acDataErrContinue
End If

جواب کلی :
اساسا ، هر خطا در اکسس یا VB یک کد تولید می کند . برنامه نویسان باید یک بانک اطلاعات از کد خطاهایی که رخ می دهد داشته باشند تا بتوانند با چک کردن شماره خطا پیغام فارسی مناسب آن خطا را صادر کنند .

بطور کلی دو روش کنترل خطا از این قرارند:

۱- اگر خطا مربوط به کل فرم باشد باید از طریق رویداد OnError فرم کنترل شود .
معمولا خطاهایی که مربوط به کدنویسی ما نبوده و صرفا توسط اکسس و در واکنش به اشتباهات کاربر صادر می شود در این رویداد کنترل می شود . در این رویداد ، پارامتر DataErr حاوی کد خطاست. (بعبارت واضح تر اگر می خواهید کد مربوط به هر Error را شناسایی کنید می توانید این دستور در رویداد OnError فرم بنویسید: MsgBox DataErr )

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

Dim Str as String

Select Case DataErr
Case 3022
Str=”اطلاعات وارده تکراری است”
Case 2237
Str = “اطلاعات وارده در لیست وجود ندارد”
‘خط فوق برای مواردی است که یک مقداری که در کمبو باکس وجود ندارد ، تایپ شده باشد
Case …
Str=…
….
End Select

Msgbox Str
Response = acDataErrContinue

۲- اگر خطا مربوط به کدهایی باشد که خودمان در یک Sub نوشته ایم :
در این روش باید در ابتدای Sub با دستور : <اسم زیر روال کنترل خطا> On Error Goto ، کنترل خطا را به یک روال کنترل خطا ارجاع دهیم.
( تمام کدهایی که ویزارد Command Button بطور خودکار در رویداد OnClick دکمه ها ایجاد می کند نمونه خوبی برای این روش هستند. ضمنا در این روش بکمک Err.Number کد خطا شناسایی می شود )

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

در بانک اطلاعاتی Access فیلدهای نوع Date پاسخگوی نیاز کاربران فارسی که با تاریخ هجری شمسی کار می کنند نیست . البته برنامه هایی مثل پارسا ۹۹ تقویم سیستم را به تقویم هجری شمسی تبدیل می کند و بعد از آن کاربران فارسی می توانند از فیلدهای نوع Date اکسس استفاده کنند .بدین ترتیب پارسا مشکل تاریخ هجری شمسی را حل میکند ولی بعضا تاریخ شمسی سیستم بنا به دلایلی از بین میرود . مثلا اگربعد از نصب پارسا، Officeنصب شود تاریخ هجری شمسی سیستم به هم می خورد. برای رهایی از وابستگی برنامه های شما به پارسا و … ، توابع زیر می تواند مشکل شما را بطور کامل حل کند .
این ماجول در چندین برنامه تست شده و جواب گرفته است شما هم می توانید از آن استفاده کنید.
(توجه داشته باشید که کدهای نوشته شده ، در اینجا از چپ به راست نمایش داده شده اند ولی با کپی آن در اکسس ، نمایش آن از چپ به راست خواهد شد)

در صورت استفاده از این ماجول ، فیلدهای از نوع تاریخ را باید از نوع Number تعریف کنید. توضیحات بیشتر جهت استفاده از ماجول ، درون خود ماجول نوشته شده است.
برای استفاده از این ماجول ، از دو خط پایین تر تا انتهای متن را در حافظه کپی کرده (Copy) و سپس در یک ماجول جدید در اکسس یا VB قرار دهید (Paste):

‘ ۱- تعریف کنید Number(Long) است را بصورت Date فیلدهایی که نوع آنها
‘ ۲- این فیلدها را بصورت ۰۰/۰۰/۰۰ تنظیم کنید InputMask خاصیت
‘ بدلیل ۶ رقمی در نظر گرفتن فیلد تاریخ ، این توابع تا سال ۱۳۹۹ کارایی دارد
‘ …
‘ تاریخ جاری سیستم را به هجری شمسی تبدیل می کند Shamsi() تابع
‘ بکار ببرید Now() را می توانید در گزارشات بجای تابع Dat() تابع
‘ :برای جلوگیری از ورود تاریخ غلط به درون یک فیلد بترتیب زیر عمل میکنید
‘ :بشکل زیر بکار ببرید ValidationRule را در خاصیت ValidDate() تابع
‘ ValidDate([نام فیلد])=True

‘*******************************************
Public Function Rooz(F_Date As Long) As Byte
‘این تابع عدد مربوط به روز یک تاریخ را برمگرداند
Rooz = F_Date Mod 100
End Function
‘*******************************************
Function Mah(F_Date As Long) As Byte
‘این تابع عدد مربوط به ماه یک تاریخ را برمگرداند
Mah = Int((F_Date Mod 10000) / 100)
End Function
‘*******************************************
Public Function Sal(F_Date As Long) As Byte
‘این تابع عدد مربوط به سال یک تاریخ را برمگرداند
Sal = Int(F_Date / 10000)
End Function
‘*******************************************
Public Function Kabiseh(ByVal OnlySal As Variant) As Byte
‘ورودی تابع عدد دورقمی است
‘این تابع کبیسه بودن سال را برمیگرداند
‘اگر سال کبیسه باشد عدد یک و درغیر اینصورت صفر را بر میگرداند
Kabiseh = 0
If OnlySal >= 75 Then
If (OnlySal – 75) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
ElseIf OnlySal <= 70 Then
If (70 – OnlySal) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
End If

End Function
‘*******************************************
Function ValidDate(F_Date As Long) As Boolean
Dim M, S, R As Byte
‘ این تابع اعتبار یک عدد ورودی را از نظر تاریخ هجری شمسی بررسی می کند
‘ را برمی گرداند False واگر نامعتبر باشد True اگر تاریخ معتبر باشد
ValidDate = True
S = Sal(F_Date)
M = Mah(F_Date)
R = Rooz(F_Date)
‘********
If F_Date < 100101 Then
ValidDate = False
Exit Function
End If

If M > 12 Or M = 0 Or R = 0 Then
ValidDate = False
Exit Function
End If

If R > MahDays(S, M) Then
ValidDate = False
Exit Function
End If
End Function
‘*******************************************
Public Function AddDay(ByVal F_Date As Long, ByVal add As Integer) As Long
Dim K, M, S, R, Days As Byte
R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

‘تبدیل روز به عدد ۱ جهت ادامه محاسبات و یا اتمام محاسبه
Days = MahDays(S, M)
If add > Days – R Then
add = add – (Days – R + 1)
R = 1
If M < 12 Then
M = M + 1
Else
M = 1
S = S + 1
End If
Else
R = R + add
add = 0
End If

While add > 0
K = Kabiseh(S) ‘کبیسه: ۱ و غیر کبیسه: ۰
Days = MahDays(S, M) ‘تعداد روزهای ماه فعلی
Select Case add
Case Is < Days
‘اگر تعداد روزهای افزودنی کمتر از یک ماه باشد
R = R + add
add = 0
Case Days To IIf(K = 0, 365, 366) – 1
‘اگر تعداد روزهای افزودنی بیشتر از یک ماه و کمتر از یک سال باشد
add = add – Days
If M < 12 Then
M = M + 1
Else
S = S + 1
M = 1
End If
Case Else
‘اگر تعداد روزهای افزودنی بیشتر از یک سال باشد
S = S + 1
add = add – IIf(K = 0, 365, 366)
End Select
Wend
AddDay = (S * 10000) + (M * 100) + (R)

End Function

‘***********************************************
Public Function Shamsi() As Long
‘تاریخ جاری سیستم را به تاریخ هجری شمسی تبدیل می کند
Dim Shamsi_Mabna As Long
Dim Miladi_mabna As Date
Dim Dif As Long
‘در اینجا ۸۰/۱۰/۱۱ با ۲۰۰۲/۰۱/۰۱ معادل قرارداده شده
Shamsi_Mabna = 791012
Miladi_mabna = #1/1/01#
Dif = DateDiff(“d”, Miladi_mabna, Date)
If Dif < 0 Then
MsgBox “تاریخ جاری سیستم شما نادرست است , آنرا اصلاح کنید.”
Else
Shamsi = AddDay(Shamsi_Mabna, Dif)
End If
End Function
‘***********************************************
Public Function DayWeek(F_Date As Long) As String
Dim a As String
Dim N As Byte
N = DayWeekNo(F_Date)
Select Case N
Case 0
a = “شنبه”
Case 1
a = “یکشنبه”
Case 2
a = “دوشنبه”
Case 3
a = “سه‌شنبه”
Case 4
a = “چهارشنبه”
Case 5
a = “پنج‌شنبه”
Case 6
a = “جمعه”
End Select
DayWeek = a
End Function

‘***********************************************
Public Function Dat()
Dim D As Long
D = Shamsi
Dat = DayWeek(D) & ” 13″ & Sal(D) & “/” & Mah(D) & “/” & Rooz(D)
End Function

‘***********************************************
Public Function Diff(ByVal FromDate As Long, ByVal To_Date As Long) As Long
‘این تابع تعداد روزهای بین دو تاریخ را ارائه می کند
Dim Tmp As Long
Dim S1, M1, r1, S2, m2, r2 As Integer
Dim Sumation As Single
Dim Flag As Boolean
Flag = False
If FromDate = 0 Or IsNull(FromDate) = True Or To_Date = 0 Or IsNull(To_Date) = True Then
Diff = 0
Exit Function
End If

If FromDate > To_Date Then
‘اگر تاریخ شروع از تاریخ پایان بزرگتر باشد آنها موقتا جابجا می شوند
Flag = True
Tmp = FromDate
FromDate = To_Date
To_Date = Tmp
End If
r1 = Rooz(FromDate)
M1 = Mah(FromDate)
S1 = Sal(FromDate)
r2 = Rooz(To_Date)
m2 = Mah(To_Date)
S2 = Sal(To_Date)
Sumation = 0

Do While S1 < S2 – 1 Or (S1 = S2 – 1 And (M1 < m2 Or (M1 = m2 And r1 <= r2)))
‘اگر یک سال یا بیشتر اختلاف بود
If Kabiseh((S1)) = 1 Then
If M1 = 12 And r1 = 30 Then
Sumation = Sumation + 365
r1 = 29
Else
Sumation = Sumation + 366
End If
Else
Sumation = Sumation + 365
End If
S1 = S1 + 1
Loop

Do While S1 < S2 Or M1 < m2 – 1 Or (M1 = m2 – 1 And r1 < r2)
‘اگر یک ماه یا بیشتر اختلاف بود
Select Case M1
Case 1 To 6
If M1 = 6 And r1 = 31 Then
Sumation = Sumation + 30
r1 = 30
Else
Sumation = Sumation + 31
End If
M1 = M1 + 1
Case 7 To 11
If M1 = 11 And r1 = 30 And Kabiseh(S1) = 0 Then
Sumation = Sumation + 29
r1 = 29
Else
Sumation = Sumation + 30
End If
M1 = M1 + 1
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + 30
Else
Sumation = Sumation + 29
End If
S1 = S1 + 1
M1 = 1
End Select
Loop

If M1 = m2 Then
Sumation = Sumation + (r2 – r1)
Else
Select Case M1
Case 1 To 6
Sumation = Sumation + (31 – r1) + r2
Case 7 To 11
Sumation = Sumation + (30 – r1) + r2
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + (30 – r1) + r2
Else
Sumation = Sumation + (29 – r1) + r2
End If
End Select
End If

If Flag = True Then
Sumation = -Sumation
End If
Diff = Sumation
End Function

Public Function DayWeekNo(F_Date As Long) As String
‘این تابع یک تاریخ را دریافت کرده و مشخص می کند چه روزی از هفته است
‘اگر شنبه باشد عدد ۰
‘اگر ۱شنبه باشد عدد ۱
‘……
‘اگر جمعه باشد عدد ۶
Dim day As String
Dim Shmsi_Mabna As Long
Dim Dif As Long
‘مبنا ۸۰/۱۰/۱۱
Shmsi_Mabna = 801011
Dif = Diff(Shmsi_Mabna, F_Date)
If Shmsi_Mabna > F_Date Then
Dif = -Dif
End If
‘با توجه به اینکه ۸۰/۱۰/۱۱ ۳شنبه است محاسبه میشود day متغیر
day = (Dif + 3) Mod 7
If day < 0 Then
DayWeekNo = day + 7
Else
DayWeekNo = day
End If
End Function

Function MahName(ByVal Mah_no As Byte) As String
Select Case Mah_no
Case 1
MahName = “فروردین”
Case 2
MahName = “اردیبهشت”
Case 3
MahName = “خرداد”
Case 4
MahName = “تیر”
Case 5
MahName = “مرداد”
Case 6
MahName = “شهریور”
Case 7
MahName = “مهر”
Case 8
MahName = “آبان”
Case 9
MahName = “آذر”
Case 10
MahName = “دی”
Case 11
MahName = “بهمن”
Case 12
MahName = “اسفند”
End Select
End Function

Function SalMah(ByVal F_Date As Long) As Integer
‘چهار رقم اول تاریخ که معرف سال و ماه است را برمی گرداند
SalMah = Val(Left$(F_Date, 4))
End Function

Function MahDays(ByVal Sal As Byte, ByVal Mah As Byte) As Byte
‘این تابع تعداد روزهای یک ماه را برمی گرداند
Select Case Mah
Case 1 To 6
MahDays = 31
Case 7 To 11
MahDays = 30
Case 12
If Kabiseh(Sal) = 1 Then
MahDays = 30
Else
MahDays = 29
End If
End Select

End Function

Function Make_Date(ByVal F_Date As Long) As String
‘یک تاریخ را بصورت یک رشته ۱۰ رقمی با ذکر چهار رقم برای سال ارائه می کند
Dim D As String
D = Trim(Str(F_Date))
If IsNull(F_Date) = True Or F_Date = 0 Then
Make_Date = “”
Else
Make_Date = “13” & Mid(D, 1, 2) & “/” & Mid(D, 3, 2) & “/” & Mid(D, 5, 2)
End If
End Function

Function NextMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 12 Then
NextMah = (Int(Sal_Mah / 100) + 1) * 100 + 1
Else
NextMah = Sal_Mah + 1
End If
End Function

Function PreviousMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 1 Then
PreviousMah = (Int(Sal_Mah / 100) – 1) * 100 + 12
Else
PreviousMah = Sal_Mah – 1
End If
End Function

Function SubtractDay(ByVal F_Date As Long, ByVal Subtract As Long) As Long
‘به تعداد روز معینی از یک تاریخ کم کرده و تاریخ حاصله را ارائه میکند
Dim K, M, S, R, Days As Byte

R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

‘تبدیل روز به عدد ۱ جهت ادامه محاسبات و یا اتمام محاسبه
If Subtract >= R – 1 Then
Subtract = Subtract – (R – 1)
R = 1
Else
R = R – Subtract
Subtract = 0
End If

While Subtract > 0
K = Kabiseh(S – 1) ‘کبیسه: ۱ و غیر کبیسه: ۰
Days = MahDays(IIf(M >= 2, S, S – 1), IIf(M >= 2, M – 1, 12)) ‘تعداد روزهای ماه قبلی
Select Case Subtract
Case Is < Days
‘اگر تعداد روزهای کاهش کمتر از یک ماه باشد
R = Days – Subtract + 1
Subtract = 0
If M >= 2 Then
M = M – 1
Else
S = S – 1
M = 12
End If
Case Days To IIf(K = 0, 365, 366) – 1
‘اگر تعداد روزهای کاهش بیشتر از یک ماه و کمتر از یک سال باشد
Subtract = Subtract – Days
If M >= 2 Then
M = M – 1
Else
S = S – 1
M = 12
End If
Case Else
‘اگر تعداد روزهای کاهش بیشتر از یک سال باشد
S = S – 1
Subtract = Subtract – IIf(K = 0, 365, 366)
End Select
Wend
SubtractDay = (S * 10000) + (M * 100) + (R)

End Function

افزودن ستونهای جدید به جداول موجود

* بدست آوردن درک کلی از اینکه هدف از ایجاد هر جدول و هر ستون چه می باشد

* ایجاد تغییرات برروی بانک اطلاعاتی بدون نیاز به ایجاد تغییرات وسیع برروی صفحات

برای اطمینان از طراحی بانک اطلاعاتی با کیفیت بالاتر, تعدادی تکنیک های حرفه ای وجود دارند که به وسیله توسعه دهندگان بانک اطلاعاتی مورد استفاده قرار می گیرند. اولین و مهمترین تکنیک, نرمال سازی بانک اطلاعاتی می باشد. این تکنیک در بخش “نرمال سازی بانک اطلاعاتی” مورد بحث قرار می گیرد. نرمال سازی بانک اطلاعاتی به شما و دیگران اجازه می دهد که ستونهای جدیدی را اضافه نمایید و جدول را با سادگی هرچه بیشتر بسازید. همچنین, هنگام مشاهده بانک اطلاعاتی دیگران, نرمال سازی باعث سادگی تفسیر و درک آن بانک های اطلاعاتی می گردد.

یک تکنیک مشابه با نرمال سازی که مورد استفاده قرار می گیرد تکنیک جداول مرجع (Lookup Tables) می باشد. فرض کنید که شما یک جدول با یک ستون دارید که می توانید آن را فقط برابر یک مقدار از پیش تعیین شده قرار دهید. برای مثال, شما ممکن است کاربرانی داشته باشید که فرمی را برروی سایت وب شما پر می نمایند. شما مایلید که این اطلاعات را در داخل جدول بانک اطلاعاتی ذخیره نمایید. اگر, در داخل فرم, از کاربران پرسیده باشید که چگونه با سایت وب تان آشنایی پیدا کرده اند, یک لیست از انتخابها را در اختیار آنها قرار می دهید که می توانند در داخل آن لیست گزینه دلخواه خود را انتخاب نمایند. چنین گزینه هایی ممکن است شامل, From a Search Engine یا From a Friend باشند. در موارد دیگر, گزینه هایی که کاربران ممکن است انتخاب نمایند, محدود شده است, و اغلب, انواعی از سئوالات می باشد که با استفاده از یکList Box از آنها پرسیده می شود.

از آنجایی که شما پاسخهای کاربران را در داخل یک جدول ذخیره می کنید, یکی از ستونهای جدول باید مقداری که تعیین می نماید که چگونه کاربران با سایت وب شما آشنا شده اند را ذخیره نماید. برای یک لحظه فکر کنید که چه چیزی را باید در این ستون ذخیره نمایید؟ یک روش ذخیره گزینه ای که کاربران انتخاب کرده اند به صورت یک رشته می باشد. بنابراین, اگر یک کاربر در مورد سایت شما از طریق یک موتور جستجو مطالبی را شنیده باشد, رشته From a Search Engine در داخل ستون قرار داده می شود. این راه حل دارای محدودیتهایی می باشد, برای مثال, در صورتی که شما بخواهید گزینه ها را دستکاری نمایید, و گزینه های جدید را اضافه نمایید, یا گزینه های موجود را حذف نمایید چه کار می کنید؟

یک راه حل قدرتمندتر استفاده از جداول مرجع می باشد. بحث در مورد جداول مرجع و اینکه چگونه می توانند مورد استفاده قرار گیرند در بخش “استفاده از جداول مرجع” آورده شده است. تکنیک مرسوم دیگری که بانک اطلاعاتی شما را قابل فهم تر می نماید, استفاده از آداب نامگذاری (Naming Conventions) می باشد. یک بانک اطلاعاتی که شامل ستونها و جداولی است که به صورت منطقی نامگذاری شده اند, خواناتر از بانک اطلاعاتی می باشد که دارای نامهای بی معنی می باشد. فرض کنید که شما باید یک جدولی بسازید که شامل لیست مشتریانتان می باشد. خوشایندتر است که نام جدول را tblcustomers قرار دهید و نام ستونهای این جدول را First Name,Last Name, Age و سایر اطلاعات دیگر قرار دهید. با چنین نامهایی ستونها و جداول, فهم اطلاعاتی را که جدول نگهداری می نماید و اینکه چه اطلاعاتی در هر ستون قرار دارد آسانتر می گردد. آیا اگر نام جدول را T1 و ستونهای آن را C1 و C2 تا CN نامگذاری نماییم فهم آن آسانتر می باشد؟ هر شخصی به غیر از شما, که سازنده این جدول می باشید, هنگام نگاه کردن در تعاریف ای جدول دچار سردرگمی خواهد شد. توصیه هایی در رابطه با آداب صحیح نامگذاری در بخش “آداب نامگذاری” گفته خواهد شد.

مشکل رایج هنگام طراحی نرم افزارهای بانک اطلاعاتی آن است هنگامی که طراحی بانک اطلاعاتی تغییر می کند, اعمال تغییرات زیادی در صفحات ای که مسئول نمایش, به روزرسانی, درج و حذف اطلاعات بانک اطلاعاتی هستند, ضروری می باشند. اگرچه قطعاً غیرممکن است که وقتی شما طراحی بانک اطلاعاتی را تغییر می دهید, مجبور به ایجاد تغییراتی در صفحات نباشید, اما اقداماتی را می توانید انجام دهید تا تعداد تغییرات موردنیاز را به حداقل برسانید. با استفاده از پروسیجرهای ذخیره شده شما می توانید یک سطح تجرد بین پرس و جوهای بانک اطلاعاتی و صفحات ای که پردازش اطلاعات حاصل از این پرس و جوها را انجام می دهند ایجاد نمایید

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

شرکت آنفایو خدمات طراحی سایت (طراحی وب) خود را، با توجه به نیازهای کارفرمایان، نوع فعالیت و متناسب با بودجه در نظر گرفته شده برای طراحی سایت (طراحی وب) در نظر می گیرد. آنفایو با بهره گیری از بهتریت متخصصین حرفه ای برنامه نویسی ، داشتن تیم تخصصی طراحی سایت ، تسلط به علوم روز دنیای کامپیوتر و اینترنت و مشاوره رایگان وپشتیبانی ۲۴ ساعته آمادگی خود را برای طراحی وب سایت های دولتی ، سازمانی ، شرکتی وشخصی با تلفیق هنر گرافیک دیجیتالی و جدیدترین تکنیک های برنامه ویسی اعلام میدارد .افزایش آمار ، دسترسی ساده کاربران و سرعت وب سایت خود را به شرکت طراحی سایت و طراحی قالب وردپرس آنفایو بسپارید.