پاسخ این سئوال : نگارش 2010 -32 بیتی است اما چرا؟!
اگر فقط از محیط Desktop اکسس می خواهید استفاده کنید، بهتر است آخرین نگارش Access یا به عبارتی آخرین نگارش Microsoft Office را روی رایانه خود نصب کنید، چونکه معمولا در نگارش های آخر و به-روز بسیاری از مشکلاتی که در برنامه نویسی های اصلی بدنه Microsoft Office Access وجود داشته است حذف شدهاند. مثلا به این صفحه نگاه کنید(رفع اشکالاتی که توسط مایکروسافت اطلاع رسانی شده اند) در این صفحه برخی از ایراداتی که به صورت رسمی توسط مایکروسافت بررسی و رفع شده اند دیده می شود. اما اگر شما توسعه دهنده Access هستید، یا به عبارتی اکسس دویلوپر(Access Developer) هستید، یا عبارت بهتر برنامه نویس VBA در اکسس هستید و می خواهید اپلیکشین تحت Access ایجاد کنید، به هیچ وجه آخرین نگارش Access را پیشنهاد نمی کنم.
همیشه سعی کنید در نگارش قدیمی تر برنامه نویسی کنید تا کاربران نرم افزار شما با مشکلات روبرو نشوند، یعنی با توجه به اینکه نگارش های جدید از امکانات نگارش های قدیمی پشتیبانی می کنند، اما نگارش های قبلی نمی توانند امکانات نگارش های جدید را بهره برداری کنند، برنامه هایی که با نگارش های قبلی اکسس تولید شده اند در نگارش های جدیدتر اکسس اجرا می شوند، اما اگر برنامه اکسسی را در نگارش های جدید مثل نگارش 2023 تولید کرده باشید ممکن است در نگارش های قدیمی مثل 2010 مشکلاتی داشته باشد.
اما اگر دقت کنید، و در یک بررسی دقیقتر درخواهید یافت که هنوز برخی وشاید بسیاری از کاربران نرم افزارهای آفیس هنوز از آفیس 2007 استفاده می کنند، یعنی هنوز نگارش های قبلی آفیس در ایران مورد استفاده قرار می گیرد. پس آیا آفیس 2007 بهترین آفیس است؟ پاسخ خیر است، هنوز هم من معتقد هستم که نگارش Access 2010 نسخۀ 32 بهتر است.
در یک بررسی من Microsoft Office های مختلف را مورد بررسی قرار داده ام:
آفیس 2003 ، بله آفیس 2003 وجود دارد، شاید بسیاری از برنامه نویسان وقتی یک فایل دیتابیس mdb ایجاد می کنند و از آن استفاده می کنند خبر ندارند که این پسوند پسوند فایل های دیتابیس Access نگارش 2003 است، آنه با Access فایل mdb تولید می کنند، چون اکسس نگارش های جدید مثلا Access 2003 میتواند فایل mdb تولید کند. مهمترین مشکل آفیس 2003 سه چیز با اهمیت است که از نگارش 2007 با تغییرات جدی تری روبرو شده است:
- استفاده از فیلد Calulate در جداول Table ها
- عدم پشتیبانی از پسوند accdb و accde
- عدم پشتیبانی از webpage
اگر از هیچ یک از این امکانات در برنامه ای که نوشتید استفاده نمی کنید باید بدانید که هنوز استفاده از این نگارش از آفیس(2003) را پیشنهاد نمی کنم چون پسوندهای accdb و accde را پشتیبانی نمی کند. جالب است بدانید فایل های با پسوند accdb و accde حتی در نگارش های اولیه Access2007 پشتیبانی نمیشده، نگارش Access2007 از جمله پر تغییراتترین نگارش های Access بوده است، این نگارش دارای نگارش های فنی متعددی است که همگی بین سال 2007 تا سال 2010 ارائه شده اند و دارای تغییرات بسیاری جدیی هستند.
اما نگارش اکسس 2010 از تمامی تغییراتی که در نگارش 2007 طی سالهای 2007 و 2009 و تا سال 2010 پشتیبانی می کند، حتی در نگارش VBAی سال 2007 و 2010 اتفاق جدییی افتاده است و نگارش VBA6 به VBA7 تغییر یافته، یکی دیگر از تغییرات جدی سال 2010 امکانات 32 بیتی و 64 بیتی شدن آفیس بوده، اصولا تا آخر آفیس 2007 همه نگارش های آفیس 32 بیتی بوده اند از آفیس 2010 به بعد دو نسخه برای آفیس بوجود آمد، آفیس 2010 -32 بیتی و نسخه 2010-64 بیتی. دو نسخه آفیس 32 و 64 بیتی به صورت همزمان روی یک رایانه نمی توان نصب کرد، یعنی نمیتوان همزمان هم نسخه 32 بیتی روی یک ویندوز داشته باشید و هم نسخه 64 بیتی. باید به این نکته اشاره کنیم که نصب نسخه 64 بیتی آفیس 2010 به بعد یعنی نسخه های 2013 و 2016 و 2019 و 2023 و ... روی Windows های 32 بیتی امکانپذیر نیست، مطرح شدن نصب نسخه آفیس 32 بیتی و یا 64 بیتی روی Windows های 64 بیتی پیش می آید، بسیاری از کاربران آفیس حتی نمی دانند که آفیس نصب شده روی رایانه شان 32 بیتی است یا 64 بیتی اما این موضوع برای برنامه نویسی Access یعنی شما که برنامه نویس VBA Access هستید بسیار اهمیت خواهد داشت، اگر بخواهید از فایل accde استفاده کنید، و اگر نه استفاده از فایل های با پسوند accdb و mdb اشکالی پیش نمی آورد.
البته برخی از امکانات Access2010 در نگارش های بعدی Access حذف شدهاند، بخصوص امکان (PivotChart) ، که باید موقع برنامه نویسی در Access2010 از استفاده از این امکان در Access2010 صرفنظر کنید چون استفاده از این امکان توسط کاربرانی که از نسخ های بعدی Access یعنی نسخه های 2013 و 2016 و 2019 و 2023 و ... استفاده می کنند امکانپذیر نیست.
برای برنامه نویس باید این مهم باشد که نرم افزارش توسط چه کاربرانی قرار است اجرا شود. پس از اتمام نرم افزاری که در Access نوشته اید شما دو راه دارید یا کاربران نرم افزار خود را وادار کنید که نگارشی از آفیس را روی سیستم خود نصب کنند که با نسخه ای از آفیسی که شما در آن برنامه نویسی VBA در Access را انجام دهید همخوانی داشته باشد، و یا اینکه نرم افزار خود را طوری آماده کنید تا با هر نگارشی از Access همخوانی داشته باشد.
اگر نرم افزار خود را به صورت سازمانی نوشته اید و تهیه کرده اید و می توانید به کاربران خود آفیسی که با آن برنامه نویسی کرده ایم تَحَکُم کنید، که مشکلی ندارید، ولی در صورت دیگر، یعنی اگر امکان اجبار استفاده از آفیس مشخصی را برای کاربران نرم افزار خود را ندارید دو حالت برایتان پیش می آید.
یا دایره استفاده کننده کاربران خود را از تنگتر-و-تنگتر خواهید کرد، و تعداد کاربرانی که می توانند از نرم افزار شما در اکسس استفاده کنند کاهش خواهد یافت و یا مجبورید نرم افزار خود را برای کار در آفیس های مختلف آماده کنید.
من حالت دوم را پیشنهاد می کنم، اما باید نکات مهمی را در این حوزه کاری در نظر داشته باشید، و بهتر است این نکات را قبل از اینکه برنامه خود را به اتمام برسانید و یا حتی برنامه نویسی آن را آغاز کنید در نظر بگیرید.
مهندسی هم یعنی همین، یعنی برنامه ریزی برای رسیدن به هدف.
1. ببینید از امکاناتی که در اکسس می خواهید استفاده کنید در همه نسخه های آفیس پشتیبانی می شود؟
برای فهم و درک این نکات این صفحه را مطالعه کنید: تفاوتهای نسخههای مختلف مایکروسافت اکسس.
از امکانات جایگزین برخی دیگر از امکانات استفاده کنید.
مثلا امکانات زیر را در نطر بگیرید(اینها بخش از برخی از امکانات وجه اختلاف نسخههای مختلف هستند):
- امکان نوع داده محاسبه شده(Calculated data type):
- این امکان در تعریف نوع فیلد در Table از نسخه 2010 به بعد اضافه شده است.
- اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2007 دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
- اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2007 بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری مثل بهره گیری از Query ها که همین نتیجه را خواهند داشت استفاده کنید.
- امکان پشتیبانی از تعداد بزرگ (Large Number)
-
- این امکان از نسخه 2019 به Access اضافه شده است. نوع داده Large Number یک مقدار غیر پولی و عددی را ذخیره می کند و با نوع داده SQL_BIGINT در ODBC سازگار است. این نوع داده به طور موثر اعداد بزرگ را محاسبه می کند. شما می توانید Large Number را به عنوان فیلد به جدول Access اضافه کنید. همچنین میتوانید به پایگاههای داده با نوع داده مربوطه، مانند نوع داده Bigint SQL Server، پیوند داده یا از آن وارد کنید. برای استفاده از نوع داده Large Number برای پشتیبانی در پیوند دادن یا وارد کردن از منابع خارجی، ابتدا باید یک گزینه را در کادر گفتگوی Access Options انتخاب کنید. روی File > Options > Current Database کلیک کنید . در پایین کادر گفتگوی گزینه ها، بخش Data Type Support Options را خواهید دید . گزینه Support BigInt Data Type for Linked/Imported Tables را انتخاب کنید. بیشتر بدانید
- اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2016 و قبل از آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
- اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2016 و قبل از آن را، بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید.
- امکان پشتیبانی از dbase
- این امکان نیز از نسخه 2019 دوباره به اکسس بازگشته، ولی اکسس های 2010 و 2013 و 2016 از این امکان پشتیبانی نمی کنند.
- اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2016 و قبل از آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
- اگر احتمال می دهید که هنوز بخشی از کاربران نرم افزار شما مجبور هستند از آفیس 2016 و قبل از آن را، بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید.
- امکان PivotChart:
- این امکان فقط در اکسس نسخه 2010 وجود داشته.
- اگر از این امکان استفاده کنید، کاربرانی که روی رایانه خود آفیس 2013، 2016، 2019 و بعد از آن را آنرا دارند نمی توانند از نرم فزاری که شما برنامه نویسی و تهیه کرده اند استفاده کنند.
- اگر احتمال می دهید که کاربران نرم افزار شما از آفیس های بجز آفیس 2010 ممکن است بنا به هر دلیلی استفاده کنند، می توانید به جای این امکان از امکان دیگری استفاده کنید(برای این گونه نمودارها که به صورت فرم های فعال بودند، می توان از chart ها در Report ها استفاده کرد هر چند تفاوتهایی با هم دارند اما نتیجه مشابهی را از آن خواهید گرفت).
- امکان WebBrowser:
- این امکان نیز در اکسس 2010 به بعد به امکانات Access اضافه شده است
امکانات بالا مثالهایی بودند که برخی از وجه اختلاف نسخههای مختلف در بهره گیری از امکانات اکسس را نشان می دهند، قبل از اینکه بخواهید از کنترلرها در فرم ها و گزارش ها استفاده کنید از فراگیر بودن آنها در آفیس های مختلف مطمئن شوید، البته بهترین کار، امتحان کردن نرم افزارتان در نسخههای مختلف اکسس است، یک راه نصب نرم افزار VM یا Virtual Machine (ماشین مجازی) است، با استفاده از این امکان شما می توانید از آفیس های مختلف استفاده کنید و برنامه ای را که نوشهاید در آفیس های نسخه های مختلف مورد بررسی قرار دهید، هر چند این روش نیاز به هاردیسک سریع و حجیم دارد (چون هر ماشین مجازی بین 3 تا 10 گیگابایت حجم خواهد گرفت، و سرعت بالا آمدن ویندوز در آن به سرعت هارد دیسکی بستگی دارد که در آن VM را راهاندازی می کنید)، یعنی نوع هارد دیسکی که برای VM استفاده می کنید بهتر است SSD باشد تا HDD؛ البته شاید شما نسخههای بهتری از هاردیسکهای سریعتر را سراغ داشته باشید.
من VM های متعددی در رایانه های خود نصب کرده ام و آفیس ها به خصوص Access های نسخههای مختلفی را آماده به کار دارم.
تجربیات من در به کارگیری از Access های مختلف به شرح زیر است:
- نسخه 2007، این نسخه به دو نوع منشعب می شود. ولی هر دو نسخه 32 بیتی هستند:
- نسخه ای از Access2007 که پسوند accdb را نمی شناسد.
- نسخه ای از Access2007 که پسوند accdb را می شناسد، من این نسخه اکسس را به لحاظ فنی به شماره فنی نگارش 12.0.6211.1000 می شناسم، و موقعی که می خواهم از برنامه های Setup برای ادامه کار نصب نرم افزار روی رایانه مشتری ام استفاده کنم، توسط نرم افزار Setup، بررسی می کنم که نسخه فنی فایل Access از این شماره به بعد باشد، چون من به هیچ وجه از فایل های mdb استفاده نمی کنم.
اگر بخواهم بنا به دلایلی کاربرانی که از نسخه اکسس 2007 قبل از 6211 را پشتیبانی کنم باید فایلی را برای آنها ایجاد کنم که در این نگارش از اکسس اجرا شود، بنابراین باید VMی داشته باشم که Office نسخه 2007، با نگارش فنی قبل از 6211 را داشته باشد، ظاهرا نسخه 2007 از سال 2005 در حال تولید بوده است و نسخههای قبلی متعددی از این آفیس وجود دارد، من یک نسخه این این آفیس را دارم Microsoft Office 2007 SP1 (12.0.4518.1014)، این نسخه همان نسخهای از آفیس 2007 ی است که Access اش فایل های accdb و accde را نمی شناسد.
اما نسخه Microsoft Office 2007 SP1 (12.0.4518.1014)، شامل نخستین Access ی است که accdb و accde را می شناسد.
- نسخه 2010 این نسخه دارای دو نوع با اهمیت است، یکی 32 بیتی است و دیگری 64 بیتی
- نسخه Access، که همزمان با نصب Office 2010 نصب می شود به لحاظ کامپایل کدهای فایل accde با نسخه 64 بیتی متفاوت است. به عبارتی فایلی accdeیی که با Access2010-32bit تولید شده باشد، در Access2010-64bit اجرا نمی شود، البته این اختلاف در اجرای فایلهای دارای کدهای VBA فقط به فایل accde ختم می شود و شامل فایل های accdb نمی شود.
من دو نسخه VM برای دو Access2010 دارم:
ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2010 - 32 bit نصب شده است.
ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2010 - 64 bit نصب شده است.
- سایر نسخه های 32 بیتی و 64 بیتی Access بخصوص نسخه های 2013 و 2016 اختلاف چندانی با هم ندارند، مثلا می توانید نسخه های زیر را هم داشته باشید:
ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2013 - 32 bit نصب شده است.
ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2016 - 64 bit نصب شده است.
یا مثلا :
ماشین مجازی (VM) با Windows 32 bit که در آن Microsoft Office Access 2016 - 32 bit نصب شده است.
ماشین مجازی (VM) با Windows 64 bit که در آن Microsoft Office Access 2013 - 64 bit نصب شده است.
فرق ندارند.
- نسخه آفیس 2019 که به 2020 نیز معروف است چون همچنان آپدیت های این نسخه در راه هستند نیز باید روی VM آماده به کار باشند.
2. ببینید که آیا می توانید به کاربران خودتان بجای accde، فایل های با پسوند accdb بدهید؟
از آنجا که فایل accde کامپایل شده است باید نسخه Access مجری فایل accde شبیه و هم نسخه Accessی باشد که آنرا کامپایل کرده است، اما در مورد فایل accdb این موضوع ربطی به نسخه Access ندارد و هر Accessی می تواند هر فایل accdb را اجرا کند، اما اشکال فایل accdb در اینجا است که فایل accdb دارای کدهای vba است که توسط برنامه نویسان دیگر قابل خواندن و تغییر است، در صورت ورود به بخش vba و هک این بخش کدهایی که برای بخش اقتصادی و تامین اعتبار برنامه نویس مهم است هستند، دستخوش تغییرات خواهند شد. اما می توان روی فایل دیتابیس accdb گذرواژه محکمتری قرار داد که به Database Password معروف است.
اگر برنامه نویسی VBA هستید می دانید که سطوح مختلفی برای حفاظت از کدهای برنامه نویسی شدۀ شما، توسط Access وجود دارد.
داستان سطوح رمزگذاری روی کدهای VBA به شرح زیر است:
- بگذارید به این سئوال پاسخ دهیم: چرا به حفاظت از VBA در اکسس نیاز داریم؟!
- وقتی در VBA کدنویسی می کنیم، که می خواهیم کاری شگفتانگیزتر از امکانات Access ارائه کنیم، مثلا می خواهیم یک برنامه حسابداری بنویسیم، در چنین حالتی تعداد خطوط برنامه نویسی ما به شدت افزایش خواهد یافت و تامین بودجه های برنامه نویسی مطرح می شود، برای تامین بودجهها باید ارائه نرمافزار به کاربران محدود شود- فقط کاربرانی از نرم افزار استفاده کنند که در تامین اعتبارات برنامه نویس نقشی برای آنها تعیین شده است- این سئوال پیش می آید که آیا می شود برای نرم افزار کد فعالسازی تولید کرد، یعنی کاربرانی بتوانند از نرم افزار استفاده کنند که کد فعالسازی گرفته باشند؟ بیدرنگ پاسخ بلی است؛ بله می شود کد فعالسازی متناسب با امکانات کاربر تولید کرد و در صورتی که کاربر کد فعالسازی خود را به نرم افزار بدهد نرمافزار کار کند.- روش های متعددی برای صدور کدفعالسازی وجود دارد که در این صفحه به آن خواهیم پرداخت.
- بنابراین در کدهای برنامه نویسی بخشی خواهیم داشت که اگر کاربر کدفعالسازی تهیه کرده باشد و به نرم افزار ارائه کرده باشد بتواند از نرم افزار استفاده کند در غیر اینصورت نرم افزار از ادامه کار با خواهد ماند.
- اگر برنامه نویسی(موسوم به هکر) بخش VBA نرم افزار را باز کند و بخشی از کدها -که اجرای دستورات برنامه نویسی شده را منوط(مشروط) به درستی کدفعالسازی می کند- را حذف کند، عملا بخش تامین اعتبارات از بین رفته و برنامه نویسی از حقوق خود باز خواهد ماند.
- به همین منظور سعی می شود که کدهای نوشته شده توسط برنامه نویس از چشم کاربران کاملا مخفی بماند.
- چگونه از کدهای VBA در اکسس حفاظت می شود؟!
- اولین سطح بخش Project Protection خود VBA در اکسس است، این بخش برای باز کردن و نمایش کدهای VBA از برنامه نویس گذرواژه می خواهد.
- اما این بخش خیلی هم قدرتمند نیست، من بسیاری از کدهای VBA یی که در این بخش در فایل های accdb - یا xlsxm و حتی xlam دز اکسل-بودهاند را دیدهام که باز شدهاند و قابل تغییر بودهاند-برای این منظور نرمافزارهایی وجود دارد- این نرمافزارها به هکرها برای غلبه بر گذرواژههای بخش VBA کمک میکنند.
- دومین سطح بخش Make MDE خود اکسس است، این بخش فایل های accdb را به accde تبدیل می کند.
- چون این بخش از اکسس در زمانی که پسوند فایل های اکسس mdb بوده، و فایل های mdb توسط ابن بخش به mde تبدیل می شده هنوز هم همین نام را دارد ولی بهتر بود از اول نام این بخش را Compiler بخش VBA می نامیدند، اکنون با ظهور فایل های accdb بجای mdb این عمل موجب می شود که فایل accdb به accde تبدیل شود.
- مایکروسافت کامپایل کدهای VBA را فقط و فقط برای اکسس در دستور کار خود دارد، و در هیچیک از اپلیکیشن های آفیس کامپایل کدهای VBA در دستور کار نیست.
- نتیجه ای این فرآیند مهم -یعنی بخش Make MDE- تولید کدهایی باینری(دودویی) است که با زبان انسان بسیار متفاوت است، وقتی کد VBA در فایل accbd تولید می شود دارای مفهوم برای برنامه نویسان است، ولی وقتی به کدهای دودویی تبدیل می شود دیگر توسط انسان قابل درک نیست، این کدها کدهایی هستند که توسط کامپیوتر قابل اجرا هستند.
- برای تکمیل این بخش و برای حفاظت بیشتر، Access پیشنهادی برای کاربران خود دارد، Access یا به عبارتی برنامه نویسان مایکروسافت اکسس به کاربران خود پیشنهاد می کنند فایل های accde خود را به accdr تغییر نام دهند و بدین طریق از اکسس بخواهند که امنیتی مضاعف برای فایل های accde که اکنون با پسوند accdr به اکسس وارد شده است قائل باشد، این امنیت شامل عدم نمایش برخی از قسمت های اکسس به کاربری که در حال استفاده از فایل accdr است و نیز اجرای بی درنگ قسمتهایی از فایل accdr است که در فایل های دیگر Access مانند پسوندهای accdb و accde با ملاحظاتی اجرا می شوند. در مورد فایل های با پسوند accdr و امکاناتی که Access برای آن قایل است در این صفحه توضیح خواهیم دارد.
- متاسفانه اختلافاتی در اجرای کدهای فایل accde بین نسخههای مختلف اکسس وجود دارد، یعنی مثلا کدهای VBA ی کامپایل شده توسط Access2010-64bit توسط Access2016-64bit اجرا نمی شود، و یا مثلا کدهای VBA ی کامپایل شده توسط Access2010-32bit توسط Access2010-64bit اجرا نمی شود. این قبیل مشکلات موجب می شود که من برای ارائه نرمافزارهای نوشته شده توسط اکسس راههای زیر را در نظر بگیرم:
-
کامپایل فایل های accdb به accde توسط Access های مختلف، و قرار دادن فایل های accdeهای تولید شده در بسته نصب نرم افزار.
- اگر می خواهید برنامهای را که نوشته اید کاملا حفاظت شده باشد، باید فایل accdb را در Accessهای مختلف کامپایل کنید-یعنی به accde تبدیل کنید- و بنا به نگارش Access ی که در رایانه کاربر نصب شده است، فایل accde همان نسخه کامپایل شده را در رایانۀ کاربر نصب کنید- اینکار باعث می شود که فایل نصب دارای حجمی بزرگتر از حد معمول باشد.
- راه دیگر این است که از کاربر بخواهید خودش نگارش آفیسی که روی رایانه اش است را شناسایی کند، و فایل نصبی از نرم افزار تهیه شده توسط شما را دانلود کند که با نسخه آفیس اش هخوانی دارد.
- در تجربه ای که من داشتهام کاربران تمایل و یا تخصص شناسایی نسخه آفیس خود را ندارند و ترجیح می دهند فایل با حجم بیشتر- که روی هر آفیسی نصب می شود- را دانلود کنند.
- از اینجا به بعد باید یک برنامه Setup قوی بسازید که بتواند نسخه آفیسی که روی رایانه کاربر نصب شده است را شناسایی کند.
-
من در یک تجربه دیگر ابتدا نرم افزاری را در اختیار کاربران خود قرار می دادم که رایانه کاربر را آنالیز می کرد و به او می گفت که چه نگارشی از آفیس روی رایانه اش نصب شده است، سپس لینک دانلود نرم افزار مرا که برای نگارش آفیس مرتبط با نگارش آفیس نصب شده روی رایانه مشتری همخوانی داشت به وی ارائه می کرد؛ این نرم افزار در واقع بخشی از برنامه Setup نرم افزار من بود که دارای حجمی بسیار کم بود، چرا که این برنامه Setup که مثلا Analize نام داشت، حاوی فایل های accde نبود، و فقط نوع آفیس نصب شده در رایانه مشتری من را ارزیابی می کرد- پس از تعیین نگارش آفیس مستقر در رایانۀ مشتری - برنامه آنالیز لینک دانلود برنامه setup مناسب با آفیس مشتری را به او معرفی می کرد.
-
مثلا:
- یک فایل نصبSetup شامل همه accde های همه نسخههای آفیس با حجم 100 مگابابیت.
- یک فایل Analize، که قبل از نصب نگارش آفیس مستقر در رایانه کاربر را شناسایی می کند، با حجم 3 مگابایت.
- فایل های نصب متعدد برای نگارش های مختلف آفیس هر کدام با حجمی برابر با 16 مگابایت.
- اما همانطور که گفتم مشتریان بیشتر تمایل به دانلود فایل اول داشتند.
-
مثلا:
- استفاده از نرم افزار accdbexe و استفاده از Database Password و ارائه فایل accdb در قالب accdr بجای فایل accde به مشتریان.
-
-
- اصولا گذرواژۀ دیگری برای فایل های اکسس وجود دارد که هنگام باز کردن فایل به آن نیاز خواهیم داشت، اما نمی توانیم این گذرواژه را در اختیار مشتریان قرار دهیم، چون عملا این گذرواژه دسترسی به بخش های مختلف فایل را فراهم می کند، به عبارتی اگر این رمز را در اختیار مشتریان قرار دهیم دقیقا مثل این است که اصلا رمزی روی آن نگذاشته ایم.
- این رمز که یک عبارت 20 کاراکتری می تواند باشد، Database Password نام دارد.
- هیچ سویچی هم برای تزریق این گذرواژه به Access هنگام باز کردن فایل Database وجود ندارد.
- من نرم افزاری تهیه کرده ام که accdbExe نام دارد و می تواند این گذرواژه را در خود مستتر کند و هنگام باز کردن فایل دیتابیس وقتی که پنجره Databse Password نمایش داده می شود، گذرواژه را به داخل پنجره Database Password تزریق کرده و به صورت خودکار کلید Enter را بزند، به این ترتیب بدون اینکه گذرواژه در اختیار کاربران نرم افزار قرار بگیرد، فایل های دیتابیس دارای گذرواژه در اختیار کابران قرار داده خواهد شد.
- هنگام تزریق گذرواژه به پنجره کنترلهای مختلفی انجام می شود، و اینکار توسط PID یا ProccessID انجام می شود، به نحوی که هنگام فراخوانی فایل اکسس کد PID اکسسی که در حافظه Ram بارگذاری می شود، در نرم افزار به خاطر سپرده می شود و هنگامی که پنجره Database Password نمایش داده می شود به ازرای تزریق هر کاراکتر گذرواژه بررسی می شود که کدپنجره فعال که در حال تزریق گذرواژه به آن است حتما همان کدی باشد که هنگام فراخوانی فایل اکسس به خاطر سپرده شده است. فرآیند تزریق گذرواژه Databse Password تنها یکی از کارهایی است که نرم افزار accdbExe انجام می دهد، اما همین کار نیز دارای جزئیات بیشماری است که موجب می شود که گذرواژه دیتابیس به Access هنگام باز کردن فایل accde یا accdb تزریق شود و خلاصه اینکه از فایلی استفاده شود که علاوه بر حفاظت های معمول برای بخش vba دارای گذرواژۀ Database Password نیز باشد.
- شاید برای شما این سئوال پیش آمده باشد که PID چیست؟
- قصد دارم این بخش را کمی توضیح دهم:
- هنگامی که در ویندوز به Taskmanager رجوع می کنید-برای رجوع به این بخش می توانید کلیدهای Ctrl+Shidt+Esc را همزمان بزنید- ابتدا به بخش Proccess این پنجره وارد خواهید شد. در این بخش تمام نرم افزارها و سرویس های ویندوز که در حافظه هستند و از تایم CPU استفاده می کنند نمایش داده می شود، مثلا اگر دوبار پنجره Access را باز کنید در این پنجره دو ردیف عبارت Microsoft Access را خواهید یافت.
- روی یکی از عبارتهای Microsoft Access راست کلیک کنید و از منوی باز شده گزینۀ Go to details را انتخاب کنید، با اینکار به بخش Details پنجره TaskManager وارد خواهید شد در این بخش جزئیات بیشتری از تمام نرم افزارهایی که در ویندوز در حافظه بارگذاری شده اند و از تایم CPU استفاده می کنند مشاهده خواهید کرد.
- خوب که دقت کنید جلوی هر نرم افزار یک کد یکتا خواهید دید که زیر ستون PID یا ProccessID قابل مشاهده است.
- مثلا دو Microsoft Access دارای دو شناسه PID مختلف هستند.
- نرم افزار accdbExe هنگامی که فایل دیتابیسی را با Access باز می کند این کد را از ویندوز دریافت می کند و هنگامی که قصد دارد گذرواژه مربوط به فایل دیتابیس را به Access تزریق کند چک می کند که پنجره فعال که در حال تزریق گذرواژه به آن است کد PID آن برابر با همان کدی باشد که هنگام فراخوانی فایل آنرا از ویندوز دریافت کرده.
-
- اولین سطح بخش Project Protection خود VBA در اکسس است، این بخش برای باز کردن و نمایش کدهای VBA از برنامه نویس گذرواژه می خواهد.