<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[فروم تخصصی - پشتیبانی CPSD - عمومی]]></title>
		<link>http://cpsd.ir/forum/</link>
		<description><![CDATA[فروم تخصصی - پشتیبانی CPSD - http://cpsd.ir/forum]]></description>
		<pubDate>Thu, 23 Apr 2026 15:44:18 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[ترفندهای اکسس]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=404</link>
			<pubDate>Tue, 21 Feb 2017 09:46:02 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=404</guid>
			<description><![CDATA[ترفند هاي اكسس (1) : روش سه رقم ، سه رقم جدا كردن اعداد از يكديگر<br />
از امروز به بعد قصد دارم در مورد ترفند هاي اكسس ( فوت هاي كوزه گري ) صحبت كنم . مي خواهيم ببينيم چگونه مي توان اعداد را سه رقم ، سه رقم از هم جدا كرد . همانطور كه قبلا گفته شد براي قالب اعداد جهت امور مالي و حسابداري كه ارقام بزرگي هستند حتما بايد نوع فيلد را  Currency انتخاب كنيم . به هنگام طراحي جدول اگر فيلد را Currency انتخاب كنيم در پايين جدول و در بخش  Format بايد دستور زير را بنويسيم . بعد از انجام اين عمل هر كجا از اين فيلد ، مثلا فيلد مبلغ كالا بخواهيد استفاده كنيد سيستم به صورت اتوماتيك ارقام را سه رقم ،سه رقم از يكديگر جدا خواهد كرد .<br />
<br />
    0##,#;0##,#        دقت داشه باشيد كه ۰ نقطه نيست بلكه عدد صفر مي باشد<br />
<br />
ترفند های اکسس (2) : اضافه کردن ستون ردیف در گزارشات اکسس<br />
گاهی موارد در گزارشات نیاز است تا ستون ردیف داشته باشیم ، ایجاد ستون ردیف در گزارشات به صورت ذیل خواهد بود .<br />
۱ـ روی گزارش مورد نظر کلیک راست کرده و  Design View را انتخاب می کنیم تا گزارش در حالت طراحی باز شود .<br />
<br />
۲ـ در گزارش یک تکست باکس  به نام ردیف ایجاد کرده و در قسمت  Detail آن ۱= را تایپ می کنیم.<br />
<br />
۳ـ روی تکست باکس کیلک راست کرده و در بخش  Data مقدار  Running Sum را  به Over All تغییر می دهیم .<br />
<br />
۴ـ در پایان تغییرات را ذخیره کرده و با اجرای گزارش خواهید دید که ستون ردیف در گزارش ایجاد شده است.<br />
<br />
ترفند هاي اكسس (3) : جلوگيري از نمايش گزارشات فاقد اطلاعات<br />
اگر با گزارشات اكسس سر و كار داشته ايد به كرات مشاهده نموده ايد كه اكسس گزارشات فاقد اطلاعات رابه صورت يك صفحه خالي نمايش مي دهد. حال اگر شما بخواهيد اكسس گزارش هاي بدون اطلاعات را نمايش ندهد به صورت ذيل عمل نماييد :<br />
<br />
در زبانه EVENT گزارش و در بخش ON NO DATA كدهاي ذيل را بنويسيد<br />
<br />
                                                          " اطلاعاتي براي نمايش وجود ندارد"Msgbox<br />
<br />
                                                                                                  Cancel=True<br />
<br />
حال اگر گزارش فاقد اطلاعاتي را اجرا كنيم سيستم پيام "اطلاعاتي براي نمايش وجود ندارد " را نشان خواهد داد .                      <br />
<br />
ترفند هاي اكسس (4) : قرار دادن يك رديف پيش فرض در كمبو باكس<br />
همانطور كه مي دانيد يكي از پركاربرد ترين كنترل ها در اكسس كمبو باكس مي باشد و در فرم ها به كرات مورد استفاده قرار مي گيرد . هر كمبو باكس از رديف هاي مختلفي تشكيل شده،حتما براي شما هم اين سوال پيش آمده كه چگونه مي توان به محض باز شدن فرم يك رديف كمبو باكس به صورت پيش فرض در فرم نمايش داده شود . براي مثال شما در فرمي كمبو باكسي به نام نوع ارز داريد و در آن ارز هاي مختلفي مثل ريال ، دلار ، يورو و ... وجود دارد كه شما مي توانيد آنها را انتخاب كنيد ولي در اكثر موارد ارز شما ريال خواهد بود و براي اين كه در هر فرم مجبور به انتخاب ريال نباشيد مي خواهيد با ترفندي همواره پيش فرض كمبو باكس نوع ارز ريال باشد براي اين كار به صورت ذيل عمل خواهيم كرد.<br />
<br />
 در بخش EVENT فرم و در قسمت  ON OPEN كد هاي ذيل را بنويسيد .<br />
<br />
 <br />
<br />
Me.Comboname.Setfocus<br />
<br />
 Me. Comboname.Dropdown<br />
<br />
Me.Comboname.Selected(3)=True<br />
<br />
در قسمت Comboname نام كمبو باكس نوشته مي شود . اگر بخواهيم اولين رديف كمبو باكس انتخاب شود بايد به جاي ۳  عدد صفر را بنويسيم . در مثال فوق دومين رديف كمبو باكس در حالت پيش فرض قرار خواهد گرفت .<br />
<br />
ترفند هاي اكسس (5) : رنگي كردن يكي در ميان سطر هاي گزارش<br />
براي مرور بهتر گزارشات مي توان سطر هاي گزارش را يكي در ميان رنگي كرد . در اكسس ۲۰۰۷ بدون كد نويسي و به راحتي مي توان اين كار را انجام داد . ابتدا روي گزارش خود كليك راست كرده و گزينه Layout View را انتخاب كنيد . سپس در سمت چپ گزارش روي يكي از سطر هاي گزارش كليك كرده تا كل سطر انتخاب شود سپس از منوي بالاي صفحه نوع رنگ را انتخاب و به محض اينكه روي رنگ مورد نظر كليك كنيد سطر هاي گزارش يكي در ميان رنگي خواهند شد . البته با كد نويسي هم مي توان اين كار را انجام داد ولي هميشه بايد راه سريع و آسان را برگزيد . اين ترفند در اكسس ۲۰۰۷ به بعد قابل اجرا مي باشد و در اكسس ۲۰۰۳ قابل اجرا نمي باشد . البته همانطور كه گفتم اكسس ۲۰۰۳ را به فراموشي سپرده و همواره به روز باشيد .<br />
<br />
ترفند هاي اكسس (6) : كنترل داده هاي ورودي بخش اول<br />
فرم ها براي ورود اطلاعات به جداول مورد استفاده قرار مي گيرند و يكي از مهم ترين مباحث در فرم ها جلوگيري از ورود داده هاي غير استاندارد در جداول مي باشد لذا كنترل داده هاي ورودي امري بسيار مهم و حياتي مي باشد كه عدم توجه به آن باعث بروز مشكلات فراواني خواهد شد .<br />
<br />
براي مثال در طراحي دفترچه تلفن شماره تلفن بايد ۸ رقم باشد حال اگر كاربر دقيقا ۸ رقم وارد نكند سيستم به صورت هوشمند بايد با اخطاري كاربر را از اين امر آگاه نمايد  . همچنين اگر كاربر به جاي شماره تلفن كه عددي است حروف وارد كند سيستم بايد هشدار لازم را به كاربر داده و از پذيرش آن جلوگيري به عمل آورد .<br />
<br />
منحصر كردن داده ورود در فرم هاي اكسس : فرمي داريم و تكست باكسي در آن قرار داده ايم مي خواهيم كاربر تنها مجاز به وارد كردن اعداد بوده و در صورت اشتباه سيستم با پيام مناسبي كاربر را اگاه نمايد . براي اين كار روي تكست باكس مورد نظر كليك راست كرده در بخش Even و قسمت On  Exit  كد هاي زير را مي نويسيم .<br />
<br />
On Error Resume Next                  <br />
<br />
                                         If Isnumeric (text1.value)=False Then<br />
<br />
            "لطفا كد را به صورت عددي وارد نماييد "Msgbox<br />
<br />
Cancel=true                            <br />
<br />
                                                   Text1.Setfocus<br />
<br />
                                                        Text1=Null<br />
<br />
Endif                  <br />
<br />
<br />
ترفند هاي اكسس (7) : كنترل داده هاي ورودي بخش دوم<br />
در بخش قبل كمي در مورد كنترل داده ها در فرم هاي اكسس صحبت كرديم و در اين قسمت به ادامه آن خواهيم پرداخت . همانطور كه مي دانيد برخي داده ها در فرم ها الزامي بوده و برخي اختياري هستند . مثلا در فرم اطلاعات پرسنلي وارد كردن كد پرسنلي ، نام ، نام خانوادگي و كد ملي الزامي بوده ولي آدرس پست الكترونيكي شما اختياري مي باشد كه در اين جا بحث كنترل داده ها پيش مي آيد .<br />
<br />
الزام كاربر به وارد كردن داده ها در فيلد هاي اكسس :<br />
<br />
فرض كنيد فيلدي داريد به نام Text2 و مي خواهيد كاربر حتما در اين فيلد داده هاي خود را وارد كرده و در صورتي كه بخواهد فيلد را خالي بگذارد سيستم هشدار بدهد براي اين كار به روش ذيل عمل خواهيم كرد .<br />
<br />
روي فيلد كليك راست كرده Properties را انتخاب كرده و در قسمت ويژگي هاي فيلد روي زبانه Event كليك كنيد . سپس در رويداد On Exit كد هاي ذيل را بنويسيد .<br />
<br />
If Isnull(Text2)=True Then                                  <br />
<br />
 "لطفا اطلاعات فيلد را وارد نماييد"Msgbox<br />
<br />
                                   Cancel=True<br />
<br />
                                                    Endif<br />
<br />
ترفند هاي اكسس (8) : تایپ فارسی در فیلد ها<br />
برخی مواقع نیاز است که ما به محض وارد شدن در یک تکست باکس زبان پیش فرضمان فارسی باشد و کاربر مجبور به تغییر زبان از لاتین به فارسی نشود .برای مثال فیلد هایی مثل نام ، نام خانوادگی ، محل سکونت و غیره . برای این کار روی تکست باکس مورد نظر کلیک راست کرده و از زبانه Format گزینه آخر یعنی Keyboard Langue  را به فارسی تغییر می دهیم در این حالت تکست باکس داده ها را به صورت فارسی دریافت خواهد کرد .]]></description>
			<content:encoded><![CDATA[ترفند هاي اكسس (1) : روش سه رقم ، سه رقم جدا كردن اعداد از يكديگر<br />
از امروز به بعد قصد دارم در مورد ترفند هاي اكسس ( فوت هاي كوزه گري ) صحبت كنم . مي خواهيم ببينيم چگونه مي توان اعداد را سه رقم ، سه رقم از هم جدا كرد . همانطور كه قبلا گفته شد براي قالب اعداد جهت امور مالي و حسابداري كه ارقام بزرگي هستند حتما بايد نوع فيلد را  Currency انتخاب كنيم . به هنگام طراحي جدول اگر فيلد را Currency انتخاب كنيم در پايين جدول و در بخش  Format بايد دستور زير را بنويسيم . بعد از انجام اين عمل هر كجا از اين فيلد ، مثلا فيلد مبلغ كالا بخواهيد استفاده كنيد سيستم به صورت اتوماتيك ارقام را سه رقم ،سه رقم از يكديگر جدا خواهد كرد .<br />
<br />
    0##,#;0##,#        دقت داشه باشيد كه ۰ نقطه نيست بلكه عدد صفر مي باشد<br />
<br />
ترفند های اکسس (2) : اضافه کردن ستون ردیف در گزارشات اکسس<br />
گاهی موارد در گزارشات نیاز است تا ستون ردیف داشته باشیم ، ایجاد ستون ردیف در گزارشات به صورت ذیل خواهد بود .<br />
۱ـ روی گزارش مورد نظر کلیک راست کرده و  Design View را انتخاب می کنیم تا گزارش در حالت طراحی باز شود .<br />
<br />
۲ـ در گزارش یک تکست باکس  به نام ردیف ایجاد کرده و در قسمت  Detail آن ۱= را تایپ می کنیم.<br />
<br />
۳ـ روی تکست باکس کیلک راست کرده و در بخش  Data مقدار  Running Sum را  به Over All تغییر می دهیم .<br />
<br />
۴ـ در پایان تغییرات را ذخیره کرده و با اجرای گزارش خواهید دید که ستون ردیف در گزارش ایجاد شده است.<br />
<br />
ترفند هاي اكسس (3) : جلوگيري از نمايش گزارشات فاقد اطلاعات<br />
اگر با گزارشات اكسس سر و كار داشته ايد به كرات مشاهده نموده ايد كه اكسس گزارشات فاقد اطلاعات رابه صورت يك صفحه خالي نمايش مي دهد. حال اگر شما بخواهيد اكسس گزارش هاي بدون اطلاعات را نمايش ندهد به صورت ذيل عمل نماييد :<br />
<br />
در زبانه EVENT گزارش و در بخش ON NO DATA كدهاي ذيل را بنويسيد<br />
<br />
                                                          " اطلاعاتي براي نمايش وجود ندارد"Msgbox<br />
<br />
                                                                                                  Cancel=True<br />
<br />
حال اگر گزارش فاقد اطلاعاتي را اجرا كنيم سيستم پيام "اطلاعاتي براي نمايش وجود ندارد " را نشان خواهد داد .                      <br />
<br />
ترفند هاي اكسس (4) : قرار دادن يك رديف پيش فرض در كمبو باكس<br />
همانطور كه مي دانيد يكي از پركاربرد ترين كنترل ها در اكسس كمبو باكس مي باشد و در فرم ها به كرات مورد استفاده قرار مي گيرد . هر كمبو باكس از رديف هاي مختلفي تشكيل شده،حتما براي شما هم اين سوال پيش آمده كه چگونه مي توان به محض باز شدن فرم يك رديف كمبو باكس به صورت پيش فرض در فرم نمايش داده شود . براي مثال شما در فرمي كمبو باكسي به نام نوع ارز داريد و در آن ارز هاي مختلفي مثل ريال ، دلار ، يورو و ... وجود دارد كه شما مي توانيد آنها را انتخاب كنيد ولي در اكثر موارد ارز شما ريال خواهد بود و براي اين كه در هر فرم مجبور به انتخاب ريال نباشيد مي خواهيد با ترفندي همواره پيش فرض كمبو باكس نوع ارز ريال باشد براي اين كار به صورت ذيل عمل خواهيم كرد.<br />
<br />
 در بخش EVENT فرم و در قسمت  ON OPEN كد هاي ذيل را بنويسيد .<br />
<br />
 <br />
<br />
Me.Comboname.Setfocus<br />
<br />
 Me. Comboname.Dropdown<br />
<br />
Me.Comboname.Selected(3)=True<br />
<br />
در قسمت Comboname نام كمبو باكس نوشته مي شود . اگر بخواهيم اولين رديف كمبو باكس انتخاب شود بايد به جاي ۳  عدد صفر را بنويسيم . در مثال فوق دومين رديف كمبو باكس در حالت پيش فرض قرار خواهد گرفت .<br />
<br />
ترفند هاي اكسس (5) : رنگي كردن يكي در ميان سطر هاي گزارش<br />
براي مرور بهتر گزارشات مي توان سطر هاي گزارش را يكي در ميان رنگي كرد . در اكسس ۲۰۰۷ بدون كد نويسي و به راحتي مي توان اين كار را انجام داد . ابتدا روي گزارش خود كليك راست كرده و گزينه Layout View را انتخاب كنيد . سپس در سمت چپ گزارش روي يكي از سطر هاي گزارش كليك كرده تا كل سطر انتخاب شود سپس از منوي بالاي صفحه نوع رنگ را انتخاب و به محض اينكه روي رنگ مورد نظر كليك كنيد سطر هاي گزارش يكي در ميان رنگي خواهند شد . البته با كد نويسي هم مي توان اين كار را انجام داد ولي هميشه بايد راه سريع و آسان را برگزيد . اين ترفند در اكسس ۲۰۰۷ به بعد قابل اجرا مي باشد و در اكسس ۲۰۰۳ قابل اجرا نمي باشد . البته همانطور كه گفتم اكسس ۲۰۰۳ را به فراموشي سپرده و همواره به روز باشيد .<br />
<br />
ترفند هاي اكسس (6) : كنترل داده هاي ورودي بخش اول<br />
فرم ها براي ورود اطلاعات به جداول مورد استفاده قرار مي گيرند و يكي از مهم ترين مباحث در فرم ها جلوگيري از ورود داده هاي غير استاندارد در جداول مي باشد لذا كنترل داده هاي ورودي امري بسيار مهم و حياتي مي باشد كه عدم توجه به آن باعث بروز مشكلات فراواني خواهد شد .<br />
<br />
براي مثال در طراحي دفترچه تلفن شماره تلفن بايد ۸ رقم باشد حال اگر كاربر دقيقا ۸ رقم وارد نكند سيستم به صورت هوشمند بايد با اخطاري كاربر را از اين امر آگاه نمايد  . همچنين اگر كاربر به جاي شماره تلفن كه عددي است حروف وارد كند سيستم بايد هشدار لازم را به كاربر داده و از پذيرش آن جلوگيري به عمل آورد .<br />
<br />
منحصر كردن داده ورود در فرم هاي اكسس : فرمي داريم و تكست باكسي در آن قرار داده ايم مي خواهيم كاربر تنها مجاز به وارد كردن اعداد بوده و در صورت اشتباه سيستم با پيام مناسبي كاربر را اگاه نمايد . براي اين كار روي تكست باكس مورد نظر كليك راست كرده در بخش Even و قسمت On  Exit  كد هاي زير را مي نويسيم .<br />
<br />
On Error Resume Next                  <br />
<br />
                                         If Isnumeric (text1.value)=False Then<br />
<br />
            "لطفا كد را به صورت عددي وارد نماييد "Msgbox<br />
<br />
Cancel=true                            <br />
<br />
                                                   Text1.Setfocus<br />
<br />
                                                        Text1=Null<br />
<br />
Endif                  <br />
<br />
<br />
ترفند هاي اكسس (7) : كنترل داده هاي ورودي بخش دوم<br />
در بخش قبل كمي در مورد كنترل داده ها در فرم هاي اكسس صحبت كرديم و در اين قسمت به ادامه آن خواهيم پرداخت . همانطور كه مي دانيد برخي داده ها در فرم ها الزامي بوده و برخي اختياري هستند . مثلا در فرم اطلاعات پرسنلي وارد كردن كد پرسنلي ، نام ، نام خانوادگي و كد ملي الزامي بوده ولي آدرس پست الكترونيكي شما اختياري مي باشد كه در اين جا بحث كنترل داده ها پيش مي آيد .<br />
<br />
الزام كاربر به وارد كردن داده ها در فيلد هاي اكسس :<br />
<br />
فرض كنيد فيلدي داريد به نام Text2 و مي خواهيد كاربر حتما در اين فيلد داده هاي خود را وارد كرده و در صورتي كه بخواهد فيلد را خالي بگذارد سيستم هشدار بدهد براي اين كار به روش ذيل عمل خواهيم كرد .<br />
<br />
روي فيلد كليك راست كرده Properties را انتخاب كرده و در قسمت ويژگي هاي فيلد روي زبانه Event كليك كنيد . سپس در رويداد On Exit كد هاي ذيل را بنويسيد .<br />
<br />
If Isnull(Text2)=True Then                                  <br />
<br />
 "لطفا اطلاعات فيلد را وارد نماييد"Msgbox<br />
<br />
                                   Cancel=True<br />
<br />
                                                    Endif<br />
<br />
ترفند هاي اكسس (8) : تایپ فارسی در فیلد ها<br />
برخی مواقع نیاز است که ما به محض وارد شدن در یک تکست باکس زبان پیش فرضمان فارسی باشد و کاربر مجبور به تغییر زبان از لاتین به فارسی نشود .برای مثال فیلد هایی مثل نام ، نام خانوادگی ، محل سکونت و غیره . برای این کار روی تکست باکس مورد نظر کلیک راست کرده و از زبانه Format گزینه آخر یعنی Keyboard Langue  را به فارسی تغییر می دهیم در این حالت تکست باکس داده ها را به صورت فارسی دریافت خواهد کرد .]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[محدود نمودن داده ورودی به عدد]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=311</link>
			<pubDate>Fri, 25 Jan 2013 14:09:16 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=311</guid>
			<description><![CDATA[با سلام<br />
<br />
<div style="text-align: justify;">یکی از مواردی که گاهاً مد نظر قرار میگیرد , محدود نمودن ورود داده های عددی توسط کاربر در داخل یک فیلد میباشد , به طور مثال در حالتی که بخواهیم کاربر تنها مجاز به ورود عدد به داخل یک فیلد باشد<br />
<br />
<img src="images/smilies/lightbulb.gif" style="vertical-align: middle;" border="0" alt="Idea" title="Idea" /> جهت انجام این امر راه حل های متفاوتی وجود دارد که هر یک به تناسب میتواند مورد استفاده قرار گیرد , به طور مثال در داخل یک فرم فرضی و با در نظر گرفتن نام فیلد به عنوان SampleField میتوان از کدهای زیر استفاده نمود :</div>
<div style="text-align: left;">
<div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub SampleField_KeyPress(KeyAscii As Integer)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Select Case KeyAscii<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Asc("0") To Asc("9"), vbKeyBack<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KeyAscii = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
<br />
End Sub</code></div></div>
</div>
و یا :<br />
<br />
<div style="text-align: left;"><div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub SampleField_KeyUp(KeyCode As Integer, Shift As Integer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;If KeyCode = vbKeyReturn Then Exit Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;If IsNumeric(SampleField.Text) = False Then MsgBox "Only Number"<br />
<br />
End Sub</code></div></div>
</div>
میتوان با توجه به شرایط و صورت مساله مطرح شده , از تلفیق دو روش فوق نیز استفاده به عمل آورد]]></description>
			<content:encoded><![CDATA[با سلام<br />
<br />
<div style="text-align: justify;">یکی از مواردی که گاهاً مد نظر قرار میگیرد , محدود نمودن ورود داده های عددی توسط کاربر در داخل یک فیلد میباشد , به طور مثال در حالتی که بخواهیم کاربر تنها مجاز به ورود عدد به داخل یک فیلد باشد<br />
<br />
<img src="images/smilies/lightbulb.gif" style="vertical-align: middle;" border="0" alt="Idea" title="Idea" /> جهت انجام این امر راه حل های متفاوتی وجود دارد که هر یک به تناسب میتواند مورد استفاده قرار گیرد , به طور مثال در داخل یک فرم فرضی و با در نظر گرفتن نام فیلد به عنوان SampleField میتوان از کدهای زیر استفاده نمود :</div>
<div style="text-align: left;">
<div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub SampleField_KeyPress(KeyAscii As Integer)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Select Case KeyAscii<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Asc("0") To Asc("9"), vbKeyBack<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KeyAscii = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Select<br />
<br />
End Sub</code></div></div>
</div>
و یا :<br />
<br />
<div style="text-align: left;"><div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub SampleField_KeyUp(KeyCode As Integer, Shift As Integer)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;If KeyCode = vbKeyReturn Then Exit Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;If IsNumeric(SampleField.Text) = False Then MsgBox "Only Number"<br />
<br />
End Sub</code></div></div>
</div>
میتوان با توجه به شرایط و صورت مساله مطرح شده , از تلفیق دو روش فوق نیز استفاده به عمل آورد]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[تبدیل ستون به سطر در اکسس]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=309</link>
			<pubDate>Fri, 14 Dec 2012 13:45:02 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=309</guid>
			<description><![CDATA[سلام<br />
 داده هایی که به صورت ردیفی در ستون یک تیبل وارد شده اند چگونه می توانند در ستون های مختلف قرار گیرند؟<br />
یعنی دقیقا همان کاری که crosstab انجام می دهد بدون آنکه Value  داشته باشیم. <br />
در زیر عکس مربوطه را قرار می دهم .<br />
برای توضیح بیشتر: در تیبل 1 نام ردیف ها و در تیبل 2 نام ستون ها نوشته شده است و می خواهم خروجی به شکل تیبل 3 نمایش داده شود. گفتنی است تعداد داده ها در تیبل 1 و 2 نا محدود است بنابراین امکان استفاده از دستور IN یا امثال آن وجود ندارد.<br />
<br />
ممنون میشم راهنمایی کنید. <br />
<img src="http://8pic.ir/images/e512azyxee91j9ci7cxs.png" border="0" alt="[تصویر:  e512azyxee91j9ci7cxs.png]" />]]></description>
			<content:encoded><![CDATA[سلام<br />
 داده هایی که به صورت ردیفی در ستون یک تیبل وارد شده اند چگونه می توانند در ستون های مختلف قرار گیرند؟<br />
یعنی دقیقا همان کاری که crosstab انجام می دهد بدون آنکه Value  داشته باشیم. <br />
در زیر عکس مربوطه را قرار می دهم .<br />
برای توضیح بیشتر: در تیبل 1 نام ردیف ها و در تیبل 2 نام ستون ها نوشته شده است و می خواهم خروجی به شکل تیبل 3 نمایش داده شود. گفتنی است تعداد داده ها در تیبل 1 و 2 نا محدود است بنابراین امکان استفاده از دستور IN یا امثال آن وجود ندارد.<br />
<br />
ممنون میشم راهنمایی کنید. <br />
<img src="http://8pic.ir/images/e512azyxee91j9ci7cxs.png" border="0" alt="[تصویر:  e512azyxee91j9ci7cxs.png]" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[پسوند accde]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=304</link>
			<pubDate>Sat, 06 Oct 2012 11:21:20 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=304</guid>
			<description><![CDATA[سلام یک برنامه با اکسس نوشته شده است که قفل شده و. امکان استفاده از ان نیست <br />
ممنون میشم  راهی برای تبدیلش بدهید فایلش اینه<br />
<a href="http://www.microsoftaccesstemplate.com/download/crm_eval.zip" target="_blank">http://www.microsoftaccesstemplate.com/d...m_eval.zip</a>]]></description>
			<content:encoded><![CDATA[سلام یک برنامه با اکسس نوشته شده است که قفل شده و. امکان استفاده از ان نیست <br />
ممنون میشم  راهی برای تبدیلش بدهید فایلش اینه<br />
<a href="http://www.microsoftaccesstemplate.com/download/crm_eval.zip" target="_blank">http://www.microsoftaccesstemplate.com/d...m_eval.zip</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[مقایسه آفیس 32bit و 64bit]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=297</link>
			<pubDate>Fri, 15 Jun 2012 23:44:17 +0430</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=297</guid>
			<description><![CDATA[<div style="text-align: justify;">با سلام<br />
<br />
با توجه به روند پیش رو در خصوص تحولات نرم افزاری و سخت افزاری , و پیشرفتهای حاصل از اون , مجموعه آفیس هم همراه با این تغییر شاهد ارائه نمونه های 64 بیت هستش<br />
<br />
در این مقاله کوتاه قصد دارم اقدام به مقایسه اکسس 32 بیت و 64 بیت به نمایندگی از سوی مجموعه آفیس کنم <br />
<br />
ولیکن در ابتدا با همدیگه نیم نگاهی به تفاوت ویندوزهای 32 بیت و 64 بیت داشته باشیم , چرا که بستر اجرایی یک آفیس 64 بیت , یک ویندوز 64 بیتی خواهد بود , به عبارتی دیگه امکان اجرای نرم افزارهای 64 بیتی و بهره برداری کامل از مزایای این نوع معماری تنها در صورتی امکان پذیر هست که ویندوز هم از گونه 64 بیتی باشه<br />
<br />
ویندوزهای 64 بیتی از زمان عرضه ویندوز XP پا به عرصه وجود گذاشتند , در واقع نمونه های قدیمی تر از ویندوز XP فاقد گونه های 64 بیتی هستند<br />
<br />
تفاوت اصلی بین ویندوزهای 32 و 64 بیتی در توان پردازش اطلاعات در واحد زمان هستش<br />
<br />
در ویندوزهای 64 بیتی میزان اطلاعات بیشتری در واحد زمان , جهت پردازش مورد استفاده قرار میگیره , بر همین اساس در ویندوزهای 64 بیتی امکان آدرس دهی میزان بسیار بسیار بیشتری از فضای رم , امکان پذیر هستش<br />
<br />
در ویندوز XP امکان آدرس دهی ( جهت پردازش ) تنها تا حداکثر 4 گیگا بایت امکان پذیر هستش در حالی که این محدودیت در خصوص ویندوزهای 64 بیتی چیزی نزدیک به 17 میلیارد گیگابایت هستش , در واقع این محدودیت در خصوص ویندوزهای 64 بیت تنها در سطح تئوریک باقی خواهد موند<br />
<br />
ذکر این نکته نیز الزامی به نظر میرسه که امکان اجرای ویندوزهای 64 بیتی تنها بر روی سیستمهای امکان پذیر بوده که از لحاظ سخت افزاری نیز از معماری 64 بیتی پشتیبانی لازم رو به عمل بیارن<br />
<br />
به طور مثال جهت اجرای یک ویندوز 64 بیت الزاماً نیازمند به استفاده از CPU هایی میباشید که قابلیت پردازش در مد 64bit رو داشته باشند<br />
<br />
حال ممکنه این سئوال در ذهن ایجاد بشه که در صورت استفاده از ویندوزهای 64 بیتی , وضعیت استفاده از نرم افزارهای 32 بیتی ( نرم افزارهایی که در حال حاضر وجود دارند ) به چه صورتی در خواهد اومد<br />
<br />
مایکروسافت همواره به گونه ای عمل میکنه , که زمانی رو جهت دوره گذار در نظر میگیره , تا همین امروز هم ویندوزهای 32 بیت با درصدی قابل قبول از نرم افزارهای 16 بیت پشتیبانی میکنند , این اتفاق در خصوص گذر از 32 بیت به 64 بیت هم , از سوی مایکروسافت مورد توجه قرار گرفته ( در نسخه های 64 بیتی , پشتیبانی از 16 بیتی حذف شده )<br />
<br />
مایکروسافت در معماری 64 بیتی اقدام به ایجاد یک محیط شبیه ساز با نام  <span style="font-weight: bold;">WoW64  </span>یا همون Windows-32-on-Windows-64  نموده<br />
<br />
کار این شبیه ساز اجرای نرم افزارهای 32 بیتی در داخل ویندوزهای 64 بیتی هستش<br />
<br />
در واقع در داخل این محیط , شرایط یک ویندوز 32 بیتی شبیه سازی میشه , تا نرم افزار 32 بیت بدون مشکل قادر به اجرا باشه<br />
<br />
توضیحات کلی ارائه شد , تصور میکنم توضیح بیشتر در خصوص ویندوز الزام چندانی نداشته باشه , در ادامه به بررسی اکسس 64 بیت و مقایسه اون با اکسس 32 بیت می پردازیم<br />
<br />
توجه کنید , در صورتی که اقدام به نصب آفیس بر روی یک ویندوز 64 بیت میکنید , در حالت پیش گزیده , فرایند نصب اقدام به نصب نسخه 32 بیت خواهد نمود , بر همین اساس در صورتی که مایل به نصب نسخه 64 بیت هستید , میبایست اقدام به اجرای نصاب نسخه 64 بیت به صورت دستی کنید<br />
 <br />
هم اکنون , توصیه خود مایکروسافت هم نصب نسخه 32 بیت هستش تا از تداخلهای ناخواسته به وجود اومده بین نسخه 64 بیت و دیگر افزونه های نصب شده بر روی آفیس جلوگیری به عمل بیاد<br />
<br />
امکان نصب همزمان نسخه 32 بیت و 64 بیت بر روی یک سیستم ( ویندوز ) وجود نداره<br />
<br />
تنها مزیت بارزی که یک نسخه 64 بیت نسبت به نسخه 32 بیتی اون در مجموعه آفیس داره , امکان آدرس دهی های بیشتر حافظه هستش<br />
<br />
البته این مزیت در نرم افزاری همچون صفحه گسترده Excel نمود پیدا میکنه و افزایش سرعت محاسبات رو به همراه میاره , در اکسس این مزیت با توجه به نوع معماری متفاوتش در خصوص تعامل با داده ها , تفاوت چندان محسوسی رو نمیتونه به همراه داشته باشه<br />
<br />
در اکسس داده ها تا زمانی که نیازی به استفاده از اونها نباشه , فراخوانی نمیشن , در واقع در بسیاری موارد اکسس , تنها اقدام به بارگذاری داده هایی میکنه که شما اونها رو در داخل صفحه نمایش می بینید , در یک گزارش 100 صفحه ای اکسس در وحله اول تنها اقدام به بارگذاری تمام و کمال داده هایی میکنه که مرتبط با صفحه ای از گزارش هستند که شما در حال مشاهده اون هستید<br />
<br />
به تعبیری , اکسس به خودی خود وابستگی کاملی به میزان رم نداره , البته در این گذر هر آنچه که میزان رم بیشتر باشه , همچون تمام نرم افزارهای دیگه سرعت اجرای خود اکسس بیشتر میشه , ناگفته پیداست این موضوع مقوله ای جدا از مبحث 32 بیت بودن یا 64 بیت بودن هستش<br />
<br />
اینگونه که از مستندات مایکروسافت مشهود هستش , بیشترین مزیت ارتقا به نسخه 64 بیتی تنها در نظر <span style="font-weight: bold;">کاربران Excel </span>نمود پیدا میکنه<br />
<br />
در نسخه های 32 بیتی در صورتی که شما از توابع API استفاده کرده باشید , در صورت ارتقا به نسخه های 64 بیتی , نحوه معرفی این توابع تغییر پیدا کرده که اون هم بیشتر مرتبط با معرفی نوع داده های جدیدی هستش که در ویندوزهای 64 بیتی به اونها اشاره شده<br />
<br />
بر همین اساس امکان ارائه یک نسخه از فایل که بدون مشکل , در هر دو حالت 32 و 64 بیتی , قادر به اجرا شدن باشند به سختی امکان پذیره و نیاز به تست مستقل بر روی هر دو کانفیگ داره<br />
<br />
نسخه های موجود در خصوص ActiveX Dll و ActiveX COM های موجود عموماً 32 بیتی هستند و قابلیت اجرا در داخل محیط 64 بیتی رو نخواهند داشت<br />
<br />
<span style="font-weight: bold;">توضیح : </span>شاید در ذهن این سئوال ایجاد بشه که  WoW64 به عنوان شبیه ساز این امکان رو به وجود نمیاره ؟<br />
<br />
در پاسخ باید گفت خیر , WoW64 میتونه اقدام به راه اندازی نرم افزارهای 32 بیتی کنه , مشکل فعلی از اونجا ناشی میشه , که اکسس 64 بیت در هنگام اجرا و در داخل محیط خودش قصد فراخوانی ActiveX  رو داره<br />
<br />
امکان فراخوانی یک پروسه 32 بیتی ( در اینجا اکتیو ایکس 32 بیتی ) از داخل یک پروسه 64 بیتی به صورت مستقیم وجود نداره<br />
<br />
این مکانیزم در داخل خود ویندوز به کمک WoW64 محقق میشه , ولیکن در داخل آفیس 64 این مورد وجود نداره<br />
<br />
در صورتی که شما یک پروژه 32 بیت رو توسط یک اکسس 32 بیتی به صورت ACCDE تبدیل و فایل نهایی رو به مشتری تحویل بدید , این نسخه قابلیت اجرا بر روی اکسس 64 بیت رو نخواهد داشت , در این حالت پروژه میبایست مجددا در داخل اکسس 64 بیت پروسه تبدیل رو توسط برنامه نویس اولیه طی کنه و فایل جدید ارسال بشه<br />
<br />
در مجموع و به جهت جمع بندی :<br />
<br />
در حال حاضر نیازی به ارتقا به اکسس 64 بیت وجود نداره , و این محیط بیشتر مشکل ساز هستش چرا که با سیستمهای 32 بیت که طیف بسیار زیادی از کاربران فعلی رو پوشش میده ناسازگاره<br />
<br />
موفق باشید</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">با سلام<br />
<br />
با توجه به روند پیش رو در خصوص تحولات نرم افزاری و سخت افزاری , و پیشرفتهای حاصل از اون , مجموعه آفیس هم همراه با این تغییر شاهد ارائه نمونه های 64 بیت هستش<br />
<br />
در این مقاله کوتاه قصد دارم اقدام به مقایسه اکسس 32 بیت و 64 بیت به نمایندگی از سوی مجموعه آفیس کنم <br />
<br />
ولیکن در ابتدا با همدیگه نیم نگاهی به تفاوت ویندوزهای 32 بیت و 64 بیت داشته باشیم , چرا که بستر اجرایی یک آفیس 64 بیت , یک ویندوز 64 بیتی خواهد بود , به عبارتی دیگه امکان اجرای نرم افزارهای 64 بیتی و بهره برداری کامل از مزایای این نوع معماری تنها در صورتی امکان پذیر هست که ویندوز هم از گونه 64 بیتی باشه<br />
<br />
ویندوزهای 64 بیتی از زمان عرضه ویندوز XP پا به عرصه وجود گذاشتند , در واقع نمونه های قدیمی تر از ویندوز XP فاقد گونه های 64 بیتی هستند<br />
<br />
تفاوت اصلی بین ویندوزهای 32 و 64 بیتی در توان پردازش اطلاعات در واحد زمان هستش<br />
<br />
در ویندوزهای 64 بیتی میزان اطلاعات بیشتری در واحد زمان , جهت پردازش مورد استفاده قرار میگیره , بر همین اساس در ویندوزهای 64 بیتی امکان آدرس دهی میزان بسیار بسیار بیشتری از فضای رم , امکان پذیر هستش<br />
<br />
در ویندوز XP امکان آدرس دهی ( جهت پردازش ) تنها تا حداکثر 4 گیگا بایت امکان پذیر هستش در حالی که این محدودیت در خصوص ویندوزهای 64 بیتی چیزی نزدیک به 17 میلیارد گیگابایت هستش , در واقع این محدودیت در خصوص ویندوزهای 64 بیت تنها در سطح تئوریک باقی خواهد موند<br />
<br />
ذکر این نکته نیز الزامی به نظر میرسه که امکان اجرای ویندوزهای 64 بیتی تنها بر روی سیستمهای امکان پذیر بوده که از لحاظ سخت افزاری نیز از معماری 64 بیتی پشتیبانی لازم رو به عمل بیارن<br />
<br />
به طور مثال جهت اجرای یک ویندوز 64 بیت الزاماً نیازمند به استفاده از CPU هایی میباشید که قابلیت پردازش در مد 64bit رو داشته باشند<br />
<br />
حال ممکنه این سئوال در ذهن ایجاد بشه که در صورت استفاده از ویندوزهای 64 بیتی , وضعیت استفاده از نرم افزارهای 32 بیتی ( نرم افزارهایی که در حال حاضر وجود دارند ) به چه صورتی در خواهد اومد<br />
<br />
مایکروسافت همواره به گونه ای عمل میکنه , که زمانی رو جهت دوره گذار در نظر میگیره , تا همین امروز هم ویندوزهای 32 بیت با درصدی قابل قبول از نرم افزارهای 16 بیت پشتیبانی میکنند , این اتفاق در خصوص گذر از 32 بیت به 64 بیت هم , از سوی مایکروسافت مورد توجه قرار گرفته ( در نسخه های 64 بیتی , پشتیبانی از 16 بیتی حذف شده )<br />
<br />
مایکروسافت در معماری 64 بیتی اقدام به ایجاد یک محیط شبیه ساز با نام  <span style="font-weight: bold;">WoW64  </span>یا همون Windows-32-on-Windows-64  نموده<br />
<br />
کار این شبیه ساز اجرای نرم افزارهای 32 بیتی در داخل ویندوزهای 64 بیتی هستش<br />
<br />
در واقع در داخل این محیط , شرایط یک ویندوز 32 بیتی شبیه سازی میشه , تا نرم افزار 32 بیت بدون مشکل قادر به اجرا باشه<br />
<br />
توضیحات کلی ارائه شد , تصور میکنم توضیح بیشتر در خصوص ویندوز الزام چندانی نداشته باشه , در ادامه به بررسی اکسس 64 بیت و مقایسه اون با اکسس 32 بیت می پردازیم<br />
<br />
توجه کنید , در صورتی که اقدام به نصب آفیس بر روی یک ویندوز 64 بیت میکنید , در حالت پیش گزیده , فرایند نصب اقدام به نصب نسخه 32 بیت خواهد نمود , بر همین اساس در صورتی که مایل به نصب نسخه 64 بیت هستید , میبایست اقدام به اجرای نصاب نسخه 64 بیت به صورت دستی کنید<br />
 <br />
هم اکنون , توصیه خود مایکروسافت هم نصب نسخه 32 بیت هستش تا از تداخلهای ناخواسته به وجود اومده بین نسخه 64 بیت و دیگر افزونه های نصب شده بر روی آفیس جلوگیری به عمل بیاد<br />
<br />
امکان نصب همزمان نسخه 32 بیت و 64 بیت بر روی یک سیستم ( ویندوز ) وجود نداره<br />
<br />
تنها مزیت بارزی که یک نسخه 64 بیت نسبت به نسخه 32 بیتی اون در مجموعه آفیس داره , امکان آدرس دهی های بیشتر حافظه هستش<br />
<br />
البته این مزیت در نرم افزاری همچون صفحه گسترده Excel نمود پیدا میکنه و افزایش سرعت محاسبات رو به همراه میاره , در اکسس این مزیت با توجه به نوع معماری متفاوتش در خصوص تعامل با داده ها , تفاوت چندان محسوسی رو نمیتونه به همراه داشته باشه<br />
<br />
در اکسس داده ها تا زمانی که نیازی به استفاده از اونها نباشه , فراخوانی نمیشن , در واقع در بسیاری موارد اکسس , تنها اقدام به بارگذاری داده هایی میکنه که شما اونها رو در داخل صفحه نمایش می بینید , در یک گزارش 100 صفحه ای اکسس در وحله اول تنها اقدام به بارگذاری تمام و کمال داده هایی میکنه که مرتبط با صفحه ای از گزارش هستند که شما در حال مشاهده اون هستید<br />
<br />
به تعبیری , اکسس به خودی خود وابستگی کاملی به میزان رم نداره , البته در این گذر هر آنچه که میزان رم بیشتر باشه , همچون تمام نرم افزارهای دیگه سرعت اجرای خود اکسس بیشتر میشه , ناگفته پیداست این موضوع مقوله ای جدا از مبحث 32 بیت بودن یا 64 بیت بودن هستش<br />
<br />
اینگونه که از مستندات مایکروسافت مشهود هستش , بیشترین مزیت ارتقا به نسخه 64 بیتی تنها در نظر <span style="font-weight: bold;">کاربران Excel </span>نمود پیدا میکنه<br />
<br />
در نسخه های 32 بیتی در صورتی که شما از توابع API استفاده کرده باشید , در صورت ارتقا به نسخه های 64 بیتی , نحوه معرفی این توابع تغییر پیدا کرده که اون هم بیشتر مرتبط با معرفی نوع داده های جدیدی هستش که در ویندوزهای 64 بیتی به اونها اشاره شده<br />
<br />
بر همین اساس امکان ارائه یک نسخه از فایل که بدون مشکل , در هر دو حالت 32 و 64 بیتی , قادر به اجرا شدن باشند به سختی امکان پذیره و نیاز به تست مستقل بر روی هر دو کانفیگ داره<br />
<br />
نسخه های موجود در خصوص ActiveX Dll و ActiveX COM های موجود عموماً 32 بیتی هستند و قابلیت اجرا در داخل محیط 64 بیتی رو نخواهند داشت<br />
<br />
<span style="font-weight: bold;">توضیح : </span>شاید در ذهن این سئوال ایجاد بشه که  WoW64 به عنوان شبیه ساز این امکان رو به وجود نمیاره ؟<br />
<br />
در پاسخ باید گفت خیر , WoW64 میتونه اقدام به راه اندازی نرم افزارهای 32 بیتی کنه , مشکل فعلی از اونجا ناشی میشه , که اکسس 64 بیت در هنگام اجرا و در داخل محیط خودش قصد فراخوانی ActiveX  رو داره<br />
<br />
امکان فراخوانی یک پروسه 32 بیتی ( در اینجا اکتیو ایکس 32 بیتی ) از داخل یک پروسه 64 بیتی به صورت مستقیم وجود نداره<br />
<br />
این مکانیزم در داخل خود ویندوز به کمک WoW64 محقق میشه , ولیکن در داخل آفیس 64 این مورد وجود نداره<br />
<br />
در صورتی که شما یک پروژه 32 بیت رو توسط یک اکسس 32 بیتی به صورت ACCDE تبدیل و فایل نهایی رو به مشتری تحویل بدید , این نسخه قابلیت اجرا بر روی اکسس 64 بیت رو نخواهد داشت , در این حالت پروژه میبایست مجددا در داخل اکسس 64 بیت پروسه تبدیل رو توسط برنامه نویس اولیه طی کنه و فایل جدید ارسال بشه<br />
<br />
در مجموع و به جهت جمع بندی :<br />
<br />
در حال حاضر نیازی به ارتقا به اکسس 64 بیت وجود نداره , و این محیط بیشتر مشکل ساز هستش چرا که با سیستمهای 32 بیت که طیف بسیار زیادی از کاربران فعلی رو پوشش میده ناسازگاره<br />
<br />
موفق باشید</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[مفهوم Index و تاثیر آن بر روی برنامه]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=180</link>
			<pubDate>Thu, 01 Dec 2011 20:07:52 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=180</guid>
			<description><![CDATA[<div style="text-align: justify;">سلام<br />
<br />
مطلب رو با مثال زیر شروع میکنم :<br />
<br />
مطمئناً همه ما دفتر تلفنهایی که در گوشه صفحه اونها تقسم بندی ( در اینجا الفبایی ) وجود داره رو دیدیم .<br />
<br />
عملکرد این بخش امکان دسترسی سریعتر به اطلاعات هستش . در دیتا بیس به نوعی این عملکرد رو Index انجام میده ولی با تفاوتهایی خاص<br />
<br />
Index الزاماً عدم پیمایش کل رکوردها رو به همراه نداره . به سناریوهای زیر توجه کنید :<br />
<br />
رکورد مورد بحث در آخرین ردیف قرار داره ( که البته برای وقوع همیشگی این مورد دیگه باید دیوار خیلی کوتاهی داشته باشید )<br />
<br />
ولی دومین امر تنظیمات دو گانه Index هستش . در حالتی که مجوز تکرار داده شده باشه ( Duplicates OK ) پروسه پیمایش همچنان تا آخرین رکورد ادامه پیدا میکنه در واقع شما با انتخاب حالت No Duplicates هست که به اکسس این اطمینان خاطر رو میدید که به اولین رکورد مورد نظر که رسیدی دیگه به دنبال رکورد دیگه ای نگرد حال این رکورد میتونه :<br />
<br />
در ردیف اول باشه ( افزایش سرعت بسیار بالا در دیتابیسی با تعداد رکورد زیاد )<br />
در اواسط باشه ( افزایش سرعت قابل توجه در دیتابیسی با تعداد رکورد زیاد )<br />
در انتها باشه ( شاهد هیچ افزایش سرعتی نباشیم بلکه تا حدودی نیز شاهد کندی عملیات نیز باشیم )<br />
توضیح : حالت سوم کندتر به دلیل اینکه در هر صورت عمل پیمایش تا انتها ادامه می یابد ولی اینبار پروسه متب سازی نیز به سیستم تحمیل شده است .<br />
<br />
اعمالی که باعث بی تاثیری و ناکارمدی Index میشه تعدد Index های یک جدول و اینکه Index بر روی چه چیزی گذاشته شده هستش . ( به طور مثال از دید من Index گذاری مبلغ منطقی نیست )<br />
<br />
با هم به مثال دفتر تلفن رجوع میکنم :<br />
<br />
تقسیم بندی های دفتر تلفن تا وقتی ارزشمنده که گروههای انتخابی نه خیلی بزرگ و نه خیلی کوچیک باشن به طور مثال در یک دفتر تلفن استاندارد حرف الف در یک گروه , حرف ب در یک گروه و ... قرار میگیرن حالا تصور کنید که تقسم بندی این دفتر تلفن رو خیلی خرد کنیم و برای نبیل پیروزمهر یک صفحه و برای X و Y هم هر یک , یک صفحه رو در نظر بگیریم . در این حالت Index گذاری به عنوان یک ضد سیستم عمل میکنه و نبودش بهتر از بودنشه .<br />
<br />
امری که منع میشه تعدد فیلدهای شاخص گذاری شده هستش .<br />
<br />
به نظرم Index گذاری باعث کاهش سرعت در دیتا بیسی با تعداد رکورد کم نمیشه .<br />
<br />
مبحث Index یکی از مباحث پایه ای دیتا بیسها هستش و اطلاع از نحوه رفتار این خصیصه میتونه در ارائه یک برنامه کارآمد تاثیر گذار باشه .<br />
<br />
پی نوشت :<br />
<br />
در کنار مشخصه Index مولفه دیگه ای وجود داره با نام Primary Key<br />
<br />
این دو مشخصه دارای فصل مشترکی زیادی هستند و لیکن تفاوتهای اختصاصی زیر رو با هم دارند<br />
<br />
Primary Key اشاره به يك موجوديت منحصر به فرد داره ، مقدار Null‌ رو هم نمي پذيره ( در حالت ساده ، مجوز خالي بودن فيلد رو نميده )<br />
<br />
Indexed Field عملكردي مشابه با همون Primary Key‌ داره ( در حالت No Duplicate ) با اين تفاوت كه اجازه مقدار Null‌ رو در فيلد ميده<br />
<br />
بر همين اساس اگر قصد داريد كنترل كاملي بر روي عدم تكرار يك فيلد داشته باشيد بايد از Primary Key‌ استفاده كنيد ، چرا كه Index‌ تنها در حالتي كه مقداري در داخل فيلد وارد شده باشه بر روي عدم تكراري بودن نظارت ميكنه<br />
<br />
معمولا از Index‌ بر روي فيلدهايي استفاده ميشه كه بيشتر مورد جستجو قرار ميگيرند</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">سلام<br />
<br />
مطلب رو با مثال زیر شروع میکنم :<br />
<br />
مطمئناً همه ما دفتر تلفنهایی که در گوشه صفحه اونها تقسم بندی ( در اینجا الفبایی ) وجود داره رو دیدیم .<br />
<br />
عملکرد این بخش امکان دسترسی سریعتر به اطلاعات هستش . در دیتا بیس به نوعی این عملکرد رو Index انجام میده ولی با تفاوتهایی خاص<br />
<br />
Index الزاماً عدم پیمایش کل رکوردها رو به همراه نداره . به سناریوهای زیر توجه کنید :<br />
<br />
رکورد مورد بحث در آخرین ردیف قرار داره ( که البته برای وقوع همیشگی این مورد دیگه باید دیوار خیلی کوتاهی داشته باشید )<br />
<br />
ولی دومین امر تنظیمات دو گانه Index هستش . در حالتی که مجوز تکرار داده شده باشه ( Duplicates OK ) پروسه پیمایش همچنان تا آخرین رکورد ادامه پیدا میکنه در واقع شما با انتخاب حالت No Duplicates هست که به اکسس این اطمینان خاطر رو میدید که به اولین رکورد مورد نظر که رسیدی دیگه به دنبال رکورد دیگه ای نگرد حال این رکورد میتونه :<br />
<br />
در ردیف اول باشه ( افزایش سرعت بسیار بالا در دیتابیسی با تعداد رکورد زیاد )<br />
در اواسط باشه ( افزایش سرعت قابل توجه در دیتابیسی با تعداد رکورد زیاد )<br />
در انتها باشه ( شاهد هیچ افزایش سرعتی نباشیم بلکه تا حدودی نیز شاهد کندی عملیات نیز باشیم )<br />
توضیح : حالت سوم کندتر به دلیل اینکه در هر صورت عمل پیمایش تا انتها ادامه می یابد ولی اینبار پروسه متب سازی نیز به سیستم تحمیل شده است .<br />
<br />
اعمالی که باعث بی تاثیری و ناکارمدی Index میشه تعدد Index های یک جدول و اینکه Index بر روی چه چیزی گذاشته شده هستش . ( به طور مثال از دید من Index گذاری مبلغ منطقی نیست )<br />
<br />
با هم به مثال دفتر تلفن رجوع میکنم :<br />
<br />
تقسیم بندی های دفتر تلفن تا وقتی ارزشمنده که گروههای انتخابی نه خیلی بزرگ و نه خیلی کوچیک باشن به طور مثال در یک دفتر تلفن استاندارد حرف الف در یک گروه , حرف ب در یک گروه و ... قرار میگیرن حالا تصور کنید که تقسم بندی این دفتر تلفن رو خیلی خرد کنیم و برای نبیل پیروزمهر یک صفحه و برای X و Y هم هر یک , یک صفحه رو در نظر بگیریم . در این حالت Index گذاری به عنوان یک ضد سیستم عمل میکنه و نبودش بهتر از بودنشه .<br />
<br />
امری که منع میشه تعدد فیلدهای شاخص گذاری شده هستش .<br />
<br />
به نظرم Index گذاری باعث کاهش سرعت در دیتا بیسی با تعداد رکورد کم نمیشه .<br />
<br />
مبحث Index یکی از مباحث پایه ای دیتا بیسها هستش و اطلاع از نحوه رفتار این خصیصه میتونه در ارائه یک برنامه کارآمد تاثیر گذار باشه .<br />
<br />
پی نوشت :<br />
<br />
در کنار مشخصه Index مولفه دیگه ای وجود داره با نام Primary Key<br />
<br />
این دو مشخصه دارای فصل مشترکی زیادی هستند و لیکن تفاوتهای اختصاصی زیر رو با هم دارند<br />
<br />
Primary Key اشاره به يك موجوديت منحصر به فرد داره ، مقدار Null‌ رو هم نمي پذيره ( در حالت ساده ، مجوز خالي بودن فيلد رو نميده )<br />
<br />
Indexed Field عملكردي مشابه با همون Primary Key‌ داره ( در حالت No Duplicate ) با اين تفاوت كه اجازه مقدار Null‌ رو در فيلد ميده<br />
<br />
بر همين اساس اگر قصد داريد كنترل كاملي بر روي عدم تكرار يك فيلد داشته باشيد بايد از Primary Key‌ استفاده كنيد ، چرا كه Index‌ تنها در حالتي كه مقداري در داخل فيلد وارد شده باشه بر روي عدم تكراري بودن نظارت ميكنه<br />
<br />
معمولا از Index‌ بر روي فيلدهايي استفاده ميشه كه بيشتر مورد جستجو قرار ميگيرند</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[توضیحی کوتاه در خصوص امنیت در اکسس]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=179</link>
			<pubDate>Thu, 01 Dec 2011 19:34:12 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=179</guid>
			<description><![CDATA[<div style="text-align: justify;">با سلام<br />
<br />
اندکی در خصوص مبحث امنیت در اکسس توضیح میدم و مسیر کلی حرکتتون , روی صحبتم با تمام دوستانی خواهد بود که یک راه حل امنیتی ارائه دادند ( و یا خواهند داد ) و دوستانی که قصد استفاده از این تکنیکها رو دارند<br />
<br />
شاید در دفعات متوالی دیده باشید که یک روش باز دارنده کرک شده , وقوع این امر دلیلی بر عدم استفاده از اون روش نیست بلکه اگر به میزان امنیت یک روش امتیازی اختصاص داده میشه تنها به جهت اطلاع از میزان مقاومت اون روش در مقابل یک کرکر خواهد بود<br />
<br />
این امتیاز دهی نسبی بوده و معیار استانداردی نداره , شاید در جایی درجه امنیت رو کرکری 3 از 10 عنوان نموده و کرکری دیگر 7 از ده , این اعداد بیشتر سلیقه ای بوده و اینکه کرکر چه چیزی رو سخت و چه چیزی رو آسان تصور کرده<br />
پس هر روش بازدارنده به قطع در جایگاه خودش بازدارنده بوده , حال با شدت و ضعف متفاوت<br />
<br />
هیچ کسی منکر اثر گذاری بستن دکمه Shift و MDE نمودن فایل , مخفی نمودن جداول و دیگر روشها نیست<br />
<br />
کرکر در صورتی که از همه این تکنیکها به دفعات استفاده کرده باشید به همون نسبت باید زمانی رو اختصاص بده تا تمامی گلوگاههای امنیتی رو که براش ایجاد کردید , مرتفع کنه<br />
<br />
این تعداد دفعات وقوع گلوگاه ها و نحوه اعمال اونها میتونه تا حدی پیش بره که کرکر رو به کل از انجام عملش منصرف کنه , در واقع شما باید حوصله کرکر رو سر ببرید<br />
<br />
مثالی بزنیم :<br />
<br />
کرکر با اتومبیلش در حال حرکته , جاده آسفالت شده رو در حکم نرم افزارهای فاقد گارد امنیتی فرض کنید , کرکر با حداکثر سرعت و با کمترین تشویش دونه دونه اونها رو طی میکنه , حال در همین مسیر مطمئنا راههای فرعی هم وجود داره که خاکی هستند , شما باز هم همین مسیرهای خاکی رو به عنوان نرم افزار فرض کنید , هر چه کیفیت این مسیر و در واقع دست اندازهای اون بیشتر باشه احتمال اینکه کرکر هوس عبور از این مسیر خاکی رو داشته باشه ( حتی به قصد تفریح ) کم و کم تر میشه تا جایی که حتی ممکنه بخشی از مسیر رو طی کنه ( دست اندازهای اولیه که در واقع در این مثال نمادی از الگوهای امنیتی شما هستند که به توالی به کار بردید ) ولی در نهایت ممکنه در جایی از ادامه مسیر منصرف بشه<br />
( این مثال رو با واقعیتهای زندگی خودتون انطباق بدید ) کرکرها هم مثل من و شما انسان بوده و آستانه تحمل دارن , هر چه قدر به این آستانه تحمل نزدیکتر بشید احتمال منصرف شدنش بیشتره<br />
<br />
چه نرم افزارهایی ممکنه کرک بشن ؟<br />
<br />
واقعیت اینه که تمامی برنامه نویسان ممکنه در معرض خظر نباشند چرا که قاعدتا یک کرکر حرفه ای طعمه خودش رو از بین نمونه های ارزشمند انتخاب میکنه<br />
<br />
فرضا اگر در همین حال حاضر هم نرم افزاری رو ارائه کردید که مشتری اندکی داره ( مشتری اندک نه به خاطر قیمت بالای اون , چرا که قواعد حمله به این نرم افزارها اندکی متفاوته ) , احتمال اینکه با نمونه کرک شده اون هم مواجه بشید خیلی کمه<br />
<br />
در مجموع احتمال کرک شدن میتونه تابعی از چند پارامتر زیر باشه :<br />
قیمت ( بالاتر ) – تعداد مشتریان ( بیشتر ) – میزان تخصصی بودن نرم افزار ( تخصصی تر ) – و در مجموع کیفیت نرم افزار ( با کیفیت تر- زیبا تر – کارآمدتر و ... )<br />
<br />
نرم افزارهایی که خارج از این قاعده قرار بگیرن میشه گفت هدف کرکرهای پیشگام قرار نمیگیرن , چرا که این گروه هر نرم افزاری رو کرکر نمیکنن<br />
قاعدتا اینگونه نرم افزارهایی مورد هدف کرکرهایی رده دو و به پایین ( مبتدی ) قرار خواهند گرفت<br />
<br />
اینکه توصیه میشه آموزش کرکینگ در کل تالار به انجام نرسه دقیقا به خاطر همین طیف مبتدی در عملیات کرکینگ خواهد بود<br />
متاسفانه حس کنجکاوی این طیف بیشتر از مابقی گروهها هستش ( در یکی از پستها هم که یکی از دوستان به وضوح اعلام فرمودن که در صورت یادگیری , همه نرم افزارها رو به خاطر حس کنجکاویشون مورد لطف قرار خواهند داد )<br />
<br />
فقط متاسفانه یک مشکل وجود داره که کلیه قواعد بازی رو به هم خواهد زد و اون هم تحریک کردن یک کرکر رده یک توسط برنامه نویس خواهد بود , قویا از انجام این امر خودداری کنید , اینگونه کرکرهایی همواره حداقل یک قدم جلوتر از شما خواهند بود<br />
نذارید کارتون به گونه ای پیش بره که در اصطلاح عامیانه بحث کل کل و رو کم کنی پیش بیاد که متاسفانه نتیجه از همین ابتدا مشخص خواهد بود و اون هم چیزی نیست به غیر از به زانو در اومدن شما<br />
<br />
پس مجددا یادآوری میکنم اشاره به ضعف یک روش امنیتی دلیلی بر عدم استفاده از اون روش نیست چرا که همونطوری که خودتون هم میدونید اون روشهای امنیتی ضعیف رو هم خیلی از کاربران نمیتونن مغلوب کنن<br />
ضمن اینکه به هر حال یک کرکر حرفه ای هم برای رفع اون باید زمانی رو اختصاص بده , شما هر چه بیشتر زمان خریداری کنید احتمال موفقیتتون بیشتره<br />
<br />
و لیکن توصیه هایی چند و کوتاه :<br />
<br />
تا حد امکان در صورتی که ممکنه الگوریتم و توالی اعمال قید و بند ها رو در فواصل زمانی مختلف تغییر بدید<br />
<br />
تعداد دفعات ری چک قید و بندهای امنیتی رو افزایش بدید , مثالی میزنم : فرضا شما در سیستمتون تعداد رکوردها رو در سطح فرم به 10 عدد محدود کردید , حال مجدد همین عملیات ری چک رو فرضا در عملیات پرینت هم به انجام برسونید , دقت کنید شاید ارزش دفاعی ذاتی این امر فرضا 1 نمره باشه ولی وقتی شما اون رو دو بار به کار بردید در این حالت کرکر مجبوره دو بار این عملیات رو به انجام برسونه و .... البته در تعدد هم اونقدر این عملیات رو تکرار نکنید که کارایی برنامه رو با مشکل مواجه کنید<br />
<br />
از تمامی تکنیکهای بازدارنده که اطلاعات دقیقی از نحوه به کارگیری اون دارید استفاده کنید<br />
<br />
یک توضیح کوتاه دیگه هم در همین جا بدم اونهم اینه که اندکی بین ایمنی مطلوب خودتون و مطلوب کاربر تفاوت قایل بشید , بیشتر روشهایی که ارائه شده رویکردی به جلوگیری از اعمال تغییر در اینترفیس برنامه هستش مثالی بزنم :<br />
<br />
فرضا دکمه Shift تنها میتونه تا حدودی دسترسی به Database Window رو محدود کنه ولی همچنان بدون نیاز به عبور از این سد کاربر میتونه به جداول و پرس و جوها و .... دسترسی داشته باشه<br />
<br />
این همه از معایب گفتم کمی هم امید بدم , نگران نباشید روشهای کرک کردن کارهای اکسس اندکی با فایلهای اجرایی متفاوته برای همین هم طیف کرکرهای این محصول چندان وسیع نیست<br />
<br />
مقوله امنیت جزو تخصصی ترین فیلدهای کاری بوده که نیاز به دقت و توجه در تبعات کلیه دستورهای مورد استفاده داره<br />
<br />
با توجه به همین پیچدگی, منابع آموزشی کمتری از اون در دسترسه چرا که هم آموزشش بسیار زمان بره ( ریزه کاری بسیار ) و هم اینکه چون یک فیلد تخصصی هست کمتر مورد ارائه در فضاهای مجازی قرار میگیره<br />
<br />
موفق باشید</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">با سلام<br />
<br />
اندکی در خصوص مبحث امنیت در اکسس توضیح میدم و مسیر کلی حرکتتون , روی صحبتم با تمام دوستانی خواهد بود که یک راه حل امنیتی ارائه دادند ( و یا خواهند داد ) و دوستانی که قصد استفاده از این تکنیکها رو دارند<br />
<br />
شاید در دفعات متوالی دیده باشید که یک روش باز دارنده کرک شده , وقوع این امر دلیلی بر عدم استفاده از اون روش نیست بلکه اگر به میزان امنیت یک روش امتیازی اختصاص داده میشه تنها به جهت اطلاع از میزان مقاومت اون روش در مقابل یک کرکر خواهد بود<br />
<br />
این امتیاز دهی نسبی بوده و معیار استانداردی نداره , شاید در جایی درجه امنیت رو کرکری 3 از 10 عنوان نموده و کرکری دیگر 7 از ده , این اعداد بیشتر سلیقه ای بوده و اینکه کرکر چه چیزی رو سخت و چه چیزی رو آسان تصور کرده<br />
پس هر روش بازدارنده به قطع در جایگاه خودش بازدارنده بوده , حال با شدت و ضعف متفاوت<br />
<br />
هیچ کسی منکر اثر گذاری بستن دکمه Shift و MDE نمودن فایل , مخفی نمودن جداول و دیگر روشها نیست<br />
<br />
کرکر در صورتی که از همه این تکنیکها به دفعات استفاده کرده باشید به همون نسبت باید زمانی رو اختصاص بده تا تمامی گلوگاههای امنیتی رو که براش ایجاد کردید , مرتفع کنه<br />
<br />
این تعداد دفعات وقوع گلوگاه ها و نحوه اعمال اونها میتونه تا حدی پیش بره که کرکر رو به کل از انجام عملش منصرف کنه , در واقع شما باید حوصله کرکر رو سر ببرید<br />
<br />
مثالی بزنیم :<br />
<br />
کرکر با اتومبیلش در حال حرکته , جاده آسفالت شده رو در حکم نرم افزارهای فاقد گارد امنیتی فرض کنید , کرکر با حداکثر سرعت و با کمترین تشویش دونه دونه اونها رو طی میکنه , حال در همین مسیر مطمئنا راههای فرعی هم وجود داره که خاکی هستند , شما باز هم همین مسیرهای خاکی رو به عنوان نرم افزار فرض کنید , هر چه کیفیت این مسیر و در واقع دست اندازهای اون بیشتر باشه احتمال اینکه کرکر هوس عبور از این مسیر خاکی رو داشته باشه ( حتی به قصد تفریح ) کم و کم تر میشه تا جایی که حتی ممکنه بخشی از مسیر رو طی کنه ( دست اندازهای اولیه که در واقع در این مثال نمادی از الگوهای امنیتی شما هستند که به توالی به کار بردید ) ولی در نهایت ممکنه در جایی از ادامه مسیر منصرف بشه<br />
( این مثال رو با واقعیتهای زندگی خودتون انطباق بدید ) کرکرها هم مثل من و شما انسان بوده و آستانه تحمل دارن , هر چه قدر به این آستانه تحمل نزدیکتر بشید احتمال منصرف شدنش بیشتره<br />
<br />
چه نرم افزارهایی ممکنه کرک بشن ؟<br />
<br />
واقعیت اینه که تمامی برنامه نویسان ممکنه در معرض خظر نباشند چرا که قاعدتا یک کرکر حرفه ای طعمه خودش رو از بین نمونه های ارزشمند انتخاب میکنه<br />
<br />
فرضا اگر در همین حال حاضر هم نرم افزاری رو ارائه کردید که مشتری اندکی داره ( مشتری اندک نه به خاطر قیمت بالای اون , چرا که قواعد حمله به این نرم افزارها اندکی متفاوته ) , احتمال اینکه با نمونه کرک شده اون هم مواجه بشید خیلی کمه<br />
<br />
در مجموع احتمال کرک شدن میتونه تابعی از چند پارامتر زیر باشه :<br />
قیمت ( بالاتر ) – تعداد مشتریان ( بیشتر ) – میزان تخصصی بودن نرم افزار ( تخصصی تر ) – و در مجموع کیفیت نرم افزار ( با کیفیت تر- زیبا تر – کارآمدتر و ... )<br />
<br />
نرم افزارهایی که خارج از این قاعده قرار بگیرن میشه گفت هدف کرکرهای پیشگام قرار نمیگیرن , چرا که این گروه هر نرم افزاری رو کرکر نمیکنن<br />
قاعدتا اینگونه نرم افزارهایی مورد هدف کرکرهایی رده دو و به پایین ( مبتدی ) قرار خواهند گرفت<br />
<br />
اینکه توصیه میشه آموزش کرکینگ در کل تالار به انجام نرسه دقیقا به خاطر همین طیف مبتدی در عملیات کرکینگ خواهد بود<br />
متاسفانه حس کنجکاوی این طیف بیشتر از مابقی گروهها هستش ( در یکی از پستها هم که یکی از دوستان به وضوح اعلام فرمودن که در صورت یادگیری , همه نرم افزارها رو به خاطر حس کنجکاویشون مورد لطف قرار خواهند داد )<br />
<br />
فقط متاسفانه یک مشکل وجود داره که کلیه قواعد بازی رو به هم خواهد زد و اون هم تحریک کردن یک کرکر رده یک توسط برنامه نویس خواهد بود , قویا از انجام این امر خودداری کنید , اینگونه کرکرهایی همواره حداقل یک قدم جلوتر از شما خواهند بود<br />
نذارید کارتون به گونه ای پیش بره که در اصطلاح عامیانه بحث کل کل و رو کم کنی پیش بیاد که متاسفانه نتیجه از همین ابتدا مشخص خواهد بود و اون هم چیزی نیست به غیر از به زانو در اومدن شما<br />
<br />
پس مجددا یادآوری میکنم اشاره به ضعف یک روش امنیتی دلیلی بر عدم استفاده از اون روش نیست چرا که همونطوری که خودتون هم میدونید اون روشهای امنیتی ضعیف رو هم خیلی از کاربران نمیتونن مغلوب کنن<br />
ضمن اینکه به هر حال یک کرکر حرفه ای هم برای رفع اون باید زمانی رو اختصاص بده , شما هر چه بیشتر زمان خریداری کنید احتمال موفقیتتون بیشتره<br />
<br />
و لیکن توصیه هایی چند و کوتاه :<br />
<br />
تا حد امکان در صورتی که ممکنه الگوریتم و توالی اعمال قید و بند ها رو در فواصل زمانی مختلف تغییر بدید<br />
<br />
تعداد دفعات ری چک قید و بندهای امنیتی رو افزایش بدید , مثالی میزنم : فرضا شما در سیستمتون تعداد رکوردها رو در سطح فرم به 10 عدد محدود کردید , حال مجدد همین عملیات ری چک رو فرضا در عملیات پرینت هم به انجام برسونید , دقت کنید شاید ارزش دفاعی ذاتی این امر فرضا 1 نمره باشه ولی وقتی شما اون رو دو بار به کار بردید در این حالت کرکر مجبوره دو بار این عملیات رو به انجام برسونه و .... البته در تعدد هم اونقدر این عملیات رو تکرار نکنید که کارایی برنامه رو با مشکل مواجه کنید<br />
<br />
از تمامی تکنیکهای بازدارنده که اطلاعات دقیقی از نحوه به کارگیری اون دارید استفاده کنید<br />
<br />
یک توضیح کوتاه دیگه هم در همین جا بدم اونهم اینه که اندکی بین ایمنی مطلوب خودتون و مطلوب کاربر تفاوت قایل بشید , بیشتر روشهایی که ارائه شده رویکردی به جلوگیری از اعمال تغییر در اینترفیس برنامه هستش مثالی بزنم :<br />
<br />
فرضا دکمه Shift تنها میتونه تا حدودی دسترسی به Database Window رو محدود کنه ولی همچنان بدون نیاز به عبور از این سد کاربر میتونه به جداول و پرس و جوها و .... دسترسی داشته باشه<br />
<br />
این همه از معایب گفتم کمی هم امید بدم , نگران نباشید روشهای کرک کردن کارهای اکسس اندکی با فایلهای اجرایی متفاوته برای همین هم طیف کرکرهای این محصول چندان وسیع نیست<br />
<br />
مقوله امنیت جزو تخصصی ترین فیلدهای کاری بوده که نیاز به دقت و توجه در تبعات کلیه دستورهای مورد استفاده داره<br />
<br />
با توجه به همین پیچدگی, منابع آموزشی کمتری از اون در دسترسه چرا که هم آموزشش بسیار زمان بره ( ریزه کاری بسیار ) و هم اینکه چون یک فیلد تخصصی هست کمتر مورد ارائه در فضاهای مجازی قرار میگیره<br />
<br />
موفق باشید</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[چرا باید نسبت به ارائه نسخه آزمایشی اقدام نمایم ؟؟؟]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=96</link>
			<pubDate>Thu, 01 Sep 2011 21:37:09 +0430</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=96</guid>
			<description><![CDATA[:.<br />
با سلامي دوباره<br />
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">ممكن است تاكنون بارها از خود پرسيده باشيد ، چرا باید نسبت به ارائه نسخه آزمایشی محصول خود ، اقدام نمایم ؟!</span></div>
<br />
<div style="text-align: justify;">بایستی این واقعیت را پذیرفت که امروزه زندگی انسان با کامپیوتر عجین شده است تا پیامد این پیوند ، انجام کارها در زمانی بسیار سریعتر و دقتی افزونتر بوده باشد . در این راستا تشکیل گروه‌های نرم افزاری متفاوت در زیر <span style="font-weight: bold;">آرمهای تجاری</span> مختلف راه را بر کاربران هموار نموده تا در این بازار وسیع نسبت به انتخاب نمونه مورد نیاز خود اقدام نمایند و لیكن انتخاب نرم افزار نیز با توجه به <span style="font-weight: bold;">تنوع</span> موجود ، <span style="font-weight: bold;">سردرگمي</span>‌ آنان را با خود به همراه آورده است . از آن‌ سوی عرصه بر فروشندگان محصولات نیز تنگتر گردیده است .<br />
در ابتدا لازم است کاربر را به نحوی به استفاده از محصول نرم افزاری خود <span style="font-weight: bold;">ترغیب</span> نمایید . <span style="color: #FF0000;"><span style="font-weight: bold;">مجبور نمودن</span></span> کاربر به خرید نرم افزار و <span style="color: #FF0000;"><span style="font-weight: bold;">تست نمودن آن پس از خرید</span></span> , کاری بوده که بسیاری از تولید کنندگان نرم افزار ( اکثریت تولید کنندگان داخلی ) به آن متوسل شده اند . چه بسیار نرم افزارهایی که مشتری پس از خرید متوجه <span style="font-weight: bold;">ناکارآمدی</span> آنها شده و آنها را در گوشه‌ای رها نموده است . ماحصل کار نرم افزاری در گوشه‌ای افتاده و سابقه‌ای بسیار بد از تولید کننده در ذهن مانده .  مطمئن باشید که چنین تولید کننده‌ای , فروش به آن یک نفر را <span style="font-weight: bold;">برای همیشه از دست داده است</span> ( در حالت بسیار خوش بینانه ) .<br />
<br />
در دنیایی که از هر گوشه و کنار آن نرم افزاری جدید عرضه می‌شود یکی از راههای بسیار مؤثر در افزایش فروش , <span style="font-weight: bold;">ورود بدون هزینه</span> به داخل محدوده کاری کاربران می‌باشد . مطمئن باشید که هر نرم افزاری <span style="font-weight: bold;">ارزش یکبار دیدن</span> را خواهد داشت ( به شرط در میان نبودن <span style="font-weight: bold;">هزینه</span> ) . با انجام این عمل ، احتمال مورد توجه قرار گرفتن نرم افزار از سوی کاربر <span style="font-weight: bold;">افزایش</span> یافته و نمودار فروش <span style="font-weight: bold;">سیر صعودی</span> بیشتری پیدا خواهد كرد .<br />
مشتریان به طور ذاتی <span style="font-weight: bold;">دوست دارند</span> که قبل از خرید یک محصول از <span style="font-weight: bold;">کارآمد بودن</span> آن اطمینان حاصل نمایند ، خواسته‌ای منطقی كه با ارج نهادن به آن میتوان به نتایج جالب توجهی رسید .<br />
<br />
<span style="font-weight: bold;"><span style="color: #4682B4;">حالتهای زیر را در ذهنتان با یکدیگر مقایسه نمایید :</span></span><br />
<br />
<span style="color: #8B4513;"><span style="font-weight: bold;">حالت اول : </span>مشتری با پرداخت مبلغی اقدام به خرید نرم افزار می‌نماید ( با تکیه بر تبلیغات موجود بر روی بسته بندی ) پس از نصب , آن امکانات را نیافته !!! و یا نرم افزار کفایت کار را نمی‌کند . تصور می‌کنید که مشتری نسبت به محصول شما و دیگر محصولاتتان چه موضعی اتخاذ خواهد نمود . این مشتری در میان جمع , شما را چگونه توصیف خواهد کرد !؟؟؟ آیا موجب جلب مشتریان دیگری خواهد شد ؟؟؟</span><br />
<br />
به طور مثال ، خود من اقدام به خرید چند فارسی ساز ویندوز XP با ادعاهایی مبنی بر تبدیل تاریخ سیستم به هجری شمسی نمودم . چه ادعاهای پوچی . هیچ یک قادر به تبدیل تاریخ سیستم ویندوز نبودند .<br />
<br />
نتیجه کار پی بردن به ادعایی پوچ . پول به هدر رفته اینجانب و سابقه‌ای ناخوشایند از ارائه کنندگان این محصولات بود و بس . از آن به بعد پاسخ من به جویندگان اینگونه نرم افزارهایی این بوده است که : "نگرد پیدا نمیشه"<br />
<br />
جالب اینکه در برخی موارد حتی پس از خرید نیز امکان استفاده از برنامه بدون ثبت آن وجود ندارد !!!!؟! یک فروش یک طرفه و کاملاً به دور از انصاف .<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">حالت دوم : </span>مشتری پس از دریافت نرم افزار ( این نرم افزار میتواند از طرق مختلفی بدست او رسیده باشد : اینترنت , دوستان و ... ) اقدام به نصب نموده و <span style="font-weight: bold;">در صورت تمایل </span>اقدام به خرید خواهد کرد . ماحصل کار یک مشتری رضایتمند که به عنوان یک <span style="font-weight: bold;">بستر تبلیغاتی مناسب </span>نیز به شمار خواهد آمد , آشنایی مشتری با <span style="font-weight: bold;">دیگر محصولات</span> شما و <span style="font-weight: bold;">امکان خرید</span> آن محصولات نیز میتواند از دیگر مزایای این امر به شمار آید .</span><br />
<br />
این تکنیک فروش سالهاست که در کشورهای دیگر مورد استفاده قرار گرفته و <span style="color: #006400;"><span style="font-weight: bold;">نتیجه مثبت </span></span>آن نیز به اثبات رسیده است . وقت آن است که شما نیز به این جرگه بپیوندید و با ایجاد امکان تست نرم افزار به خریداران خود ثابت نمایید : <span style="font-weight: bold;">آمده‌اید که بمانید و منافع کوتاه مدت را به منافع طولانی مدت ترجیح نمی‌دهید</span><br />
همواره به یاد داشته باشید که :</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;"><div style="text-align: center;"> انسانها به طور ذاتی پاسخ خوبی را با خوبی میدهند<br />
 مدافع حقوق مشتری بودن , به واقع یعنی مدافع حقوق خود بودن</div></span></span><br />
<br />
در این میان شما را به استفاده از <a href="http://www.cpsd.ir/tkpro.html?" target="_blank"><span style="font-weight: bold;">Trial Keeper Professional</span></a> دعوت مي‌نماییم<br />
<br />
<a href="http://www.cpsd.ir/tkpro.html?" target="_blank">لينك محصول</a><br />
<br />
<div style="text-align: left;"><img src="http://cpsd.ir/MyResource/images/TK_Banner.png" border="0" alt="[تصویر:  TK_Banner.png]" /></div>]]></description>
			<content:encoded><![CDATA[:.<br />
با سلامي دوباره<br />
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">ممكن است تاكنون بارها از خود پرسيده باشيد ، چرا باید نسبت به ارائه نسخه آزمایشی محصول خود ، اقدام نمایم ؟!</span></div>
<br />
<div style="text-align: justify;">بایستی این واقعیت را پذیرفت که امروزه زندگی انسان با کامپیوتر عجین شده است تا پیامد این پیوند ، انجام کارها در زمانی بسیار سریعتر و دقتی افزونتر بوده باشد . در این راستا تشکیل گروه‌های نرم افزاری متفاوت در زیر <span style="font-weight: bold;">آرمهای تجاری</span> مختلف راه را بر کاربران هموار نموده تا در این بازار وسیع نسبت به انتخاب نمونه مورد نیاز خود اقدام نمایند و لیكن انتخاب نرم افزار نیز با توجه به <span style="font-weight: bold;">تنوع</span> موجود ، <span style="font-weight: bold;">سردرگمي</span>‌ آنان را با خود به همراه آورده است . از آن‌ سوی عرصه بر فروشندگان محصولات نیز تنگتر گردیده است .<br />
در ابتدا لازم است کاربر را به نحوی به استفاده از محصول نرم افزاری خود <span style="font-weight: bold;">ترغیب</span> نمایید . <span style="color: #FF0000;"><span style="font-weight: bold;">مجبور نمودن</span></span> کاربر به خرید نرم افزار و <span style="color: #FF0000;"><span style="font-weight: bold;">تست نمودن آن پس از خرید</span></span> , کاری بوده که بسیاری از تولید کنندگان نرم افزار ( اکثریت تولید کنندگان داخلی ) به آن متوسل شده اند . چه بسیار نرم افزارهایی که مشتری پس از خرید متوجه <span style="font-weight: bold;">ناکارآمدی</span> آنها شده و آنها را در گوشه‌ای رها نموده است . ماحصل کار نرم افزاری در گوشه‌ای افتاده و سابقه‌ای بسیار بد از تولید کننده در ذهن مانده .  مطمئن باشید که چنین تولید کننده‌ای , فروش به آن یک نفر را <span style="font-weight: bold;">برای همیشه از دست داده است</span> ( در حالت بسیار خوش بینانه ) .<br />
<br />
در دنیایی که از هر گوشه و کنار آن نرم افزاری جدید عرضه می‌شود یکی از راههای بسیار مؤثر در افزایش فروش , <span style="font-weight: bold;">ورود بدون هزینه</span> به داخل محدوده کاری کاربران می‌باشد . مطمئن باشید که هر نرم افزاری <span style="font-weight: bold;">ارزش یکبار دیدن</span> را خواهد داشت ( به شرط در میان نبودن <span style="font-weight: bold;">هزینه</span> ) . با انجام این عمل ، احتمال مورد توجه قرار گرفتن نرم افزار از سوی کاربر <span style="font-weight: bold;">افزایش</span> یافته و نمودار فروش <span style="font-weight: bold;">سیر صعودی</span> بیشتری پیدا خواهد كرد .<br />
مشتریان به طور ذاتی <span style="font-weight: bold;">دوست دارند</span> که قبل از خرید یک محصول از <span style="font-weight: bold;">کارآمد بودن</span> آن اطمینان حاصل نمایند ، خواسته‌ای منطقی كه با ارج نهادن به آن میتوان به نتایج جالب توجهی رسید .<br />
<br />
<span style="font-weight: bold;"><span style="color: #4682B4;">حالتهای زیر را در ذهنتان با یکدیگر مقایسه نمایید :</span></span><br />
<br />
<span style="color: #8B4513;"><span style="font-weight: bold;">حالت اول : </span>مشتری با پرداخت مبلغی اقدام به خرید نرم افزار می‌نماید ( با تکیه بر تبلیغات موجود بر روی بسته بندی ) پس از نصب , آن امکانات را نیافته !!! و یا نرم افزار کفایت کار را نمی‌کند . تصور می‌کنید که مشتری نسبت به محصول شما و دیگر محصولاتتان چه موضعی اتخاذ خواهد نمود . این مشتری در میان جمع , شما را چگونه توصیف خواهد کرد !؟؟؟ آیا موجب جلب مشتریان دیگری خواهد شد ؟؟؟</span><br />
<br />
به طور مثال ، خود من اقدام به خرید چند فارسی ساز ویندوز XP با ادعاهایی مبنی بر تبدیل تاریخ سیستم به هجری شمسی نمودم . چه ادعاهای پوچی . هیچ یک قادر به تبدیل تاریخ سیستم ویندوز نبودند .<br />
<br />
نتیجه کار پی بردن به ادعایی پوچ . پول به هدر رفته اینجانب و سابقه‌ای ناخوشایند از ارائه کنندگان این محصولات بود و بس . از آن به بعد پاسخ من به جویندگان اینگونه نرم افزارهایی این بوده است که : "نگرد پیدا نمیشه"<br />
<br />
جالب اینکه در برخی موارد حتی پس از خرید نیز امکان استفاده از برنامه بدون ثبت آن وجود ندارد !!!!؟! یک فروش یک طرفه و کاملاً به دور از انصاف .<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">حالت دوم : </span>مشتری پس از دریافت نرم افزار ( این نرم افزار میتواند از طرق مختلفی بدست او رسیده باشد : اینترنت , دوستان و ... ) اقدام به نصب نموده و <span style="font-weight: bold;">در صورت تمایل </span>اقدام به خرید خواهد کرد . ماحصل کار یک مشتری رضایتمند که به عنوان یک <span style="font-weight: bold;">بستر تبلیغاتی مناسب </span>نیز به شمار خواهد آمد , آشنایی مشتری با <span style="font-weight: bold;">دیگر محصولات</span> شما و <span style="font-weight: bold;">امکان خرید</span> آن محصولات نیز میتواند از دیگر مزایای این امر به شمار آید .</span><br />
<br />
این تکنیک فروش سالهاست که در کشورهای دیگر مورد استفاده قرار گرفته و <span style="color: #006400;"><span style="font-weight: bold;">نتیجه مثبت </span></span>آن نیز به اثبات رسیده است . وقت آن است که شما نیز به این جرگه بپیوندید و با ایجاد امکان تست نرم افزار به خریداران خود ثابت نمایید : <span style="font-weight: bold;">آمده‌اید که بمانید و منافع کوتاه مدت را به منافع طولانی مدت ترجیح نمی‌دهید</span><br />
همواره به یاد داشته باشید که :</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;"><div style="text-align: center;"> انسانها به طور ذاتی پاسخ خوبی را با خوبی میدهند<br />
 مدافع حقوق مشتری بودن , به واقع یعنی مدافع حقوق خود بودن</div></span></span><br />
<br />
در این میان شما را به استفاده از <a href="http://www.cpsd.ir/tkpro.html?" target="_blank"><span style="font-weight: bold;">Trial Keeper Professional</span></a> دعوت مي‌نماییم<br />
<br />
<a href="http://www.cpsd.ir/tkpro.html?" target="_blank">لينك محصول</a><br />
<br />
<div style="text-align: left;"><img src="http://cpsd.ir/MyResource/images/TK_Banner.png" border="0" alt="[تصویر:  TK_Banner.png]" /></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[جلوگیری از حذف فایل های اکسس در شبکه]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=78</link>
			<pubDate>Wed, 20 Jul 2011 18:10:43 +0430</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=78</guid>
			<description><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">یکی از مشکلات و دغدغه های برنامه نویسان اکسس , <span style="font-weight: bold;">روش جلوگیری از حذف شدن</span> فایل اکسس در یک <span style="font-weight: bold;">محیط اشتراکی و تحت شبکه </span>میباشد<br />
<br />
اعمال این محدودیتها با اتکا به<span style="font-weight: bold;"> امکانات امنیتی ویندوز </span>, تا حدود زیادی امکان پذیر میباشد , ولیکن از این نکته نباید غافل شد که جهت به کارگیری کامل این قابلیت , شما ناگزیر به استفاده از <span style="font-weight: bold;">ویندوزهای Server</span> میباشید چرا که امکانات <span style="font-weight: bold;">محدود کننده و کنترل کننده</span> در این سری از ویندوزها بیشتر از سری ویندوزهای متداولیست که کاربران عادی از آن استفاده می نمایند<br />
<br />
با توجه به اینکه در اکثر مواقع فایلهای اکسس , بین کاربران عادی موجود در سطح یک سازمان به اشتراک گذارده میشوند , به یک نمونه از پیکر بندیها بر اساس تنظیمات <span style="font-weight: bold;">Windows XP Professional</span> اشاره میشود<br />
<br />
:.<br />
<br />
بر روی فولدر مورد نظر ( فولدر حاوی بانک اطلاعاتی ) کلیک راست نموده و گزینه Sharing  and Security را انتخاب نمایید<br />
<br />
با کلیک بر روی دکمه Permissions , در صفحه باز شده ( تصویر زیر ) در لیست Group or user name اقدام به اضافه نمودن کاربرانی که مجاز به دسترسی به این فولدر هستند نمایید ( توصیه میشود در ابتدا با کلیک بر روی دکمه Remove اقدام به پاک نمودن تمام گزینه های موجود نمایید )</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/PermissionsTab.png" border="0" alt="[تصویر:  PermissionsTab.png]" /></div>
<br />
<div style="text-align: justify;">دقت نمایید جهت تمامی افراد اضافه شده به این لیست در بخش Permissions for تیک <span style="color: #FF0000;"><span style="font-weight: bold;">گزینه Full Control</span></span> از حالت انتخاب برداشته شده باشد <br />
<br />
( تنظیمات منطبق بر تصویر فوق )<br />
<br />
در قدم بعدی وارد صفحه Security شوید ( تصویر زیر )</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/SecurityTab.png" border="0" alt="[تصویر:  SecurityTab.png]" /></div>
<br />
<div style="text-align: justify;">بر روی نام کاربر مورد نظر کلیک نموده و تنظیمات را مطابق با تصویر جهت هر کاربر اعمال کنید<br />
<br />
در انتها با کلیک بر روی دکمه OK به عملیات تنظیم اشتراک پایان دهید<br />
<br />
با اعمال این تنظیمات <span style="font-weight: bold;">کاربران تعیین شده</span> قابلیت استفاده از فایل اکسس شما , <span style="font-weight: bold;">بدون امکان حذف آن فایل </span>را خواهند داشت و در صورت تلاش برای حذف با پیغامی مشابه پیغام زیر مواجه خواهند شد</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/ErrorMessage.png" border="0" alt="[تصویر:  ErrorMessage.png]" /></div>
<br />
<div style="text-align: justify;">ولی به نکات زیر توجه نمایید :<br />
<br />
ویندوزهای عمومی که مورد استفاده کاربران عادی قرار میگیرند , همچون ویندوزهای Professional , Ultimate و غیره , <span style="font-weight: bold;">از لحاط امکانات شبکه در سطحی بسیار پایین تر از ویندوزهای Server قرار دارند </span>, جهت برقراری <span style="font-weight: bold;">امنیت بیشتر</span> توصیه میشود با هماهنگی مدیران شبکه , نسبت به قرارگیری فایل بر روی سرور مرکزی , اقدام لازم به عمل آید تا از مزایا و امنیت مضاعف ویندوزهای Server نیز بهره مند شوید<br />
<br />
یکی از محدودیتهای Windows XP Professional محدودیت دسترسی همزمان 10 کاربر یه یک فولدر و به تبع آن یک فایل میباشد</div>
<br />
موفق باشید]]></description>
			<content:encoded><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">یکی از مشکلات و دغدغه های برنامه نویسان اکسس , <span style="font-weight: bold;">روش جلوگیری از حذف شدن</span> فایل اکسس در یک <span style="font-weight: bold;">محیط اشتراکی و تحت شبکه </span>میباشد<br />
<br />
اعمال این محدودیتها با اتکا به<span style="font-weight: bold;"> امکانات امنیتی ویندوز </span>, تا حدود زیادی امکان پذیر میباشد , ولیکن از این نکته نباید غافل شد که جهت به کارگیری کامل این قابلیت , شما ناگزیر به استفاده از <span style="font-weight: bold;">ویندوزهای Server</span> میباشید چرا که امکانات <span style="font-weight: bold;">محدود کننده و کنترل کننده</span> در این سری از ویندوزها بیشتر از سری ویندوزهای متداولیست که کاربران عادی از آن استفاده می نمایند<br />
<br />
با توجه به اینکه در اکثر مواقع فایلهای اکسس , بین کاربران عادی موجود در سطح یک سازمان به اشتراک گذارده میشوند , به یک نمونه از پیکر بندیها بر اساس تنظیمات <span style="font-weight: bold;">Windows XP Professional</span> اشاره میشود<br />
<br />
:.<br />
<br />
بر روی فولدر مورد نظر ( فولدر حاوی بانک اطلاعاتی ) کلیک راست نموده و گزینه Sharing  and Security را انتخاب نمایید<br />
<br />
با کلیک بر روی دکمه Permissions , در صفحه باز شده ( تصویر زیر ) در لیست Group or user name اقدام به اضافه نمودن کاربرانی که مجاز به دسترسی به این فولدر هستند نمایید ( توصیه میشود در ابتدا با کلیک بر روی دکمه Remove اقدام به پاک نمودن تمام گزینه های موجود نمایید )</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/PermissionsTab.png" border="0" alt="[تصویر:  PermissionsTab.png]" /></div>
<br />
<div style="text-align: justify;">دقت نمایید جهت تمامی افراد اضافه شده به این لیست در بخش Permissions for تیک <span style="color: #FF0000;"><span style="font-weight: bold;">گزینه Full Control</span></span> از حالت انتخاب برداشته شده باشد <br />
<br />
( تنظیمات منطبق بر تصویر فوق )<br />
<br />
در قدم بعدی وارد صفحه Security شوید ( تصویر زیر )</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/SecurityTab.png" border="0" alt="[تصویر:  SecurityTab.png]" /></div>
<br />
<div style="text-align: justify;">بر روی نام کاربر مورد نظر کلیک نموده و تنظیمات را مطابق با تصویر جهت هر کاربر اعمال کنید<br />
<br />
در انتها با کلیک بر روی دکمه OK به عملیات تنظیم اشتراک پایان دهید<br />
<br />
با اعمال این تنظیمات <span style="font-weight: bold;">کاربران تعیین شده</span> قابلیت استفاده از فایل اکسس شما , <span style="font-weight: bold;">بدون امکان حذف آن فایل </span>را خواهند داشت و در صورت تلاش برای حذف با پیغامی مشابه پیغام زیر مواجه خواهند شد</div>
<br />
<div style="text-align: left;"><img src="http://www.cpsd.ir/MyResource/images/ErrorMessage.png" border="0" alt="[تصویر:  ErrorMessage.png]" /></div>
<br />
<div style="text-align: justify;">ولی به نکات زیر توجه نمایید :<br />
<br />
ویندوزهای عمومی که مورد استفاده کاربران عادی قرار میگیرند , همچون ویندوزهای Professional , Ultimate و غیره , <span style="font-weight: bold;">از لحاط امکانات شبکه در سطحی بسیار پایین تر از ویندوزهای Server قرار دارند </span>, جهت برقراری <span style="font-weight: bold;">امنیت بیشتر</span> توصیه میشود با هماهنگی مدیران شبکه , نسبت به قرارگیری فایل بر روی سرور مرکزی , اقدام لازم به عمل آید تا از مزایا و امنیت مضاعف ویندوزهای Server نیز بهره مند شوید<br />
<br />
یکی از محدودیتهای Windows XP Professional محدودیت دسترسی همزمان 10 کاربر یه یک فولدر و به تبع آن یک فایل میباشد</div>
<br />
موفق باشید]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[اکتیو ایکس چیست ؟]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=72</link>
			<pubDate>Mon, 20 Jun 2011 21:00:02 +0430</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=72</guid>
			<description><![CDATA[<span style="font-size: small;">ضمن سلام<br />
<br />
<div style="text-align: justify;">در بخشهای متوالی اين مقاله سعي خواهد شد كه در خصوص <span style="font-weight: bold;">اكتيو ايكس</span> توضيحاتي كامل ارائه بشه تا دوستان آشنايي لازم در خصوص اين <span style="font-weight: bold;">تكنولوژي توانمند </span>رو پيدا كنند<br />
<br />
در واقع هدف این پست ارائه پاسخ در خصوص این سئوال خواهد بود که : <br />
<br />
<span style="font-weight: bold;">ActiveX چیست ؟</span><br />
<br />
<br />
<span style="font-weight: bold;">اكتيو ايكس</span> در واقع يك <span style="font-weight: bold;">تكنولوژي انقلابي</span> در تحولات نرم افزاري محسوب ميشه و با عرضه اين تكنولوژي از سوي مايكروسافت ، در واقع <span style="font-weight: bold;">تعريفي تازه در حيطه برنامه نويسي</span> ارائه شد كه منجر به <span style="font-weight: bold;">افزايش سرعت و كارايي</span> در مباحث توسعه نرم افزاري گرديد<br />
<br />
به واسطه اين <span style="font-weight: bold;">تكنولوژي</span> ، درنورديدن بسياري <span style="color: #FF0000;"><span style="font-weight: bold;">محدوديتها</span></span> ساده تر از قبل شد و در واقع اين تكنولوژي منجر به تعريف ساختاري كاملاً متفاوت و <span style="font-weight: bold;">كارآمد</span> در زمينه برنامه نويسي شده<br />
<br />
هدف از ارائه اين تكنولوژي <span style="font-weight: bold;">آماده سازي يك بستر و الگوي ارتباطي استاندارد جهت برقراي ارتباط بين نرم افزارهاي مختلف</span> هستش</div>
<br />
<div style="text-align: justify;">به طور خلاصه ، اكتيو ايكس ها <span style="font-weight: bold;">مجموعه اي از كدها و كنترلهاي از پيش نوشته / طراحي شده</span> هستند كه امكاناتي رو در اختيار برنامه نويسان توسعه دهنده قرار خواهند داد كه به واسطه اونها قادر به انجام فعاليتهايي در محيطهاي توسعه هستند ( فرضاً در داخل اكسس و يا VB به عنوان محيطهاي توسعه ) كه يا , اون <span style="font-weight: bold;">محيط توسعه به صورت استاندارد و با توجه به امكانات داخليش قادر به انجام اون كارها نيست</span> و يا اينكه انجام اون كارها به واسطه امكانات داخلي ، <span style="font-weight: bold;">بسيار زمان بر و طاقت فرساست </span>و برنامه نويس در صورت عدم استفاده از اكتيو ايكس ، مجبور هست كه زمان و انرژی زيادي رو جهت انجام اون كار صرف کنه</div>
<br />
<div style="text-align: justify;">اكتيو ايكس ها مشتمل بر دو نوع اصلي ميباشند , اين دو نوع <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>و <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span>هستند<br />
<br />
اين دو گونه ، جدا از اينكه <span style="font-weight: bold;">مرزهاي مشترك </span>وسيعي با هم دارند ولي در حالت كلي اختلافي كه به وضوح مشهود هست در اين نكته متجلي ميشه كه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> داراي يك رابط كاربري ديداري هستش و ليكن در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> بدين گونه نيست , توضيحات بيشتري در خصوص اين تفاوت در ادامه ذكر ميشه</div>
<br />
<div style="text-align: justify;">منظور از وجود رابط كاربري ديداري رو ميشه بدين گونه تفسير كرد كه تنظيمات <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> رو ، شما در پنل <span style="text-decoration: underline;">Properties</span> ميتونيد تغيير بديد و در واقع هر نوع اكتيو ايكسي كه بدين گونه ، قابليت تنظيم پارامترهاي خودش رو دراختيار برنامه نويس قرار بده الزاماً از گونه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> خواهد بود , در تصوير نمونه زير شما يك دكمه رو به نمايندگي از اين جامعه , به همراه بخشي از تنظيمات اون در پنل Properties ملاحظه مي كنيد</div>
<br />
<img src="http://www.CPSD.ir/MyResource/images/training/ActiveX_COM.png" border="0" alt="[تصویر:  ActiveX_COM.png]" /><br />
<br />
<div style="text-align: justify;">البته در بسياري موارد <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ها علاوه بر امكان اعمال تنظيمات به روش فوق ، امكان پذيرش بسياري ازتنظيمات رو از طريق كد نويسي هم در اختيار برنامه نويس قرار خواهند داد ( فصل مشترك با <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> در همین بخش قرار داره )</div>
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ها معمولاً بر روي فرم ها اضافه شده و شما قادر هستيد پس از اضافه شدن به برنامه ، اونها رو ببينيد وليكن در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> بدين گونه نيست ، <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> ها در بخش <span style="text-decoration: underline;">References</span> به برنامه اضافه شده و شما ميتونيد نام اكتيو ايكس هاي اضافه شده رو در داخل اون بخش ملاحظه كنيد ( به تصوير زير دقت كنيد )</div>
<br />
<img src="http://www.CPSD.ir/MyResource/images/training/ActiveX_Dll.png" border="0" alt="[تصویر:  ActiveX_Dll.png]" /><br />
<br />
<div style="text-align: justify;">امكان برقراري ارتباط با <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>تنها از طريق كد نويسي امكان پذير بوده و شما در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> ها شاهد يك محيط كاربري تعاملي كه به واسطه اون امكان درج تنظيمات رو بده نخواهيد بود ( بخشی همچون پنل <span style="text-decoration: underline;">Properties</span> موجود برای <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> رو نداره )</div>
<br />
<div style="text-align: justify;">به طور نمونه در خصوص <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ميتونيم به كنترلهايي همچون : دكمه ها ، چك باكسها ، ديتاگريدها و ... اشاره كرد ، همونطوري كه ملاحظه مي كنيد كليه مثالها ، اشاره به اشيايي دارند كه <span style="font-weight: bold;">قابليت ديدن</span> اونها رو داريد</div>
<br />
<div style="text-align: justify;">جهت <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> هم مي تونيم به مبدل تاريخ شمسي <a href="http://www.cpsd.ir/pdc.asp?" target="_blank"><span style="font-weight: bold;">Perian Date Converter</span></a> و يا قفل نرم افزاري <a href="http://www.cpsd.ir/tkpro.asp?" target="_blank"><span style="font-weight: bold;">Trial Keeper Professional</span></a> و نمونه هاي از همين دست اشاره كنيم</div>
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">توضيح : </span>برخي اكتيو ايكس ها هستند كه تلفيقي از هر دو گونه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> و <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>بوده و كليه مشخصات فوق رو به صورت يكجا دارا هستند ، در اين حالت اينگونه اكتيو ايكس هايي همچنان با همون عنوان <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> شناخته ميشوند</div>
<br />
<div style="text-align: justify;">شايد براي شما تعجب آور باشه , ولي بزرگترين استفاده كننده از تكنولوژي اكتيو ايكس ، همين ويندوزي هست كه در حال حاضر شما در حال استفاده از اون هستيد ، در واقع ويندوز تركيبي از مجموعه تعداد زيادي <span style="font-weight: bold;">اكتيو ايكس</span> در كنار تعداد محدودي فايل اجرايي هستش !<br />
<br />
در واقع تصور برنامه نويسي در يك <span style="font-weight: bold;">محيط رقابتي</span> ، بدون استفاده از اكتيو ايكس ها ، تصوري هست كه مدتها <span style="font-weight: bold;">پيش منسوخ شده</span><br />
<br />
شايد اين سئوال براي شما ايجاد بشه كه <span style="font-weight: bold;">مزيت استفاده از اكتيو ايكس ها</span> در چه چيزيه كه تا اين حد فراگير شده ؟!<br />
<br />
پایان بخش اول<br />
<br />
خدانگهدار</div>
</span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: small;">ضمن سلام<br />
<br />
<div style="text-align: justify;">در بخشهای متوالی اين مقاله سعي خواهد شد كه در خصوص <span style="font-weight: bold;">اكتيو ايكس</span> توضيحاتي كامل ارائه بشه تا دوستان آشنايي لازم در خصوص اين <span style="font-weight: bold;">تكنولوژي توانمند </span>رو پيدا كنند<br />
<br />
در واقع هدف این پست ارائه پاسخ در خصوص این سئوال خواهد بود که : <br />
<br />
<span style="font-weight: bold;">ActiveX چیست ؟</span><br />
<br />
<br />
<span style="font-weight: bold;">اكتيو ايكس</span> در واقع يك <span style="font-weight: bold;">تكنولوژي انقلابي</span> در تحولات نرم افزاري محسوب ميشه و با عرضه اين تكنولوژي از سوي مايكروسافت ، در واقع <span style="font-weight: bold;">تعريفي تازه در حيطه برنامه نويسي</span> ارائه شد كه منجر به <span style="font-weight: bold;">افزايش سرعت و كارايي</span> در مباحث توسعه نرم افزاري گرديد<br />
<br />
به واسطه اين <span style="font-weight: bold;">تكنولوژي</span> ، درنورديدن بسياري <span style="color: #FF0000;"><span style="font-weight: bold;">محدوديتها</span></span> ساده تر از قبل شد و در واقع اين تكنولوژي منجر به تعريف ساختاري كاملاً متفاوت و <span style="font-weight: bold;">كارآمد</span> در زمينه برنامه نويسي شده<br />
<br />
هدف از ارائه اين تكنولوژي <span style="font-weight: bold;">آماده سازي يك بستر و الگوي ارتباطي استاندارد جهت برقراي ارتباط بين نرم افزارهاي مختلف</span> هستش</div>
<br />
<div style="text-align: justify;">به طور خلاصه ، اكتيو ايكس ها <span style="font-weight: bold;">مجموعه اي از كدها و كنترلهاي از پيش نوشته / طراحي شده</span> هستند كه امكاناتي رو در اختيار برنامه نويسان توسعه دهنده قرار خواهند داد كه به واسطه اونها قادر به انجام فعاليتهايي در محيطهاي توسعه هستند ( فرضاً در داخل اكسس و يا VB به عنوان محيطهاي توسعه ) كه يا , اون <span style="font-weight: bold;">محيط توسعه به صورت استاندارد و با توجه به امكانات داخليش قادر به انجام اون كارها نيست</span> و يا اينكه انجام اون كارها به واسطه امكانات داخلي ، <span style="font-weight: bold;">بسيار زمان بر و طاقت فرساست </span>و برنامه نويس در صورت عدم استفاده از اكتيو ايكس ، مجبور هست كه زمان و انرژی زيادي رو جهت انجام اون كار صرف کنه</div>
<br />
<div style="text-align: justify;">اكتيو ايكس ها مشتمل بر دو نوع اصلي ميباشند , اين دو نوع <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>و <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span>هستند<br />
<br />
اين دو گونه ، جدا از اينكه <span style="font-weight: bold;">مرزهاي مشترك </span>وسيعي با هم دارند ولي در حالت كلي اختلافي كه به وضوح مشهود هست در اين نكته متجلي ميشه كه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> داراي يك رابط كاربري ديداري هستش و ليكن در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> بدين گونه نيست , توضيحات بيشتري در خصوص اين تفاوت در ادامه ذكر ميشه</div>
<br />
<div style="text-align: justify;">منظور از وجود رابط كاربري ديداري رو ميشه بدين گونه تفسير كرد كه تنظيمات <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> رو ، شما در پنل <span style="text-decoration: underline;">Properties</span> ميتونيد تغيير بديد و در واقع هر نوع اكتيو ايكسي كه بدين گونه ، قابليت تنظيم پارامترهاي خودش رو دراختيار برنامه نويس قرار بده الزاماً از گونه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> خواهد بود , در تصوير نمونه زير شما يك دكمه رو به نمايندگي از اين جامعه , به همراه بخشي از تنظيمات اون در پنل Properties ملاحظه مي كنيد</div>
<br />
<img src="http://www.CPSD.ir/MyResource/images/training/ActiveX_COM.png" border="0" alt="[تصویر:  ActiveX_COM.png]" /><br />
<br />
<div style="text-align: justify;">البته در بسياري موارد <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ها علاوه بر امكان اعمال تنظيمات به روش فوق ، امكان پذيرش بسياري ازتنظيمات رو از طريق كد نويسي هم در اختيار برنامه نويس قرار خواهند داد ( فصل مشترك با <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> در همین بخش قرار داره )</div>
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ها معمولاً بر روي فرم ها اضافه شده و شما قادر هستيد پس از اضافه شدن به برنامه ، اونها رو ببينيد وليكن در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> بدين گونه نيست ، <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> ها در بخش <span style="text-decoration: underline;">References</span> به برنامه اضافه شده و شما ميتونيد نام اكتيو ايكس هاي اضافه شده رو در داخل اون بخش ملاحظه كنيد ( به تصوير زير دقت كنيد )</div>
<br />
<img src="http://www.CPSD.ir/MyResource/images/training/ActiveX_Dll.png" border="0" alt="[تصویر:  ActiveX_Dll.png]" /><br />
<br />
<div style="text-align: justify;">امكان برقراري ارتباط با <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>تنها از طريق كد نويسي امكان پذير بوده و شما در <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> ها شاهد يك محيط كاربري تعاملي كه به واسطه اون امكان درج تنظيمات رو بده نخواهيد بود ( بخشی همچون پنل <span style="text-decoration: underline;">Properties</span> موجود برای <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> رو نداره )</div>
<br />
<div style="text-align: justify;">به طور نمونه در خصوص <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> ميتونيم به كنترلهايي همچون : دكمه ها ، چك باكسها ، ديتاگريدها و ... اشاره كرد ، همونطوري كه ملاحظه مي كنيد كليه مثالها ، اشاره به اشيايي دارند كه <span style="font-weight: bold;">قابليت ديدن</span> اونها رو داريد</div>
<br />
<div style="text-align: justify;">جهت <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span> هم مي تونيم به مبدل تاريخ شمسي <a href="http://www.cpsd.ir/pdc.asp?" target="_blank"><span style="font-weight: bold;">Perian Date Converter</span></a> و يا قفل نرم افزاري <a href="http://www.cpsd.ir/tkpro.asp?" target="_blank"><span style="font-weight: bold;">Trial Keeper Professional</span></a> و نمونه هاي از همين دست اشاره كنيم</div>
<br />
<div style="text-align: justify;"><span style="font-weight: bold;">توضيح : </span>برخي اكتيو ايكس ها هستند كه تلفيقي از هر دو گونه <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> و <span style="font-weight: bold;">ActiveX <span style="color: #006400;">Dll</span> </span>بوده و كليه مشخصات فوق رو به صورت يكجا دارا هستند ، در اين حالت اينگونه اكتيو ايكس هايي همچنان با همون عنوان <span style="font-weight: bold;">ActiveX <span style="color: #8B4513;">COM</span> </span> شناخته ميشوند</div>
<br />
<div style="text-align: justify;">شايد براي شما تعجب آور باشه , ولي بزرگترين استفاده كننده از تكنولوژي اكتيو ايكس ، همين ويندوزي هست كه در حال حاضر شما در حال استفاده از اون هستيد ، در واقع ويندوز تركيبي از مجموعه تعداد زيادي <span style="font-weight: bold;">اكتيو ايكس</span> در كنار تعداد محدودي فايل اجرايي هستش !<br />
<br />
در واقع تصور برنامه نويسي در يك <span style="font-weight: bold;">محيط رقابتي</span> ، بدون استفاده از اكتيو ايكس ها ، تصوري هست كه مدتها <span style="font-weight: bold;">پيش منسوخ شده</span><br />
<br />
شايد اين سئوال براي شما ايجاد بشه كه <span style="font-weight: bold;">مزيت استفاده از اكتيو ايكس ها</span> در چه چيزيه كه تا اين حد فراگير شده ؟!<br />
<br />
پایان بخش اول<br />
<br />
خدانگهدار</div>
</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[مقایسه بین قفل های سخت افزاری و نرم افزاری]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=50</link>
			<pubDate>Mon, 07 Mar 2011 22:40:00 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=50</guid>
			<description><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">در این مقاله سعی میشه مقایسه ای بین قفلهای نرم افزاری و سخت افزاری داشته باشیم<br />
در ابتدا به سراغ <span style="font-weight: bold;">قفلهای سخت افزاری</span> رفته و مشخصه های اون رو مورد کند و کاو قرار میدیم</div>
<br />
<span style="color: #800000;"><span style="font-weight: bold;">دانگل - Dongle</span></span><br />
<br />
<div style="text-align: justify;">
این نوع قفلها رو عملاً به همین عنوان میخونن . قفلهایی با قابلیت <span style="font-weight: bold;">جابجایی فیزیکی</span> هستن . یعنی کاربر با خرید نرم افزاری که مجهز به این نوع قفله عملاً میتونه نرم افزار رو بر روی<span style="font-weight: bold;"> هر دستگاهی </span>که بخواد نصب کنه که البته این امر مستلزم وجود قفله .<br />
در دو نوع <span style="font-weight: bold;">LPT</span> و <span style="font-weight: bold;">USB</span> در بازار موجوده .<br />
نوع LPT به پورت LPT وصل میشه , همون پورتی که به پورت پرینتر مشهوره . استفاده از این نوع قفل تقریباً منسوخ شده که دلایلی همچون :<br />
احتمال اختلال در عملکرد قطعاتی که از طریق پورت LPT به کامپیوتر وصل میشن . ( دستگاههایی مثل پرینتر و اسکنر )<br />
طول عمر نه چندان بالای این نوع قفلها . ( البته در صورتی که زیاد جابجاش میکنید )<br />
حذف این پورت از روی نسل جدید برخی مادربوردها .<br />
<br />
نوع USB از نظر ظاهری شبیه همون <span style="font-weight: bold;">Flash Drive</span> های موجوده .<br />
در مقام مقایسه نوع USB برتریهای غیر قابل انکاری نسبت به نمونه های LPT داره که به طور مثال میشه به موارد زیر اشاره کرد :<br />
<br />
وزن و ابعاد کوچکتر<br />
قابلیت اتصال به درگاه USB<br />
قیمت مناسبتر<br />
و در نهایت <span style="font-weight: bold;">تکنولوژی پیشرفته تر</span> در پروسه <span style="font-weight: bold;">ساخت</span> و <span style="font-weight: bold;">امنیت</span><br />
<br />
</div>
<span style="color: #006400;"><span style="font-weight: bold;">مزایای این نوع قفل :</span></span><br />
<br />
<div style="text-align: justify;">
مزیت بارزش قابل حمل بودنشه . به طوری که کاربر محدودیتی در نصب نرم افزار خریداری شده نداره . کاربر , نرم افزار مجهز به این قفل رو میتونه در صورت در دست داشتن قفل هرجا و هر زمان نصب کنه .<br />
البته این در صورتی میتونه یک <span style="font-weight: bold;">مزیت مطلق </span>به حساب بیاد که خود نرم افزار هم <span style="font-weight: bold;">ماهیت پرتابل بودن</span> رو داشته باشه , در غیر اینصورت این مزیت یک مزیت <span style="font-weight: bold;">بالقوه</span> هستش . ( منظورم توجیه کاربرد این نرم افزار به صورت پرتابل و یا همون قابل جابجا شدن هستش )<br />
مزیت دیگه این نوع قفل , ثابت بودن اونه . یعنی با اعمال<span style="font-weight: bold;"> تغییرات سخت افزاری</span> در کامپیوتر کاربر , قفل همچنان به فعالیت عادی خودش ادامه میده ( قاعدتاً )<br />
یکی دیگه از مزیتهاش هم امکان استفاده از اون در محیطهای توسعه بیشتری هستش ( منظورم تعدد زبانهای برنامه نویسی که در اونها میشه از این نوع قفل استفاده کرده ) . البته این مورد در همه قفلهای موجود به صورت ثابت نیست و به تولید کننده اون ربط داره .<br />
</div>
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">معایب :</span></span><br />
<br />
<div style="text-align: justify;">
این نوع قفل عملاً <span style="font-weight: bold;">دایره فروش</span> شما رو فوق العاده محدود میکنه . این امر از اونجا ناشی میشه که نرم افزار , <span style="font-weight: bold;">وابسته به وجود فیزیکی</span> قفله . همین امر امکان عرضه , <span style="font-weight: bold;">پیش از فروش قطعی </span>رو فوق العاده <span style="font-weight: bold;">محدود</span> میکنه ( <span style="font-weight: bold;">Try Befor Buy</span> ) .<br />
عملاً <span style="font-weight: bold;"> ارائه اینترنتی</span> نرم افزارهایی مبتنی بر این نوع قفل چندان <span style="font-weight: bold;">طرفدار</span> نداره . ( ارائه به این صورت مشکلات خاص خودش رو در این نوع قفل گذاری به دنبال داره )<br />
تصور کنید که دایره فروش چقدر کوچیک میشه , بازار فروشی به وسعت تمام دنیا ( <span style="font-weight: bold;">Web Site</span> ) و بازار فروشی به <span style="font-weight: bold;">محدودیت</span> فروشگاههایی که نرم افزار رو به اونها برای فروش دادید .<br />
<span style="font-weight: bold;">هزینه خرید </span>این نوع قفل با توجه به نوع اون متفاوته که میتونه محدوده 15000 – 3000 تومان رو در بر بگیره . عملاً شما ناچارید این هزینه رو توی <span style="font-weight: bold;">هزینه تمام شده</span> محصولتون محاسبه کنید که نتیجه اون <span style="font-weight: bold;">افزایش قیمت</span> محصوله . ( <span style="font-weight: bold;">متاسفانه</span> در ایران قیمت قویترین اهرم کاربردیه و برای 99% مشتریها در <span style="font-weight: bold;">اولویت یک</span> قرار داره )<br />
استفاده از این نوع قفل در<span style="font-weight: bold;"> نرم افزارهای ارزون قیمت </span>به عنوان توجیه نداره ( نرم افزارهایی که قصد فروش اونها رو در تیراژ بالا دارید ) .<br />
استفاده از این نوع قفل مستلزم <span style="font-weight: bold;">خواب سرمایه</span> شماست . چرا که در صورت ارائه نرم افزارتون در قالب بسته بندی شده باید منتظر <span style="font-weight: bold;">برگشت پول</span> بمونید ( نرم افزار معلوم نیست چه مدت توی مغازه در انتظار فروش میمونه )<br />
<br />
در صورت سوختن قفل شما نیاز به ارائه مجدد اون دارید ( در اینجور مواقعی که میدونید مشتری هزار و یک برهان میاره تا سوخته شدن رو به گردن نگیره و شما خودتون متحمل هزینه های اون بشید )<br />
در مجموع در پروژه های ارزون قیمت به هیچ عنوان ارزش بحث و بررسی ندارن .<br />
<br />
در خصوص <span style="font-weight: bold;">امنیت قفلهای سخت افزاری</span> باید بگم که تفاوت چندانی با قفل های نرم افزاری ندارن . مشکل اتصال و بازرسی در داخل خود نرم افزار همچنان پابرجاست .<br />
<br />
به طور کلی فقط به ابن نکته اشاره میکنم که بزرگترین ضعف کلیه قفلها در <span style="font-weight: bold;">نقاط اتصالی بین نرم افزار و قفل </span>هستش , یعنی همون جاهایی که عملاً نرم افزار اقدام به تبادل اطلاعات با قفل میکنه .<br />
<br />
در تاپیک بعد به قفل های نرم افزاری اشاره ای خواهم داشت</div>
<br />
موفق باشید]]></description>
			<content:encoded><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">در این مقاله سعی میشه مقایسه ای بین قفلهای نرم افزاری و سخت افزاری داشته باشیم<br />
در ابتدا به سراغ <span style="font-weight: bold;">قفلهای سخت افزاری</span> رفته و مشخصه های اون رو مورد کند و کاو قرار میدیم</div>
<br />
<span style="color: #800000;"><span style="font-weight: bold;">دانگل - Dongle</span></span><br />
<br />
<div style="text-align: justify;">
این نوع قفلها رو عملاً به همین عنوان میخونن . قفلهایی با قابلیت <span style="font-weight: bold;">جابجایی فیزیکی</span> هستن . یعنی کاربر با خرید نرم افزاری که مجهز به این نوع قفله عملاً میتونه نرم افزار رو بر روی<span style="font-weight: bold;"> هر دستگاهی </span>که بخواد نصب کنه که البته این امر مستلزم وجود قفله .<br />
در دو نوع <span style="font-weight: bold;">LPT</span> و <span style="font-weight: bold;">USB</span> در بازار موجوده .<br />
نوع LPT به پورت LPT وصل میشه , همون پورتی که به پورت پرینتر مشهوره . استفاده از این نوع قفل تقریباً منسوخ شده که دلایلی همچون :<br />
احتمال اختلال در عملکرد قطعاتی که از طریق پورت LPT به کامپیوتر وصل میشن . ( دستگاههایی مثل پرینتر و اسکنر )<br />
طول عمر نه چندان بالای این نوع قفلها . ( البته در صورتی که زیاد جابجاش میکنید )<br />
حذف این پورت از روی نسل جدید برخی مادربوردها .<br />
<br />
نوع USB از نظر ظاهری شبیه همون <span style="font-weight: bold;">Flash Drive</span> های موجوده .<br />
در مقام مقایسه نوع USB برتریهای غیر قابل انکاری نسبت به نمونه های LPT داره که به طور مثال میشه به موارد زیر اشاره کرد :<br />
<br />
وزن و ابعاد کوچکتر<br />
قابلیت اتصال به درگاه USB<br />
قیمت مناسبتر<br />
و در نهایت <span style="font-weight: bold;">تکنولوژی پیشرفته تر</span> در پروسه <span style="font-weight: bold;">ساخت</span> و <span style="font-weight: bold;">امنیت</span><br />
<br />
</div>
<span style="color: #006400;"><span style="font-weight: bold;">مزایای این نوع قفل :</span></span><br />
<br />
<div style="text-align: justify;">
مزیت بارزش قابل حمل بودنشه . به طوری که کاربر محدودیتی در نصب نرم افزار خریداری شده نداره . کاربر , نرم افزار مجهز به این قفل رو میتونه در صورت در دست داشتن قفل هرجا و هر زمان نصب کنه .<br />
البته این در صورتی میتونه یک <span style="font-weight: bold;">مزیت مطلق </span>به حساب بیاد که خود نرم افزار هم <span style="font-weight: bold;">ماهیت پرتابل بودن</span> رو داشته باشه , در غیر اینصورت این مزیت یک مزیت <span style="font-weight: bold;">بالقوه</span> هستش . ( منظورم توجیه کاربرد این نرم افزار به صورت پرتابل و یا همون قابل جابجا شدن هستش )<br />
مزیت دیگه این نوع قفل , ثابت بودن اونه . یعنی با اعمال<span style="font-weight: bold;"> تغییرات سخت افزاری</span> در کامپیوتر کاربر , قفل همچنان به فعالیت عادی خودش ادامه میده ( قاعدتاً )<br />
یکی دیگه از مزیتهاش هم امکان استفاده از اون در محیطهای توسعه بیشتری هستش ( منظورم تعدد زبانهای برنامه نویسی که در اونها میشه از این نوع قفل استفاده کرده ) . البته این مورد در همه قفلهای موجود به صورت ثابت نیست و به تولید کننده اون ربط داره .<br />
</div>
<br />
<span style="color: #FF0000;"><span style="font-weight: bold;">معایب :</span></span><br />
<br />
<div style="text-align: justify;">
این نوع قفل عملاً <span style="font-weight: bold;">دایره فروش</span> شما رو فوق العاده محدود میکنه . این امر از اونجا ناشی میشه که نرم افزار , <span style="font-weight: bold;">وابسته به وجود فیزیکی</span> قفله . همین امر امکان عرضه , <span style="font-weight: bold;">پیش از فروش قطعی </span>رو فوق العاده <span style="font-weight: bold;">محدود</span> میکنه ( <span style="font-weight: bold;">Try Befor Buy</span> ) .<br />
عملاً <span style="font-weight: bold;"> ارائه اینترنتی</span> نرم افزارهایی مبتنی بر این نوع قفل چندان <span style="font-weight: bold;">طرفدار</span> نداره . ( ارائه به این صورت مشکلات خاص خودش رو در این نوع قفل گذاری به دنبال داره )<br />
تصور کنید که دایره فروش چقدر کوچیک میشه , بازار فروشی به وسعت تمام دنیا ( <span style="font-weight: bold;">Web Site</span> ) و بازار فروشی به <span style="font-weight: bold;">محدودیت</span> فروشگاههایی که نرم افزار رو به اونها برای فروش دادید .<br />
<span style="font-weight: bold;">هزینه خرید </span>این نوع قفل با توجه به نوع اون متفاوته که میتونه محدوده 15000 – 3000 تومان رو در بر بگیره . عملاً شما ناچارید این هزینه رو توی <span style="font-weight: bold;">هزینه تمام شده</span> محصولتون محاسبه کنید که نتیجه اون <span style="font-weight: bold;">افزایش قیمت</span> محصوله . ( <span style="font-weight: bold;">متاسفانه</span> در ایران قیمت قویترین اهرم کاربردیه و برای 99% مشتریها در <span style="font-weight: bold;">اولویت یک</span> قرار داره )<br />
استفاده از این نوع قفل در<span style="font-weight: bold;"> نرم افزارهای ارزون قیمت </span>به عنوان توجیه نداره ( نرم افزارهایی که قصد فروش اونها رو در تیراژ بالا دارید ) .<br />
استفاده از این نوع قفل مستلزم <span style="font-weight: bold;">خواب سرمایه</span> شماست . چرا که در صورت ارائه نرم افزارتون در قالب بسته بندی شده باید منتظر <span style="font-weight: bold;">برگشت پول</span> بمونید ( نرم افزار معلوم نیست چه مدت توی مغازه در انتظار فروش میمونه )<br />
<br />
در صورت سوختن قفل شما نیاز به ارائه مجدد اون دارید ( در اینجور مواقعی که میدونید مشتری هزار و یک برهان میاره تا سوخته شدن رو به گردن نگیره و شما خودتون متحمل هزینه های اون بشید )<br />
در مجموع در پروژه های ارزون قیمت به هیچ عنوان ارزش بحث و بررسی ندارن .<br />
<br />
در خصوص <span style="font-weight: bold;">امنیت قفلهای سخت افزاری</span> باید بگم که تفاوت چندانی با قفل های نرم افزاری ندارن . مشکل اتصال و بازرسی در داخل خود نرم افزار همچنان پابرجاست .<br />
<br />
به طور کلی فقط به ابن نکته اشاره میکنم که بزرگترین ضعف کلیه قفلها در <span style="font-weight: bold;">نقاط اتصالی بین نرم افزار و قفل </span>هستش , یعنی همون جاهایی که عملاً نرم افزار اقدام به تبادل اطلاعات با قفل میکنه .<br />
<br />
در تاپیک بعد به قفل های نرم افزاری اشاره ای خواهم داشت</div>
<br />
موفق باشید]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[چگونه یک دیتابیس کارآمد داشته باشیم]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=49</link>
			<pubDate>Mon, 07 Mar 2011 21:47:34 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=49</guid>
			<description><![CDATA[<div style="text-align: justify;">سلام <br />
<br />
بحث <span style="font-weight: bold;">Optmization</span> یکی از بخشهایی است که متاسفانه اغلب کاربران به سادگی از کنار آن میگذرند<br />
<br />
در دنیایی که بسیاری صنایع تمام تلاش خود را به کار میگیرند تا ثانیه ای بر رقیب خود پیشی بگیرند , نادیده گرفتن این امر تنها میتواند ناشی از عدم شناخت بازار از سوی طراح باشد و بس .<br />
<br />
یک واقعیت وجود دارد که بسیاری از نرم افزارها غالباً تغییر در ورژن برنامه را تا حدود زیادی در بخش بهینه سازیها و افزایش کارایی اعمال میکنند تا اضافه نمودن امکانات جدید , به طور مثال در نرم افزار 3ds max یک واقعیت در آن جاریست , به طور تقریبی از نسخه 7 به بعد امکانات ظاهر شده و تنوع آنها در حد و اندازه های جهش در ورژن نبوده و این تغییر نسخه ها بیشتر با رویکردی به بهینه سازی و کارایی صورت گرفته اند . ( امکانات جدیدی وجود نداشت که اضافه شود ! )<br />
<br />
در این مقاله به مرور تلاش خواهد شد به برخی نکاتی که جهت افزایش سرعت و کارایی میتوان از آنها بهره برد اشاره شود .</div>
..................................................<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">غير فعال كردن AutoCorrect </span></span><br />
<br />
<div style="text-align: justify;">ابن گزينه در واقع به عنوان تنظيمي به جهت ياري رساندن به كاربر در هنگام تغيير نام آبجكتها در نظر گرفته شده ، تا تغييرات در نقاط ديگر نيز به صورت خودكار اعمال گردد . گو اينكه اين گزينه همچنان در بسياري موارد عدم كارايي خود را به نمايش ميگذارد و توصيه ميكنم ، حتي در حين طراحي نيز اقدام به غير فعال نمودن آن نموده و عطايش را به لقاي ژنده اش ببخشيد !<br />
<br />
اين گزينه جداي از مفيد و يا غير مفيد بودنش در هنگام تحويل پروژه در حالت غير فعال قرار گيرد .</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Compact and Repair</span></span><br />
<br />
<div style="text-align: justify;">انجام اين عمليات به صورت دوره اي ، ميتواند به طور كامل موجب بهينه سازي عملكرد بانك اطلاعاتي شود ، فعال بودن اين گزينه موجب تاخير در هنگام بسته شدن بانك اطلاعاتي مي شود .<br />
<br />
در واقع گزينه Compact بيشترين كار خود را از طريق <span style="font-weight: bold;">كاهش حجم فايل</span> و به تبع آن <span style="font-weight: bold;">كاهش زمان دسترسي</span> به فايل موجود بر روي هارد ديسك به انجام ميرساند ، كه اين اختلاف حجم خصوصاً در بانكهاي اطلاعاتي با حجم <span style="font-weight: bold;">بالا</span> نمود بيشتري پيدا ميكند .<br />
<br />
پديده افزايش حجم , در واقع يك پديده درون ساختاري اكسس است كه با <span style="font-weight: bold;">حذف</span> و <span style="font-weight: bold;">ضبط</span> اطلاعات و اعمال <span style="font-weight: bold;">تغيير</span> در آنها به وقوع مي پيوندد . در اين فرآيند اطلاعاتي زائد به وجود مي آيد و در واقع در اين حالت فايل اكسس دچار افزايش حجمي <span style="font-weight: bold;">كاذب</span> ميشود كه الزاماً نه ناشي از ورود اطلاعات بلكه ناشي از پديده ای ذاتی از سوی اکسس ميباشد .<br />
<br />
پس از عمليات حذف اطلاعات به همان اندازه افزايش حجم ناشي از افزودن اطلاعات ، از حجم فايل كم نخواهد شد . عمليات Compact ميتواند اين نقیصه را مرتفع نمايد .<br />
<br />
<span style="font-weight: bold;">توضيح :</span> با ذخيره سازي بانك اطلاعاتي در حالت Encrypt شده ، عملاً فايل قابليت Compact شدن را به صورت ظاهري نخواهد داشت ( كاهش حجمي را ملاحظه نخواهيد كرد )<br />
<br />
<span style="font-weight: bold;">پي نوشت : </span>به طور كلي الگوريتمهاي فشرده سازي قادر به كاهش حجم فايلهاي رمز نگاري شده نيستند و يا حتي در صورت كاهش ، اين حجم چشمگير نيست .<br />
<br />
امید بود اكسس قابليت Repair را نیز به صورت منفرد داشت ، اين گزينه بسيار كاربردي تر و حياتي تر از Compact بوده و مشحص نيست كه چرا مايكروسافت اين دو را از قالب يك عمليات يكپارچه خارج ننموده است .<br />
<br />
در واقع اكسس و ساختار آن به گونه اي است كه در حين كار اين احتمال وجود دارد كه دچار خطاهايي درون ساختاري شود كه در گذر زمان و به مرور مشكل ساز شوند ، عمليات Repair ميتواند بسياري از اين مشكلات جزئي را قبل از اينكه به يك مشكل جدي تبديل شوند پوشش دهد .</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Analyze Performance</span></span><br />
<br />
<div style="text-align: justify;">اين ابزار داخلي ميتواند <span style="font-weight: bold;">پيشنهاداتي جهت عملكرد بالاتر</span> بانك اطلاعاتي ارائه نمايد و برخي مشكلات ساختاري را مرتفع كند وليكن در ادامه ذكر يك نكته الزاميست :<br />
<br />
در برخي مواقع پيشنهادات ارائه شده از سوي این ابزار , منطبق با فكر و ذهن برنامه نويس نيست ، از اين رو تمامي توصيه هاي اين ابزار را <span style="font-weight: bold;">به عنوان يك راه حل قطعي فرض ننماييد </span>، خصوصاً در بخش<span style="font-weight: bold;"> ارتباطات بين جدولي </span>بايد به پيشنهادات ارائه شده از سوي اكسس با دقت بيشتري عمل نماييد .<br />
<br />
در مواقعی برنامه نويس به دلايلي خاص نياز ندارد كه بين برخي جداول ارتباطاتي منطقي را برقرار نمايد ، وليكن اكسس اين امر را ناديده نمي گيرد ، و آن را در ليست پيشنهادي خود لحاظ خواهد كرد .<br />
<br />
بهبود عملكرد <span style="font-weight: bold;">جداول</span> به خودي خود منجر به افزايش عملكرد <span style="font-weight: bold;">پرس و جوها </span>نيز خواهد شد .<br />
<br />
در ديگر بخشها و آبجكتها ، خوشبختانه اين ابزار ميتواند پيشنهاداتي مثمر ثمر را ارائه كند .<br />
<br />
در برخي مواقع حتي اين امكان ميتواند منجر به <span style="font-weight: bold;">بازساري نسبي</span> يك فايل معيوب نيز گردد .<br />
<br />
در حين فرآيند طراحي به صورت چندين باره از اين امكان استفاده نماييد و تا حد امكان به توصيه هاي آن عمل كنيد .</div>
<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">الگوی طراحی Front End / Back End</span></span><br />
<br />
<div style="text-align: justify;">در واقع اين اصلاح به بانكهايي اطلاق ميشود كه در آن , اطلاعات ( جداول – Back End ) از ديگر آبجكتها جدا بوده و مابقي آبجكتها در فايلي ديگر نگهداري ميشوند ( پرس و جوها ، فرمها و ... – Front End )<br />
<br />
طراحي بانك اطلاعاتي بدين روش منجر به <span style="font-weight: bold;">كاهش ذاتي بخشي از كارايي</span> خواهد شد ، كه با اتكا به توصيه هاي موجود ميتوانيد بخش اعظمي از اين كاهش كارايي ( سرعت ) را پوشش دهيد . امتيازاتي در اين فرآيند به دست خواهيد آورد ، به گونه اي كه وزنه اين نوع سبك طراحي را سنگين خواهد نمود .<br />
<br />
طراحي بانك اطلاعاتي بدين روش منجر به :<br />
<br />
افزايش ايمني اطلاعات<br />
<br />
بهبود بسيار زياد در فرآيند ارتقاء نرم افزار<br />
<br />
و پيروي از قواعد استاندارد تر طراحي در محيطهاي چند كاربره خواهد شد<br />
<br />
استفاده از اين روش در الگوهاي كاري Client/Server الزاميست و در واقع اكسس انتخابي ديگر را در اختيار شما نخواهد گذاشت<br />
<br />
نكته قابل ذكر جهت اولين قدم در مرتفع نمودن مشكلات ذاتي اين روش اين است كه تنها اقدام به Link نمودن جداولي در داخل Front End نماييد كه به صورت مشترك بين كاربران مورد استفاده قرار ميگيرند . جداولي كه حاوي اطلاعاتي منحصر به يك كاربر ميباشند را در بخش Front End قرار دهيد<br />
<br />
گاهاً جداولي ميان كاربردي طراحي ميشوند كه نقش آنها تنها نگهداري موقتي اطلاعات در طي انجام يك پروسه ميباشد ، اين جداول تا حد امكان در سوي Front End قرار گيرند . ( به طور مثال ممكن است اطلاعاتي خاص به جدولي موقتي Append شوند وپس از اتمام عمليات اطلاعات جدول نيز حذف شود )</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Progress Bar</span></span><br />
<br />
<div style="text-align: justify;">اين نكته بيشتر نقش يك <span style="font-weight: bold;">ترفند رواني </span>را خواهد داشت تا يك بهينه سازي واقعي و برگرفته از مسائل روانشناسي است تا برنامه نويسي .<br />
<br />
مغر انسان به گونه اي است كه هنگامي كه از پايان يك عمليات به طور تقريبي مطلع بوده و ميزان عمليات انجام شده را نيز مشاهده كند ، بسيار منطقي تر ! عمل نموده و آستانه تحملش بالاتر خواهد رفت ( به طور مثال به ايده وجود تايمر در كنار چراغهاي راهنمايي توجه كنيد ، زمان ، تغييري با حالتي كه تايمر وجود نداشته ، نكرده است وليكن گذر زمان آسان تر شده است )<br />
<br />
بسياري طراحان اقدام به مخفي نمودن بخش Status Bar مي نمايند ، Progress Bar در واقع در داخل اين بخش گنجانده شده است ، Progress Bar در بسياري عمليات به نمايش در مي آيد ( همچون اجراي يك پرس و جو و ... )<br />
<br />
كاربر هنگامي كه بازخوردی از سوي برنامه ، مبني بر اجراي دستور مورد نظرش داشته باشد ( نمایش Progress Bar ) ، تحمل گذر اين زمان براي او ساده تر بوده و در واقع برنامه از ديد او ، درخواستش را سريعتر به انجام ميرساند !<br />
<br />
موفق باشید</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">سلام <br />
<br />
بحث <span style="font-weight: bold;">Optmization</span> یکی از بخشهایی است که متاسفانه اغلب کاربران به سادگی از کنار آن میگذرند<br />
<br />
در دنیایی که بسیاری صنایع تمام تلاش خود را به کار میگیرند تا ثانیه ای بر رقیب خود پیشی بگیرند , نادیده گرفتن این امر تنها میتواند ناشی از عدم شناخت بازار از سوی طراح باشد و بس .<br />
<br />
یک واقعیت وجود دارد که بسیاری از نرم افزارها غالباً تغییر در ورژن برنامه را تا حدود زیادی در بخش بهینه سازیها و افزایش کارایی اعمال میکنند تا اضافه نمودن امکانات جدید , به طور مثال در نرم افزار 3ds max یک واقعیت در آن جاریست , به طور تقریبی از نسخه 7 به بعد امکانات ظاهر شده و تنوع آنها در حد و اندازه های جهش در ورژن نبوده و این تغییر نسخه ها بیشتر با رویکردی به بهینه سازی و کارایی صورت گرفته اند . ( امکانات جدیدی وجود نداشت که اضافه شود ! )<br />
<br />
در این مقاله به مرور تلاش خواهد شد به برخی نکاتی که جهت افزایش سرعت و کارایی میتوان از آنها بهره برد اشاره شود .</div>
..................................................<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">غير فعال كردن AutoCorrect </span></span><br />
<br />
<div style="text-align: justify;">ابن گزينه در واقع به عنوان تنظيمي به جهت ياري رساندن به كاربر در هنگام تغيير نام آبجكتها در نظر گرفته شده ، تا تغييرات در نقاط ديگر نيز به صورت خودكار اعمال گردد . گو اينكه اين گزينه همچنان در بسياري موارد عدم كارايي خود را به نمايش ميگذارد و توصيه ميكنم ، حتي در حين طراحي نيز اقدام به غير فعال نمودن آن نموده و عطايش را به لقاي ژنده اش ببخشيد !<br />
<br />
اين گزينه جداي از مفيد و يا غير مفيد بودنش در هنگام تحويل پروژه در حالت غير فعال قرار گيرد .</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Compact and Repair</span></span><br />
<br />
<div style="text-align: justify;">انجام اين عمليات به صورت دوره اي ، ميتواند به طور كامل موجب بهينه سازي عملكرد بانك اطلاعاتي شود ، فعال بودن اين گزينه موجب تاخير در هنگام بسته شدن بانك اطلاعاتي مي شود .<br />
<br />
در واقع گزينه Compact بيشترين كار خود را از طريق <span style="font-weight: bold;">كاهش حجم فايل</span> و به تبع آن <span style="font-weight: bold;">كاهش زمان دسترسي</span> به فايل موجود بر روي هارد ديسك به انجام ميرساند ، كه اين اختلاف حجم خصوصاً در بانكهاي اطلاعاتي با حجم <span style="font-weight: bold;">بالا</span> نمود بيشتري پيدا ميكند .<br />
<br />
پديده افزايش حجم , در واقع يك پديده درون ساختاري اكسس است كه با <span style="font-weight: bold;">حذف</span> و <span style="font-weight: bold;">ضبط</span> اطلاعات و اعمال <span style="font-weight: bold;">تغيير</span> در آنها به وقوع مي پيوندد . در اين فرآيند اطلاعاتي زائد به وجود مي آيد و در واقع در اين حالت فايل اكسس دچار افزايش حجمي <span style="font-weight: bold;">كاذب</span> ميشود كه الزاماً نه ناشي از ورود اطلاعات بلكه ناشي از پديده ای ذاتی از سوی اکسس ميباشد .<br />
<br />
پس از عمليات حذف اطلاعات به همان اندازه افزايش حجم ناشي از افزودن اطلاعات ، از حجم فايل كم نخواهد شد . عمليات Compact ميتواند اين نقیصه را مرتفع نمايد .<br />
<br />
<span style="font-weight: bold;">توضيح :</span> با ذخيره سازي بانك اطلاعاتي در حالت Encrypt شده ، عملاً فايل قابليت Compact شدن را به صورت ظاهري نخواهد داشت ( كاهش حجمي را ملاحظه نخواهيد كرد )<br />
<br />
<span style="font-weight: bold;">پي نوشت : </span>به طور كلي الگوريتمهاي فشرده سازي قادر به كاهش حجم فايلهاي رمز نگاري شده نيستند و يا حتي در صورت كاهش ، اين حجم چشمگير نيست .<br />
<br />
امید بود اكسس قابليت Repair را نیز به صورت منفرد داشت ، اين گزينه بسيار كاربردي تر و حياتي تر از Compact بوده و مشحص نيست كه چرا مايكروسافت اين دو را از قالب يك عمليات يكپارچه خارج ننموده است .<br />
<br />
در واقع اكسس و ساختار آن به گونه اي است كه در حين كار اين احتمال وجود دارد كه دچار خطاهايي درون ساختاري شود كه در گذر زمان و به مرور مشكل ساز شوند ، عمليات Repair ميتواند بسياري از اين مشكلات جزئي را قبل از اينكه به يك مشكل جدي تبديل شوند پوشش دهد .</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Analyze Performance</span></span><br />
<br />
<div style="text-align: justify;">اين ابزار داخلي ميتواند <span style="font-weight: bold;">پيشنهاداتي جهت عملكرد بالاتر</span> بانك اطلاعاتي ارائه نمايد و برخي مشكلات ساختاري را مرتفع كند وليكن در ادامه ذكر يك نكته الزاميست :<br />
<br />
در برخي مواقع پيشنهادات ارائه شده از سوي این ابزار , منطبق با فكر و ذهن برنامه نويس نيست ، از اين رو تمامي توصيه هاي اين ابزار را <span style="font-weight: bold;">به عنوان يك راه حل قطعي فرض ننماييد </span>، خصوصاً در بخش<span style="font-weight: bold;"> ارتباطات بين جدولي </span>بايد به پيشنهادات ارائه شده از سوي اكسس با دقت بيشتري عمل نماييد .<br />
<br />
در مواقعی برنامه نويس به دلايلي خاص نياز ندارد كه بين برخي جداول ارتباطاتي منطقي را برقرار نمايد ، وليكن اكسس اين امر را ناديده نمي گيرد ، و آن را در ليست پيشنهادي خود لحاظ خواهد كرد .<br />
<br />
بهبود عملكرد <span style="font-weight: bold;">جداول</span> به خودي خود منجر به افزايش عملكرد <span style="font-weight: bold;">پرس و جوها </span>نيز خواهد شد .<br />
<br />
در ديگر بخشها و آبجكتها ، خوشبختانه اين ابزار ميتواند پيشنهاداتي مثمر ثمر را ارائه كند .<br />
<br />
در برخي مواقع حتي اين امكان ميتواند منجر به <span style="font-weight: bold;">بازساري نسبي</span> يك فايل معيوب نيز گردد .<br />
<br />
در حين فرآيند طراحي به صورت چندين باره از اين امكان استفاده نماييد و تا حد امكان به توصيه هاي آن عمل كنيد .</div>
<br />
<br />
<span style="color: #006400;"><span style="font-weight: bold;">الگوی طراحی Front End / Back End</span></span><br />
<br />
<div style="text-align: justify;">در واقع اين اصلاح به بانكهايي اطلاق ميشود كه در آن , اطلاعات ( جداول – Back End ) از ديگر آبجكتها جدا بوده و مابقي آبجكتها در فايلي ديگر نگهداري ميشوند ( پرس و جوها ، فرمها و ... – Front End )<br />
<br />
طراحي بانك اطلاعاتي بدين روش منجر به <span style="font-weight: bold;">كاهش ذاتي بخشي از كارايي</span> خواهد شد ، كه با اتكا به توصيه هاي موجود ميتوانيد بخش اعظمي از اين كاهش كارايي ( سرعت ) را پوشش دهيد . امتيازاتي در اين فرآيند به دست خواهيد آورد ، به گونه اي كه وزنه اين نوع سبك طراحي را سنگين خواهد نمود .<br />
<br />
طراحي بانك اطلاعاتي بدين روش منجر به :<br />
<br />
افزايش ايمني اطلاعات<br />
<br />
بهبود بسيار زياد در فرآيند ارتقاء نرم افزار<br />
<br />
و پيروي از قواعد استاندارد تر طراحي در محيطهاي چند كاربره خواهد شد<br />
<br />
استفاده از اين روش در الگوهاي كاري Client/Server الزاميست و در واقع اكسس انتخابي ديگر را در اختيار شما نخواهد گذاشت<br />
<br />
نكته قابل ذكر جهت اولين قدم در مرتفع نمودن مشكلات ذاتي اين روش اين است كه تنها اقدام به Link نمودن جداولي در داخل Front End نماييد كه به صورت مشترك بين كاربران مورد استفاده قرار ميگيرند . جداولي كه حاوي اطلاعاتي منحصر به يك كاربر ميباشند را در بخش Front End قرار دهيد<br />
<br />
گاهاً جداولي ميان كاربردي طراحي ميشوند كه نقش آنها تنها نگهداري موقتي اطلاعات در طي انجام يك پروسه ميباشد ، اين جداول تا حد امكان در سوي Front End قرار گيرند . ( به طور مثال ممكن است اطلاعاتي خاص به جدولي موقتي Append شوند وپس از اتمام عمليات اطلاعات جدول نيز حذف شود )</div>
<br />
<span style="color: #006400;"><span style="font-weight: bold;">Progress Bar</span></span><br />
<br />
<div style="text-align: justify;">اين نكته بيشتر نقش يك <span style="font-weight: bold;">ترفند رواني </span>را خواهد داشت تا يك بهينه سازي واقعي و برگرفته از مسائل روانشناسي است تا برنامه نويسي .<br />
<br />
مغر انسان به گونه اي است كه هنگامي كه از پايان يك عمليات به طور تقريبي مطلع بوده و ميزان عمليات انجام شده را نيز مشاهده كند ، بسيار منطقي تر ! عمل نموده و آستانه تحملش بالاتر خواهد رفت ( به طور مثال به ايده وجود تايمر در كنار چراغهاي راهنمايي توجه كنيد ، زمان ، تغييري با حالتي كه تايمر وجود نداشته ، نكرده است وليكن گذر زمان آسان تر شده است )<br />
<br />
بسياري طراحان اقدام به مخفي نمودن بخش Status Bar مي نمايند ، Progress Bar در واقع در داخل اين بخش گنجانده شده است ، Progress Bar در بسياري عمليات به نمايش در مي آيد ( همچون اجراي يك پرس و جو و ... )<br />
<br />
كاربر هنگامي كه بازخوردی از سوي برنامه ، مبني بر اجراي دستور مورد نظرش داشته باشد ( نمایش Progress Bar ) ، تحمل گذر اين زمان براي او ساده تر بوده و در واقع برنامه از ديد او ، درخواستش را سريعتر به انجام ميرساند !<br />
<br />
موفق باشید</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نکاتی در خصوص دریافت ورودی]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=48</link>
			<pubDate>Thu, 24 Feb 2011 22:14:47 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=48</guid>
			<description><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">نکته ای که در برخی موارد از دید برنامه نویسان پنهان میمونه , دریافت اطلاعات از ورودی کنترل در حالت تایپ نمودن میباشد<br />
عملیات خواندن اطلاعات از داخل Textbox دارای یک ابهام جزئی میباشد که در ادامه اقدام به توضیحی در این خصوص و با توجه به دو حالت متفاوت می نمایم</div>
<br />
<div style="text-align: justify;">در هنگامی که فوکوس همچنان بر روی کنترل Textbox قرار دارد و کاربر در حال تایپ و تکمیل اطلاعات ورودی میباشد , در واقع از دید برنامه نویسی این اطلاعات در حکم اطلاعاتی تثبیت شده نیستند<br />
از دید برنامه نویسی اطلاعات را به دو بخش جزئی تقسیم میکنیم<br />
<br />
اطلاعات تایید شده و تثبیت شده و اطلاعات تثبیت نشده<br />
<br />
در حالتی که کاربر در حال تایپ اطلاعات میباشد , در واقع اطلاعات به صورت تثبیت نشده بوده و شاید بتوان بدین گونه تفسیر نمود که از دید برنامه , همچنان اطلاعاتی جهت بررسی وجود ندارد<br />
بر همین اساس و با همین تفسیر در صورتی که قبل از ورود اطلاعات در داخل Textbox اطلاعاتی موجود بوده باشد و کاربر اقدام به تاپی نمودن اطلاعاتی جدید نماید , تا قبل از تکمیل پروسه تثبت , از دید برنامه Textbox همچنان حاوی همان اطلاعات قبلی است<br />
<br />
به دستورات زیر توجه نمایید :</div>
<br />
<br />
<div style="text-align: left;"><div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub txtEntery_Change()<br />
&nbsp;&nbsp;&nbsp;&nbsp;txtReflexA = txtEntery<br />
&nbsp;&nbsp;&nbsp;&nbsp;txtReflexB = txtEntery.Text<br />
End Sub</code></div></div>
</div>
<br />
<br />
<div style="text-align: justify;">دستور txtReflexA = txtEntery اقدام به خواندن اطلاعات همزمان با تایپ نمودن آن نخواهد نمود , چرا که در حال حاضر اطلاعات به صورت تثبیت شده نیستند و تنها قادر به باز گرداندن اطلاعاتی میباشد که از قبل به صورت تثبیت شده درآمده اند<br />
<br />
ولیکن دستور txtReflexB = txtEntery.Text با توجه به استفاده از مشخصه Text  قادر است همزمان با تایپ نمودن اطلاعات اقدام به خواندن اطلاعات نماید</div>
<br />
توضیح : دو ذستور زیر معادل یکدیگر میباشند :<br />
<br />
 <div style="text-align: left;">txtEntery.Value<br />
txtEntery</div>
<br />
<div style="text-align: justify;">جهت درک نمودن بهتر موضوع به مثال موجود توجه نمایید<br />
در ابتدا اقدام به درج یک متن نموده و سپس مجدداً اقدام به تغییر همان متن نموده و نتیجه را ملاحظه فرمایید</div>
<br />
موفق باشید<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=11" target="_blank">Commited Text.zip</a> (اندازه:  11.96 KB / تعداد دفعات دریافت:  47)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">نکته ای که در برخی موارد از دید برنامه نویسان پنهان میمونه , دریافت اطلاعات از ورودی کنترل در حالت تایپ نمودن میباشد<br />
عملیات خواندن اطلاعات از داخل Textbox دارای یک ابهام جزئی میباشد که در ادامه اقدام به توضیحی در این خصوص و با توجه به دو حالت متفاوت می نمایم</div>
<br />
<div style="text-align: justify;">در هنگامی که فوکوس همچنان بر روی کنترل Textbox قرار دارد و کاربر در حال تایپ و تکمیل اطلاعات ورودی میباشد , در واقع از دید برنامه نویسی این اطلاعات در حکم اطلاعاتی تثبیت شده نیستند<br />
از دید برنامه نویسی اطلاعات را به دو بخش جزئی تقسیم میکنیم<br />
<br />
اطلاعات تایید شده و تثبیت شده و اطلاعات تثبیت نشده<br />
<br />
در حالتی که کاربر در حال تایپ اطلاعات میباشد , در واقع اطلاعات به صورت تثبیت نشده بوده و شاید بتوان بدین گونه تفسیر نمود که از دید برنامه , همچنان اطلاعاتی جهت بررسی وجود ندارد<br />
بر همین اساس و با همین تفسیر در صورتی که قبل از ورود اطلاعات در داخل Textbox اطلاعاتی موجود بوده باشد و کاربر اقدام به تاپی نمودن اطلاعاتی جدید نماید , تا قبل از تکمیل پروسه تثبت , از دید برنامه Textbox همچنان حاوی همان اطلاعات قبلی است<br />
<br />
به دستورات زیر توجه نمایید :</div>
<br />
<br />
<div style="text-align: left;"><div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Private Sub txtEntery_Change()<br />
&nbsp;&nbsp;&nbsp;&nbsp;txtReflexA = txtEntery<br />
&nbsp;&nbsp;&nbsp;&nbsp;txtReflexB = txtEntery.Text<br />
End Sub</code></div></div>
</div>
<br />
<br />
<div style="text-align: justify;">دستور txtReflexA = txtEntery اقدام به خواندن اطلاعات همزمان با تایپ نمودن آن نخواهد نمود , چرا که در حال حاضر اطلاعات به صورت تثبیت شده نیستند و تنها قادر به باز گرداندن اطلاعاتی میباشد که از قبل به صورت تثبیت شده درآمده اند<br />
<br />
ولیکن دستور txtReflexB = txtEntery.Text با توجه به استفاده از مشخصه Text  قادر است همزمان با تایپ نمودن اطلاعات اقدام به خواندن اطلاعات نماید</div>
<br />
توضیح : دو ذستور زیر معادل یکدیگر میباشند :<br />
<br />
 <div style="text-align: left;">txtEntery.Value<br />
txtEntery</div>
<br />
<div style="text-align: justify;">جهت درک نمودن بهتر موضوع به مثال موجود توجه نمایید<br />
در ابتدا اقدام به درج یک متن نموده و سپس مجدداً اقدام به تغییر همان متن نموده و نتیجه را ملاحظه فرمایید</div>
<br />
موفق باشید<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=11" target="_blank">Commited Text.zip</a> (اندازه:  11.96 KB / تعداد دفعات دریافت:  47)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[راههای جلوگیری از تخریب فایلهای Access]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=45</link>
			<pubDate>Sat, 15 Jan 2011 19:54:48 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=45</guid>
			<description><![CDATA[<div style="text-align: justify;">
ضمن سلام<br />
<br />
در این سلسله مقالات قصد دارم شما رو با یکی از معضلاتی که فایلهای Access با اون دست به گریبان هستند و بعضاً ایجاد مشکلات غیر قابل جبرانی می کنند , آشنا کنم .<br />
<br />
مساله <span style="font-weight: bold;">تخریب</span> فایلهای <span style="font-weight: bold;">Access</span> , مشکلی بوده که <span style="font-weight: bold;">همه</span> کاربرا مطمئناً کم و بیش همه با اون سر و کار داشتن و دارن .<br />
<br />
این مشکل عملاً یکی از معضلاتی هست که همیشه Access اونو با خودش حمل میکرده .<br />
<br />
در این میون میخوام کمک کنم که شما هم به عنوان کاربر برنامه بیکار نشینید و فقط نقش یک ناظر رو بازی نکنید . آستینها رو بالا بزنید و در رفع این مشکل Access , به کمک اون بیاید .<br />
<br />
یک همکاری دو طرفه و مسالمت آمیز مطمئناً در نهایت کفه سود رو به سمت شما سنگینی میده .<br />
<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
ضمن سلام<br />
<br />
در این سلسله مقالات قصد دارم شما رو با یکی از معضلاتی که فایلهای Access با اون دست به گریبان هستند و بعضاً ایجاد مشکلات غیر قابل جبرانی می کنند , آشنا کنم .<br />
<br />
مساله <span style="font-weight: bold;">تخریب</span> فایلهای <span style="font-weight: bold;">Access</span> , مشکلی بوده که <span style="font-weight: bold;">همه</span> کاربرا مطمئناً کم و بیش همه با اون سر و کار داشتن و دارن .<br />
<br />
این مشکل عملاً یکی از معضلاتی هست که همیشه Access اونو با خودش حمل میکرده .<br />
<br />
در این میون میخوام کمک کنم که شما هم به عنوان کاربر برنامه بیکار نشینید و فقط نقش یک ناظر رو بازی نکنید . آستینها رو بالا بزنید و در رفع این مشکل Access , به کمک اون بیاید .<br />
<br />
یک همکاری دو طرفه و مسالمت آمیز مطمئناً در نهایت کفه سود رو به سمت شما سنگینی میده .<br />
<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آشنایی با اکسس - بخش اول , دید کلی]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=43</link>
			<pubDate>Sat, 15 Jan 2011 19:41:58 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=43</guid>
			<description><![CDATA[<div style="text-align: justify;">ضمن سلام<br />
<br />
به نظرم رسید که مقاله ای در خصوص Access و حواشی اون بنویسم , روی صحبتم بیشتر مسیری هست که مایکروسافت در جهش از نقطه 2003 به نقطه 2010 انجام داده<br />
<br />
بالطبع در این میان , بهبود های مطرح شده در نسخه 2007 رو سعی میکنم در دل همون نسخه 2010 هضم کنم و کاستی های نسخه 2007 رو اگر در نسخه 2010 مرتفع شده دیگه نامی ازشون نبرم<br />
<br />
وجود این مقاله الزامی به نظر میرسه چرا که بسیاری از دوستان , به دلایلی مختلف همچنان در نسخه 2003 مشغول به کار هستند<br />
<br />
جهت همگام شدن با تغییر فرصت زیادی ندارید<br />
<br />
دو گزینه دارید ; یا همچنان با نسخه 2003 کار کنید و مشکلات آتی اون رو بپذیرید و یا آماده پرش بشید<br />
<br />
به نظر مياد در گام نخست بايد اندكي با خود اكسس آشنا شد ، چرا كه در ابتدا اين برنامه بايد به مصونيتي خاص در قبال تفسيرهايي غلط كه در خصوص اون وجود داره دست پیدا کنه<br />
<br />
به نکات زير نيز توجه داشه باشيد :<br />
<br />
برخي اصطلاحات همچنان به صورت انگليسي مورد استفاده قرار خواهند گرفت ، چرا كه يا معادل فارسي منطقي ندارند و يا اينكه در اينجا اطلاع از معناي دقيق اون اصطاح چندان ضروري نيست<br />
<br />
ضمن اینکه در همين ابتدا يك نكته دیگه  رو هم مد نظر قرار میدیم و اون هم ,  فاكتور گرفتن از رقباي واقعي اكسس هستش ، رقبايي كه در هيچ جا نامي از اونها برده نميشه ، سيستمهایی همچون Alpha Five و File Maker ، سيستمهايي كه دقيقا الگوبرداريهايي خاص از اكسس هستند <br />
<br />
به دلايلي , همچنان اين دو گزينه هم قابل استفاده توسط شما نيستند , فرضا Alpha Five زبان فارسی رو به درستی پشتیبانی نمیکنه و یا File Maker جهت سیستم عامل مکینتاش طراحی شذه<br />
<br />
بر همين اساس اگر نكته اي زير سئوال ميره ، بدون توجه و در نظر گرفتن اينگونه محصولاتي و امکانات اونهاست , چرا که اونها رو رقبایی با پتانسیل بالفعل , لااقل در ایران نمی دونیم<br />
<br />
در ابتدا به تعريفي از يك محيط <span style="font-weight: bold;">IDE </span>بپردازيم<br />
<br />
<span style="font-weight: bold;">IDE </span>در واقع سر واژه <span style="font-weight: bold;">I</span>ntegrated <span style="font-weight: bold;">D</span>evelopment <span style="font-weight: bold;">E</span>nvironment و يا همون <span style="font-weight: bold;">محيط توسعه يكپارچه</span> هستش<br />
<br />
در تعريف IDE , الزامات اوليه اينگونه محيطهايي , وجودCompiler,Debugger,Code Editor ذكر گرديده<br />
<br />
اكسس علاوه بر برآورده كردن کلیه اين الزامات ، ديگر جوانب يك توسعه هوشمند و كارا رو هم به همراه داره<br />
<br />
اكسس محيطي يكپارچه , متشكل از <span style="text-decoration: underline;">محل ذخيره سازي اطلاعات </span>( با تعبيري ساده : ديتابيس ) ، <span style="text-decoration: underline;">پرس و جوها </span>جهت واكشي ، پردازش و استخراج اطلاعات ، <span style="text-decoration: underline;">فرمها </span>كه در واقع به نوعي تشكيل دهنده و شالوده اصلي نماي كاربر و يا همون Interface هستند ، <span style="text-decoration: underline;">گزارشات </span>، كه به شما امكان مشاهده گزارشات نهايي و يا احيانا ذخيره سازي خروجيها در فرمتهاي متفاوت رو خواهند داد و <span style="text-decoration: underline;">محيط برنامه نويسي </span>, كه جهت انجام عمليات اتوماسيون بوسيله كد نويسي در اختيار شما قرار گرفته<br />
<br />
به بررسي Macro ها و Web Page ها نخواهيم پرداخت چرا كه اين امكانات , انحصاري اكسس هستند و در محيطهاي ديگه كم و بيش بدین گونه وجود ندارند ، و اين موارد به راهكارهاي فوري شبيه هستند كه در اكسس پياده سازي شدند<br />
<br />
فرضا ماكروها شما رو در انجام بسياري كارها بي نياز از برنامه نويسي خواهند كرد و يا Web Page ها , بدون نياز به داشتن اطلاعاتي تخصصي در اين مبحث , به شما در زمینه توسعه مبتنی بر Web كمك ميكنند<br />
<br />
با اطمينان خاطر میشه اعلام كرد كه <span style="font-weight: bold;">چنين مجموعه يكپارچه اي منحصر به فرد بوده و نظير ندارد</span><br />
<br />
حال يك سئوال كليدي مطرح ميشه ، كسي ممكنه از شما سئوال كنه :<br />
<br />
من يك برنامه دارم كه شركت توليد كننده مدعي شده : برنامه با زبان برنامه نویسی X نوشته شده . <br />
<br />
هم اطلاعات رو ذخيره ميكنه ( پس ديتابيس داره ) هم نماي كاربري كه داره بسيار شكيل هستش ( پس فرم داره و خروجي زيبا و كاربر پسند ) ، هم گزارشات خروجي داره ( پس سيستم طراحي گزارش داره ) هم محيط طراحي برنامه نويسي داشته , كه داره دستورات من رو اجرا ميكنه ، پس اختلافش با اكسس چيه ؟!<br />
<br />
بسياري از ديگر محيطهاي توسعه چند تفاوت عمده با اكسس دارند ، گو اينكه هر دو در دسته IDE ها قرار ميگيرند ، ولي اكسس مواردي ديگه رو هم به صورت يكپارچه ارائه كرده كه در ديگر محيطهاي توسعه بدين صورت وجود نداره<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">ديتابيس يا محل ذخيره سازي اطلاعات</span></span><br />
<br />
بسياري از اينگونه محيطهايي فاقد يك رويه درون ساخت جهت طراحي ديتابيس هستند و معدود مواردي هم كه از اين قابليت بهره ميبرند با توجه به امكانات داخلي بسيار ضعيفشون در اين رابطه ، طراحان كمتر به سراغ اين امكان داخلي اونها خواهند رفت<br />
در اين حالت اتصال به يك ديتابيس ثالث الزامي هستش ، اين ديتابيس ميتونه انتخابي متنوع از Access Database تا Oracle رو شامل بشه<br />
پس اطلاعات ذخيره شده در اينگونه برنامه ها , مستقل از خود اون محيط توسعه هستش و در واقع شما نياز به استمداد از يك ديتابيس خارجي ( برون سیستمی ) دارید<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">فرمها</span></span><br />
<br />
اگر كسي حداقل يك بار با ديگر محيطهاي توسعه كار كرده باشه به اين نكته پي خواهد برد ، كه كنترلهاي استاندارد موجود در داخل اين محيطها ، كاملا كنترلهايي با ظاهري ساده هستند ، ايجاد نماي كاربر جذاب , فرآيندی كاملا جانبي بوده و تماماً توسط كامپوننتها و اكتيو ايكسهاي جانبي ( افزونه هاي جانبي ) محقق ميشه<br />
شركتهاي بسياري در اين زمينه فعاليت ميكنند كه نتيجه خروجي اونها ، ظاهري شكيل تر براي نرم افزار هستش<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">گزارشات</span></span><br />
<br />
همچون مبحث ديتا بيس ، در خصوص گزارشات هم عيناً همون موضوع صادقه ، امكانات داخلي جوابگو نبوده و يا خروجي به صورتي كاملا مطلوب نيست ، در اين حالت باز هم مقوله استفاده از كامپوننتها و اكتيو ایکسهای جانبي نمود پيدا ميكنه<br />
بسياري از خروجيهايي كه شما در اينگونه نرم افزارها ملاحظه ميكنيد ، محصول خروجي كامپوننتهاي جانبي هستند و نه امكانات داخلي خود اون نرم افزار<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">برنامه نویسی</span></span><br />
<br />
تفاوت عمدتا در نوع كدينگ هستش كه با توجه به زبان برنامه نويسي متفاوت خواهند بود ، در اين خصوص مقايسه منطقي به نظر نميرسه ، چرا كه زبانهاي برنامه نويسي هر يك از اين محيطها متناسب با هدفشون طراحي شدند<br />
<br />
<br />
نتيجه گيري اوليه :<br />
<br />
محصول خروجي ديگر محيطهاي توسعه ( به غير از اكسس ) محصول مشترك اون محيط خاص با محصولات ديگر شركتها هستش<br />
<br />
به طور مثال شما ممكنه بتونيد با استفاده تلفيقي از چهار محصول , فرضاً , #C ( به عنوان محيط توسعه و طراحي اينتر فيس ) و SQL Server ( به عنوان ديتابيس ) ، Crystal Report ( جهت خروجي گزارش ) و فرضاً مجموعه كامپوننت DevExpress ( جهت بهبود نماي كاربر و زيبا سازي ) ، اقدام به طراحي محصول نهايي كنيد <br />
شما در واقع نياز به يادگيري 4 محصول متفاوت داريد تا بتونيد يك محصول نهایی رو توليد كنيد<br />
ضمن اينكه اتصال اين چهار محصول با همديگه نيازمند طي روالي خاص هستش ( فرضا خيلي از دوستان هنوز توي پروسه اتصال به SQL Server با مشكلات جدي مواجه هستند و ...) ، شما نياز به آموزشهايي مضاعف و مستمر تر داريد<br />
<br />
هر يك از اين محيطها با معضلات خاص خودشون همراه هستند و در برخي مواقع با توجه به اينكه اين محصولات ساخته و پرداخته شركتهاي ثالث هستند ، مشكلاتي رو در هنگام توسعه ممکنه به بار بیارن<br />
شما در استفاده از برخي محصولات جانبي با گلوگاههايي جدي روبرو ميشيد ، فرضا يكي از الزامات اين هستش كه اون كامپوننت خاص از Unicode پشتيباني كنه تا عمليات فارسي نويسي در اون به درستي انجام بشه ، همين امر محدوده انتخابي اين محصولات رو كوچكتر ميكنه چرا كه برخي از اونها از اين خصیصه پشتيباني نمي كنند<br />
<br />
توضيح اينكه اكسس نيز همچون بسياري از محيطهاي توسعه ، پذيراي توسعه تكنولوژي ActiveX بوده و امكان استفاده از كامپوننتهاي سازگار با خودش رو به شما ميده<br />
( در مبحث آتی در خصوص ActiveX ها هم اندکی توضیح داده میشه )<br />
<br />
پايان بخش اول<br />
<br />
پي نوشت :<br />
<br />
در حال حاضر ابتدا بايد به يك مرز بندي مشخص بين اكسس با ديگر محيطهاي توسعه برسيم تا در ادامه به بحثهاي داخلي خود اكسس منتهي بشه<br />
در فصل بعدي توضيحات تكميلي در همين خصوص ارائه خواهد شد<br />
همونطوری که عرض کردم , موضوع در قالب مقاله هستش , شاید در چندین قسمت , بدیهیست نظرات شخصی بنده هستش و بس , خواه اشتباه و خواه درست , تصمیم گیری با خواننده<br />
<br />
موفق باشید</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">ضمن سلام<br />
<br />
به نظرم رسید که مقاله ای در خصوص Access و حواشی اون بنویسم , روی صحبتم بیشتر مسیری هست که مایکروسافت در جهش از نقطه 2003 به نقطه 2010 انجام داده<br />
<br />
بالطبع در این میان , بهبود های مطرح شده در نسخه 2007 رو سعی میکنم در دل همون نسخه 2010 هضم کنم و کاستی های نسخه 2007 رو اگر در نسخه 2010 مرتفع شده دیگه نامی ازشون نبرم<br />
<br />
وجود این مقاله الزامی به نظر میرسه چرا که بسیاری از دوستان , به دلایلی مختلف همچنان در نسخه 2003 مشغول به کار هستند<br />
<br />
جهت همگام شدن با تغییر فرصت زیادی ندارید<br />
<br />
دو گزینه دارید ; یا همچنان با نسخه 2003 کار کنید و مشکلات آتی اون رو بپذیرید و یا آماده پرش بشید<br />
<br />
به نظر مياد در گام نخست بايد اندكي با خود اكسس آشنا شد ، چرا كه در ابتدا اين برنامه بايد به مصونيتي خاص در قبال تفسيرهايي غلط كه در خصوص اون وجود داره دست پیدا کنه<br />
<br />
به نکات زير نيز توجه داشه باشيد :<br />
<br />
برخي اصطلاحات همچنان به صورت انگليسي مورد استفاده قرار خواهند گرفت ، چرا كه يا معادل فارسي منطقي ندارند و يا اينكه در اينجا اطلاع از معناي دقيق اون اصطاح چندان ضروري نيست<br />
<br />
ضمن اینکه در همين ابتدا يك نكته دیگه  رو هم مد نظر قرار میدیم و اون هم ,  فاكتور گرفتن از رقباي واقعي اكسس هستش ، رقبايي كه در هيچ جا نامي از اونها برده نميشه ، سيستمهایی همچون Alpha Five و File Maker ، سيستمهايي كه دقيقا الگوبرداريهايي خاص از اكسس هستند <br />
<br />
به دلايلي , همچنان اين دو گزينه هم قابل استفاده توسط شما نيستند , فرضا Alpha Five زبان فارسی رو به درستی پشتیبانی نمیکنه و یا File Maker جهت سیستم عامل مکینتاش طراحی شذه<br />
<br />
بر همين اساس اگر نكته اي زير سئوال ميره ، بدون توجه و در نظر گرفتن اينگونه محصولاتي و امکانات اونهاست , چرا که اونها رو رقبایی با پتانسیل بالفعل , لااقل در ایران نمی دونیم<br />
<br />
در ابتدا به تعريفي از يك محيط <span style="font-weight: bold;">IDE </span>بپردازيم<br />
<br />
<span style="font-weight: bold;">IDE </span>در واقع سر واژه <span style="font-weight: bold;">I</span>ntegrated <span style="font-weight: bold;">D</span>evelopment <span style="font-weight: bold;">E</span>nvironment و يا همون <span style="font-weight: bold;">محيط توسعه يكپارچه</span> هستش<br />
<br />
در تعريف IDE , الزامات اوليه اينگونه محيطهايي , وجودCompiler,Debugger,Code Editor ذكر گرديده<br />
<br />
اكسس علاوه بر برآورده كردن کلیه اين الزامات ، ديگر جوانب يك توسعه هوشمند و كارا رو هم به همراه داره<br />
<br />
اكسس محيطي يكپارچه , متشكل از <span style="text-decoration: underline;">محل ذخيره سازي اطلاعات </span>( با تعبيري ساده : ديتابيس ) ، <span style="text-decoration: underline;">پرس و جوها </span>جهت واكشي ، پردازش و استخراج اطلاعات ، <span style="text-decoration: underline;">فرمها </span>كه در واقع به نوعي تشكيل دهنده و شالوده اصلي نماي كاربر و يا همون Interface هستند ، <span style="text-decoration: underline;">گزارشات </span>، كه به شما امكان مشاهده گزارشات نهايي و يا احيانا ذخيره سازي خروجيها در فرمتهاي متفاوت رو خواهند داد و <span style="text-decoration: underline;">محيط برنامه نويسي </span>, كه جهت انجام عمليات اتوماسيون بوسيله كد نويسي در اختيار شما قرار گرفته<br />
<br />
به بررسي Macro ها و Web Page ها نخواهيم پرداخت چرا كه اين امكانات , انحصاري اكسس هستند و در محيطهاي ديگه كم و بيش بدین گونه وجود ندارند ، و اين موارد به راهكارهاي فوري شبيه هستند كه در اكسس پياده سازي شدند<br />
<br />
فرضا ماكروها شما رو در انجام بسياري كارها بي نياز از برنامه نويسي خواهند كرد و يا Web Page ها , بدون نياز به داشتن اطلاعاتي تخصصي در اين مبحث , به شما در زمینه توسعه مبتنی بر Web كمك ميكنند<br />
<br />
با اطمينان خاطر میشه اعلام كرد كه <span style="font-weight: bold;">چنين مجموعه يكپارچه اي منحصر به فرد بوده و نظير ندارد</span><br />
<br />
حال يك سئوال كليدي مطرح ميشه ، كسي ممكنه از شما سئوال كنه :<br />
<br />
من يك برنامه دارم كه شركت توليد كننده مدعي شده : برنامه با زبان برنامه نویسی X نوشته شده . <br />
<br />
هم اطلاعات رو ذخيره ميكنه ( پس ديتابيس داره ) هم نماي كاربري كه داره بسيار شكيل هستش ( پس فرم داره و خروجي زيبا و كاربر پسند ) ، هم گزارشات خروجي داره ( پس سيستم طراحي گزارش داره ) هم محيط طراحي برنامه نويسي داشته , كه داره دستورات من رو اجرا ميكنه ، پس اختلافش با اكسس چيه ؟!<br />
<br />
بسياري از ديگر محيطهاي توسعه چند تفاوت عمده با اكسس دارند ، گو اينكه هر دو در دسته IDE ها قرار ميگيرند ، ولي اكسس مواردي ديگه رو هم به صورت يكپارچه ارائه كرده كه در ديگر محيطهاي توسعه بدين صورت وجود نداره<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">ديتابيس يا محل ذخيره سازي اطلاعات</span></span><br />
<br />
بسياري از اينگونه محيطهايي فاقد يك رويه درون ساخت جهت طراحي ديتابيس هستند و معدود مواردي هم كه از اين قابليت بهره ميبرند با توجه به امكانات داخلي بسيار ضعيفشون در اين رابطه ، طراحان كمتر به سراغ اين امكان داخلي اونها خواهند رفت<br />
در اين حالت اتصال به يك ديتابيس ثالث الزامي هستش ، اين ديتابيس ميتونه انتخابي متنوع از Access Database تا Oracle رو شامل بشه<br />
پس اطلاعات ذخيره شده در اينگونه برنامه ها , مستقل از خود اون محيط توسعه هستش و در واقع شما نياز به استمداد از يك ديتابيس خارجي ( برون سیستمی ) دارید<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">فرمها</span></span><br />
<br />
اگر كسي حداقل يك بار با ديگر محيطهاي توسعه كار كرده باشه به اين نكته پي خواهد برد ، كه كنترلهاي استاندارد موجود در داخل اين محيطها ، كاملا كنترلهايي با ظاهري ساده هستند ، ايجاد نماي كاربر جذاب , فرآيندی كاملا جانبي بوده و تماماً توسط كامپوننتها و اكتيو ايكسهاي جانبي ( افزونه هاي جانبي ) محقق ميشه<br />
شركتهاي بسياري در اين زمينه فعاليت ميكنند كه نتيجه خروجي اونها ، ظاهري شكيل تر براي نرم افزار هستش<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">گزارشات</span></span><br />
<br />
همچون مبحث ديتا بيس ، در خصوص گزارشات هم عيناً همون موضوع صادقه ، امكانات داخلي جوابگو نبوده و يا خروجي به صورتي كاملا مطلوب نيست ، در اين حالت باز هم مقوله استفاده از كامپوننتها و اكتيو ایکسهای جانبي نمود پيدا ميكنه<br />
بسياري از خروجيهايي كه شما در اينگونه نرم افزارها ملاحظه ميكنيد ، محصول خروجي كامپوننتهاي جانبي هستند و نه امكانات داخلي خود اون نرم افزار<br />
<br />
<span style="font-weight: bold;"><span style="color: #006400;">برنامه نویسی</span></span><br />
<br />
تفاوت عمدتا در نوع كدينگ هستش كه با توجه به زبان برنامه نويسي متفاوت خواهند بود ، در اين خصوص مقايسه منطقي به نظر نميرسه ، چرا كه زبانهاي برنامه نويسي هر يك از اين محيطها متناسب با هدفشون طراحي شدند<br />
<br />
<br />
نتيجه گيري اوليه :<br />
<br />
محصول خروجي ديگر محيطهاي توسعه ( به غير از اكسس ) محصول مشترك اون محيط خاص با محصولات ديگر شركتها هستش<br />
<br />
به طور مثال شما ممكنه بتونيد با استفاده تلفيقي از چهار محصول , فرضاً , #C ( به عنوان محيط توسعه و طراحي اينتر فيس ) و SQL Server ( به عنوان ديتابيس ) ، Crystal Report ( جهت خروجي گزارش ) و فرضاً مجموعه كامپوننت DevExpress ( جهت بهبود نماي كاربر و زيبا سازي ) ، اقدام به طراحي محصول نهايي كنيد <br />
شما در واقع نياز به يادگيري 4 محصول متفاوت داريد تا بتونيد يك محصول نهایی رو توليد كنيد<br />
ضمن اينكه اتصال اين چهار محصول با همديگه نيازمند طي روالي خاص هستش ( فرضا خيلي از دوستان هنوز توي پروسه اتصال به SQL Server با مشكلات جدي مواجه هستند و ...) ، شما نياز به آموزشهايي مضاعف و مستمر تر داريد<br />
<br />
هر يك از اين محيطها با معضلات خاص خودشون همراه هستند و در برخي مواقع با توجه به اينكه اين محصولات ساخته و پرداخته شركتهاي ثالث هستند ، مشكلاتي رو در هنگام توسعه ممکنه به بار بیارن<br />
شما در استفاده از برخي محصولات جانبي با گلوگاههايي جدي روبرو ميشيد ، فرضا يكي از الزامات اين هستش كه اون كامپوننت خاص از Unicode پشتيباني كنه تا عمليات فارسي نويسي در اون به درستي انجام بشه ، همين امر محدوده انتخابي اين محصولات رو كوچكتر ميكنه چرا كه برخي از اونها از اين خصیصه پشتيباني نمي كنند<br />
<br />
توضيح اينكه اكسس نيز همچون بسياري از محيطهاي توسعه ، پذيراي توسعه تكنولوژي ActiveX بوده و امكان استفاده از كامپوننتهاي سازگار با خودش رو به شما ميده<br />
( در مبحث آتی در خصوص ActiveX ها هم اندکی توضیح داده میشه )<br />
<br />
پايان بخش اول<br />
<br />
پي نوشت :<br />
<br />
در حال حاضر ابتدا بايد به يك مرز بندي مشخص بين اكسس با ديگر محيطهاي توسعه برسيم تا در ادامه به بحثهاي داخلي خود اكسس منتهي بشه<br />
در فصل بعدي توضيحات تكميلي در همين خصوص ارائه خواهد شد<br />
همونطوری که عرض کردم , موضوع در قالب مقاله هستش , شاید در چندین قسمت , بدیهیست نظرات شخصی بنده هستش و بس , خواه اشتباه و خواه درست , تصمیم گیری با خواننده<br />
<br />
موفق باشید</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[اضافه کردن یک فیلد جدید به جدول موجود]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=42</link>
			<pubDate>Thu, 09 Dec 2010 21:46:08 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=42</guid>
			<description><![CDATA[<div style="text-align: justify;">ضمن سلام<br />
<br />
در برخی مواقع این نیاز وجود دارد که به جدول موجود یک فیلد خاص اضافه گردد<br />
<br />
با استفاده از دستور Alter Table میتوان به این هدف نزدیک شد<br />
<br />
به طور مثال اجرای دستور ذیل منجر به ایجاد شدن یک فیلد جدید با عنوان YourSampleField از نوع داده Text و با حداکثر طول مجاز 20 کاراکتر در دیتابیسی که در مسیر C:\Sample.mdb قرار دارد خواهد شد</div>
<br />
<br />
<div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Function AddField()<br />
Dim dbsNew As DAO.Database<br />
Set dbsNew = DBEngine.Workspaces(0).OpenDatabase("C:&#92;Sample.mdb")<br />
dbsNew.Execute ("ALTER TABLE YourTargetTable ADD COLUMN YourSampleField Text(20)")<br />
End Function</code></div></div>
<br />
گو اینکه تا حد امکان طراحی اولیه باید به گونه ای باشد که نیاز به تغییر در طراحی جداول وجود نداشته باشد , چرا که در برخی موارد و با توجه به ماهیت تغییرات این احتمال وجود دارد که امکان تغییر از راه دور وجود نداشته باشد]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">ضمن سلام<br />
<br />
در برخی مواقع این نیاز وجود دارد که به جدول موجود یک فیلد خاص اضافه گردد<br />
<br />
با استفاده از دستور Alter Table میتوان به این هدف نزدیک شد<br />
<br />
به طور مثال اجرای دستور ذیل منجر به ایجاد شدن یک فیلد جدید با عنوان YourSampleField از نوع داده Text و با حداکثر طول مجاز 20 کاراکتر در دیتابیسی که در مسیر C:\Sample.mdb قرار دارد خواهد شد</div>
<br />
<br />
<div class="codeblock">
<div class="title">کد: <br />
</div><div class="body" dir="ltr"><code>Function AddField()<br />
Dim dbsNew As DAO.Database<br />
Set dbsNew = DBEngine.Workspaces(0).OpenDatabase("C:&#92;Sample.mdb")<br />
dbsNew.Execute ("ALTER TABLE YourTargetTable ADD COLUMN YourSampleField Text(20)")<br />
End Function</code></div></div>
<br />
گو اینکه تا حد امکان طراحی اولیه باید به گونه ای باشد که نیاز به تغییر در طراحی جداول وجود نداشته باشد , چرا که در برخی موارد و با توجه به ماهیت تغییرات این احتمال وجود دارد که امکان تغییر از راه دور وجود نداشته باشد]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[بستن دکمه Shift در اکسس به نحوی کارآمد تر]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=41</link>
			<pubDate>Fri, 03 Dec 2010 18:42:39 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=41</guid>
			<description><![CDATA[<div style="text-align: justify;">ضمن سلام <br />
<br />
در آموزش پیش رو , شما با نحوه <span style="font-weight: bold;">حمایت</span> نسبی از بسته بودن دکمه Shift در اکسس آشنا خواهید شد .<br />
<br />
با تکیه بر این روش , <span style="font-weight: bold;">لایه دفاعی</span> دیگری به برنامه های خود خواهید افزود , البته لازم به یادآوری نیست که این روش نیز دارای نقاط ضعف خاص خود است , ولیکن در مجموع از روش متداول کنونی کاملتر بوده و در واقع مکمل آن روش میباشد . استفاده از این روش را به برنامه نویسان توصیه میکنم .</div>
<br />
<span style="font-weight: bold;"><a href="http://www.4shared.com/file/156105983/4a2d4ca7/ShiftTips.html" target="_blank">لینک دانلود</a></span>]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">ضمن سلام <br />
<br />
در آموزش پیش رو , شما با نحوه <span style="font-weight: bold;">حمایت</span> نسبی از بسته بودن دکمه Shift در اکسس آشنا خواهید شد .<br />
<br />
با تکیه بر این روش , <span style="font-weight: bold;">لایه دفاعی</span> دیگری به برنامه های خود خواهید افزود , البته لازم به یادآوری نیست که این روش نیز دارای نقاط ضعف خاص خود است , ولیکن در مجموع از روش متداول کنونی کاملتر بوده و در واقع مکمل آن روش میباشد . استفاده از این روش را به برنامه نویسان توصیه میکنم .</div>
<br />
<span style="font-weight: bold;"><a href="http://www.4shared.com/file/156105983/4a2d4ca7/ShiftTips.html" target="_blank">لینک دانلود</a></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[بررسی وجود یک جدول یا یک ماکرو]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=38</link>
			<pubDate>Sat, 20 Nov 2010 17:22:54 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=38</guid>
			<description><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">در برخی موارد این نیاز هست , که از وجود یک آبجکت در داخل Database اطمینان حاصل کنید , این اطمینان در برخی مواقع لازم الاجرا بوده و به جهت بهبود کار و یا جلوگیری از برورز برخی نقائص باید مد نظر قرار بگیره<br />
<br />
مساله مطرح شده میتونه حتی در بخش امنیت هم به کمک شما بیاد<br />
امکان اجرای برخی دستورات در ابتدای باز شدن یک فایل اکسس , به دو طریق زیر امکان پذیره :<br />
<br />
<span style="font-weight: bold;">اجرا از طریق فراخوانی دستورات در داخل یک ماکروی AutoExec</span><br />
در این حالت Access آقدام به اجرای دستورات مندرج در داخل این ماکرو نموده و درنهایت کنترل رو به برنامه Access باز خواهد گردوند<br />
<br />
<span style="font-weight: bold;">اجرا از طریف فرخوانی دستورات در داخل فرم معرفی شده در بخش Startup</span><br />
در این حالت اقدام به طراحی یک فرم اولیه نموده , و در بخش Startup اقدام به معرفی این فرم به عنوان اولین عضوی که در برنامه به اجرا درخواهد اومد میکنید<br />
............<br />
هر دو سناریوی فوق دارای نقاط ضعف و قوت خود بوده و به فراخور موضوع قابلیت دور زدن خواهند داشت , امری که فرضاً در پروسه چک نمودن یک قفل به هیچ عنوان مورد تایید نیست<br />
<br />
توصیه این است که تحت هیچ شرایطی کنترل قفل و یا پروسه های مهم را به ماکروی AutoExec محول ننمایید , گزینه Startup از سطح امنیتی بسیار بالاتری برخوردار بوده و امکان مغلوب نمودن آن به سادگی میسر نیست<br />
<br />
ذکر یک نکته الزامیست , که در اینگونه مواقعی یکی از نکاتی که همواره فراموش میشود , چک نمودن عدم وجود ماکرویی با نام AutoExec میباشد , چرا که یک نفوذگر با تزریق یک ماکروی AutoExec به داخل برنامه قربانی , در بسیاری مواقع قادر به تغییر کل مسیر پروسه میباشد و در این گذر این احتمال افزایش خواهد یافت که به سادگی به مقصود خود دست پیدا کند <br />
<br />
مثال از وضوح کافی برخوردار بوده که در صورت نیاز , ابعاد کاربردی آن با شفافیت بیشتری ارائه خواهد شد</div>
<br />
موفق باشید<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=10" target="_blank">ObjectExist.zip</a> (اندازه:  120.79 KB / تعداد دفعات دریافت:  31)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[ضمن سلام<br />
<br />
<div style="text-align: justify;">در برخی موارد این نیاز هست , که از وجود یک آبجکت در داخل Database اطمینان حاصل کنید , این اطمینان در برخی مواقع لازم الاجرا بوده و به جهت بهبود کار و یا جلوگیری از برورز برخی نقائص باید مد نظر قرار بگیره<br />
<br />
مساله مطرح شده میتونه حتی در بخش امنیت هم به کمک شما بیاد<br />
امکان اجرای برخی دستورات در ابتدای باز شدن یک فایل اکسس , به دو طریق زیر امکان پذیره :<br />
<br />
<span style="font-weight: bold;">اجرا از طریق فراخوانی دستورات در داخل یک ماکروی AutoExec</span><br />
در این حالت Access آقدام به اجرای دستورات مندرج در داخل این ماکرو نموده و درنهایت کنترل رو به برنامه Access باز خواهد گردوند<br />
<br />
<span style="font-weight: bold;">اجرا از طریف فرخوانی دستورات در داخل فرم معرفی شده در بخش Startup</span><br />
در این حالت اقدام به طراحی یک فرم اولیه نموده , و در بخش Startup اقدام به معرفی این فرم به عنوان اولین عضوی که در برنامه به اجرا درخواهد اومد میکنید<br />
............<br />
هر دو سناریوی فوق دارای نقاط ضعف و قوت خود بوده و به فراخور موضوع قابلیت دور زدن خواهند داشت , امری که فرضاً در پروسه چک نمودن یک قفل به هیچ عنوان مورد تایید نیست<br />
<br />
توصیه این است که تحت هیچ شرایطی کنترل قفل و یا پروسه های مهم را به ماکروی AutoExec محول ننمایید , گزینه Startup از سطح امنیتی بسیار بالاتری برخوردار بوده و امکان مغلوب نمودن آن به سادگی میسر نیست<br />
<br />
ذکر یک نکته الزامیست , که در اینگونه مواقعی یکی از نکاتی که همواره فراموش میشود , چک نمودن عدم وجود ماکرویی با نام AutoExec میباشد , چرا که یک نفوذگر با تزریق یک ماکروی AutoExec به داخل برنامه قربانی , در بسیاری مواقع قادر به تغییر کل مسیر پروسه میباشد و در این گذر این احتمال افزایش خواهد یافت که به سادگی به مقصود خود دست پیدا کند <br />
<br />
مثال از وضوح کافی برخوردار بوده که در صورت نیاز , ابعاد کاربردی آن با شفافیت بیشتری ارائه خواهد شد</div>
<br />
موفق باشید<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=10" target="_blank">ObjectExist.zip</a> (اندازه:  120.79 KB / تعداد دفعات دریافت:  31)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آموزش قفل نرم افزاری SerialShield]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=27</link>
			<pubDate>Fri, 08 Oct 2010 11:32:01 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=27</guid>
			<description><![CDATA[<div style="text-align: left;"><img src="http://ionworx.com/img/box/box_ss.jpg" border="0" alt="[تصویر:  box_ss.jpg]" /></div>
ضمن سلام<br />
<br />
<div style="text-align: justify;">در این مبحث قصد دارم که در چند بخش نحوه استفاده از قفل نرم افزاری SerialShield رو به عنوان نزدیکترین رقیب<span style="font-weight: bold;"> <a href="http://cpsd.ir/tkpro.asp?" target="_blank">Trial Keeper Professional</a></span> توضیح بدم .</div>
<br />
<img src="images/smilies/lightbulb.gif" style="vertical-align: middle;" border="0" alt="Idea" title="Idea" /> فقط در ابتدا نظر شما رو به نکات زیر جلب میکنم :<br />
<br />
<div style="text-align: justify;">شاید براتون تعجب آور باشه که چرا نسبت به آموزش یک <span style="font-weight: bold;">محصول رقیب </span>اقدام کردم ؟! برخی از دلایل واضح و برخی دیگه متاسفانه از دید بسیاری کاربران پنهان مونده , البته تمامی این موارد رو به صورت خلاصه تر , قبلا بارها در فروم برنامه نویس اعلام کردم ولی احساس شد که شاید توضیحات زیاد شفاف نبودند . </div>
<br />
<div style="text-align: justify;">ابتدا سابقه ای کوتاه ارائه میکنم , مدتها پیش که قصد فروش یک محصول رو داشتم و پس از احساس نیاز به قفل گذاری بر روی اون , پس از کلی جستجو در سطح اینترنت و پیدا کردن محصولاتی متنوع , با محصول SerialShield آشنا شدم .<br />
<br />
این محصول از همون ابتدا بر روی اینترنت با کدهایی غیر مجاز در حال عرضه بود , و به گمان خودم به صورت رایگان به این محصول دسترسی پیدا کردم<br />
قفل رو بر روی نرم افزار خودم نصب کردم , چند روزی قفل به کاری که برای اون طراحی شده بود عمل میکرد , تا اینکه یک روز متوجه شدم که قفل خودش رو Reset کرده , بارها تست کردم و همون نتیجه حاصل شد</div>
<br />
<div style="text-align: justify;">جالب بود نسخه ای که لینک اون به صورت <span style="font-weight: bold;">عمومی</span> بر روی وبسایت قرار داره لینک <span style="font-weight: bold;">نسخه آزمایشی</span> هستش</div>
<br />
<div style="text-align: left;">http://www.ionworx.com/<span style="font-weight: bold;">trial</span>/SerialShield<span style="font-weight: bold;">Trial</span>.zip</div>
<br />
<div style="text-align: justify;">در واقع Ionworx جهت <span style="font-weight: bold;">جلوگیری از تکثیر غیر مجاز محصولش</span> دست به انجام این کار زده که <span style="font-weight: bold;">محصول نهایی رو تنها در اختیار خریداران خودش قرار میده</span> و لینک دانلود تنها پس از طی شدن پروسه خرید , قابل ارائه برای مشتریان خواهد بود .<br />
<br />
نسخه آزمایشی همونطوری که شرکت Ionworx در نظر گرفته <span style="font-weight: bold;">قابلیت فعال</span> سازی رو نداره ( گو اینکه با درج کد فعال سازی های موجود , قفل دیگه پیغام مزاحم رو به نمایش نمیذاره )</div>
<br />
<div style="text-align: justify;">کلیه نسخه های موجود بر روی اینترنت , به زعم وجود Keygen و تولید کد فعال سازی معتبر برای این محصول , پس از طی دوره ای <span style="font-weight: bold;">نامعین</span> و به صورت <span style="font-weight: bold;">رندم</span> ریست شده و عملیات قفل گذاری رو مختل میکنند !<br />
<br />
همین امر باعث شد که عملیات برنامه نویسی <span style="font-weight: bold;"><a href="http://cpsd.ir/tkpro.asp?" target="_blank">Trial Keeper Professional</a></span> استارت بخوره و پس از رفع نیازهای شخصی خودم در قالب یک محصول در اختیار دیگران قرار بگیره .</div>
<div style="text-align: justify;">
نکته دوم قیمت بالای محصول SerialShield هستش , قیمت از 80 یورو برای SerialShield Standard تا 1000 یورو جهت نسخه SerialShield Enterprise متغیره , امکان دریافت پول نقد از سوی شرکت فروشنده وجود نداره ( نمی پذیره !! ) , شما یا باید اقدام به ارسال چک بین بانکی کنید , که کارمزد صدور یک چک بین بانکی بین 50 تا 80 یورو بود ( با توجه به بانک ) و یا از کارتهای اعتباری بین المللی استفاده کنید<br />
<br />
با توجه به همین دو نکته بعید میدونم کسی در ایران به دنبال خرید نسخه اصلی این محصول باشه .</div>
<div style="text-align: justify;">
با این دو پیش زمینه به سراغ آموزش این محصول میریم تا کسانی که مایل به خرید <span style="font-weight: bold;">نسخه اصلی</span> اون هستند بتونن از این آموزش ذینفع بشن .<br />
<br />
در ابتدا اقدام به بارگذاری محصول از روی <a href="http://ionworx.com/" target="_blank">وبسایت شرکت سازنده </a>کنید و یا اگر به نسخه اصلی دسترسی دارید , اون رو جهت ارجاعات بعدی در دسترس قرار بدید </div>
<br />
<div style="text-align: justify;">ذکر یک نکته الزامیه و اون هم اینکه , مثال اکسس موجود در داخل لینک شرکت , در هنگام اجرا با <span style="font-weight: bold;">پیغام خطا</span> مواجه میشه ( این نقیصه سالهاست در این مثال وجود داره و معلوم نیست که چرا شرکت سازنده اون رو مرتفع نمیکنه )<br />
<br />
جهت رفع این مشکل نمونه آماده شده موجود رو بارگذاری کنید</div>
<br />
<div style="text-align: justify;">در پستهای آتی در خصوص برخی توابع موجود و نحوه استفاده از اونها توضیحاتی اجمالی درج خواهد شد .</div>
<br />
موفق باشید<br />
<br />
<a href="http://www.ionworx.com/trial/SerialShieldTrial.zip" target="_blank">لینک دانلود محصول</a><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=8" target="_blank">Fixed Version.zip</a> (اندازه:  19.07 KB / تعداد دفعات دریافت:  120)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;"><img src="http://ionworx.com/img/box/box_ss.jpg" border="0" alt="[تصویر:  box_ss.jpg]" /></div>
ضمن سلام<br />
<br />
<div style="text-align: justify;">در این مبحث قصد دارم که در چند بخش نحوه استفاده از قفل نرم افزاری SerialShield رو به عنوان نزدیکترین رقیب<span style="font-weight: bold;"> <a href="http://cpsd.ir/tkpro.asp?" target="_blank">Trial Keeper Professional</a></span> توضیح بدم .</div>
<br />
<img src="images/smilies/lightbulb.gif" style="vertical-align: middle;" border="0" alt="Idea" title="Idea" /> فقط در ابتدا نظر شما رو به نکات زیر جلب میکنم :<br />
<br />
<div style="text-align: justify;">شاید براتون تعجب آور باشه که چرا نسبت به آموزش یک <span style="font-weight: bold;">محصول رقیب </span>اقدام کردم ؟! برخی از دلایل واضح و برخی دیگه متاسفانه از دید بسیاری کاربران پنهان مونده , البته تمامی این موارد رو به صورت خلاصه تر , قبلا بارها در فروم برنامه نویس اعلام کردم ولی احساس شد که شاید توضیحات زیاد شفاف نبودند . </div>
<br />
<div style="text-align: justify;">ابتدا سابقه ای کوتاه ارائه میکنم , مدتها پیش که قصد فروش یک محصول رو داشتم و پس از احساس نیاز به قفل گذاری بر روی اون , پس از کلی جستجو در سطح اینترنت و پیدا کردن محصولاتی متنوع , با محصول SerialShield آشنا شدم .<br />
<br />
این محصول از همون ابتدا بر روی اینترنت با کدهایی غیر مجاز در حال عرضه بود , و به گمان خودم به صورت رایگان به این محصول دسترسی پیدا کردم<br />
قفل رو بر روی نرم افزار خودم نصب کردم , چند روزی قفل به کاری که برای اون طراحی شده بود عمل میکرد , تا اینکه یک روز متوجه شدم که قفل خودش رو Reset کرده , بارها تست کردم و همون نتیجه حاصل شد</div>
<br />
<div style="text-align: justify;">جالب بود نسخه ای که لینک اون به صورت <span style="font-weight: bold;">عمومی</span> بر روی وبسایت قرار داره لینک <span style="font-weight: bold;">نسخه آزمایشی</span> هستش</div>
<br />
<div style="text-align: left;">http://www.ionworx.com/<span style="font-weight: bold;">trial</span>/SerialShield<span style="font-weight: bold;">Trial</span>.zip</div>
<br />
<div style="text-align: justify;">در واقع Ionworx جهت <span style="font-weight: bold;">جلوگیری از تکثیر غیر مجاز محصولش</span> دست به انجام این کار زده که <span style="font-weight: bold;">محصول نهایی رو تنها در اختیار خریداران خودش قرار میده</span> و لینک دانلود تنها پس از طی شدن پروسه خرید , قابل ارائه برای مشتریان خواهد بود .<br />
<br />
نسخه آزمایشی همونطوری که شرکت Ionworx در نظر گرفته <span style="font-weight: bold;">قابلیت فعال</span> سازی رو نداره ( گو اینکه با درج کد فعال سازی های موجود , قفل دیگه پیغام مزاحم رو به نمایش نمیذاره )</div>
<br />
<div style="text-align: justify;">کلیه نسخه های موجود بر روی اینترنت , به زعم وجود Keygen و تولید کد فعال سازی معتبر برای این محصول , پس از طی دوره ای <span style="font-weight: bold;">نامعین</span> و به صورت <span style="font-weight: bold;">رندم</span> ریست شده و عملیات قفل گذاری رو مختل میکنند !<br />
<br />
همین امر باعث شد که عملیات برنامه نویسی <span style="font-weight: bold;"><a href="http://cpsd.ir/tkpro.asp?" target="_blank">Trial Keeper Professional</a></span> استارت بخوره و پس از رفع نیازهای شخصی خودم در قالب یک محصول در اختیار دیگران قرار بگیره .</div>
<div style="text-align: justify;">
نکته دوم قیمت بالای محصول SerialShield هستش , قیمت از 80 یورو برای SerialShield Standard تا 1000 یورو جهت نسخه SerialShield Enterprise متغیره , امکان دریافت پول نقد از سوی شرکت فروشنده وجود نداره ( نمی پذیره !! ) , شما یا باید اقدام به ارسال چک بین بانکی کنید , که کارمزد صدور یک چک بین بانکی بین 50 تا 80 یورو بود ( با توجه به بانک ) و یا از کارتهای اعتباری بین المللی استفاده کنید<br />
<br />
با توجه به همین دو نکته بعید میدونم کسی در ایران به دنبال خرید نسخه اصلی این محصول باشه .</div>
<div style="text-align: justify;">
با این دو پیش زمینه به سراغ آموزش این محصول میریم تا کسانی که مایل به خرید <span style="font-weight: bold;">نسخه اصلی</span> اون هستند بتونن از این آموزش ذینفع بشن .<br />
<br />
در ابتدا اقدام به بارگذاری محصول از روی <a href="http://ionworx.com/" target="_blank">وبسایت شرکت سازنده </a>کنید و یا اگر به نسخه اصلی دسترسی دارید , اون رو جهت ارجاعات بعدی در دسترس قرار بدید </div>
<br />
<div style="text-align: justify;">ذکر یک نکته الزامیه و اون هم اینکه , مثال اکسس موجود در داخل لینک شرکت , در هنگام اجرا با <span style="font-weight: bold;">پیغام خطا</span> مواجه میشه ( این نقیصه سالهاست در این مثال وجود داره و معلوم نیست که چرا شرکت سازنده اون رو مرتفع نمیکنه )<br />
<br />
جهت رفع این مشکل نمونه آماده شده موجود رو بارگذاری کنید</div>
<br />
<div style="text-align: justify;">در پستهای آتی در خصوص برخی توابع موجود و نحوه استفاده از اونها توضیحاتی اجمالی درج خواهد شد .</div>
<br />
موفق باشید<br />
<br />
<a href="http://www.ionworx.com/trial/SerialShieldTrial.zip" target="_blank">لینک دانلود محصول</a><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=8" target="_blank">Fixed Version.zip</a> (اندازه:  19.07 KB / تعداد دفعات دریافت:  120)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آموزش ADO , ActiveX Data Objects]]></title>
			<link>http://cpsd.ir/forum/showthread.php?tid=26</link>
			<pubDate>Fri, 24 Sep 2010 18:24:18 +0330</pubDate>
			<guid isPermaLink="false">http://cpsd.ir/forum/showthread.php?tid=26</guid>
			<description><![CDATA[<div style="text-align: left;"><img src="http://cpsd.ir/myresource/images/AdoCourse_CPSD.IR.png" border="0" alt="[تصویر:  AdoCourse_CPSD.IR.png]" /></div>
<br />
<br />
سلام<br />
<br />
<div style="text-align: justify;">با ورود به این مبحث فصل جدیدی از دوران برنامه نویسی در مقابل بسیاری از کاربرانی که تاکنون تنها اقدام به کدنویسی JET Base کرده بودن باز خواهد شد <br />
<br />
با اطلاعات برنامه نويسي اونهم در حد متوسط اين امكان وجود داره كه شما اقدام به ، به كارگيري توان بالقوه <span style="font-weight: bold;">A</span>ctiveX <span style="font-weight: bold;">D</span>ata <span style="font-weight: bold;">O</span>bject و يا همون <span style="font-weight: bold;">ADO</span> كنيد<br />
<br />
ولی پیش نیاز اون آشنایی کامل با خود آبجکتهای استاندارد Access هستش<br />
<br />
از طريق <span style="font-weight: bold;">ADO</span> شما امكان اتصال و مديريت طيف وسيعي از گونه هاي متفاوت ديتا بيسها و از اون جمله اكسس رو خواهید داشت<br />
<br />
<span style="font-weight: bold;">ADO</span> يكي از مدلهاي قدرتمند برنامه نويسي مختص ديتا بيسها رو پوشش ميده ، بك مدل برنامه نويسي مبتني بر شي هستش كه در بسياري از زبانهاي برنامه نويسي پشتيباني ميشه ( ميشه گفت در كليه زبانهاي برنامه نويسي مطرح اين امر محقق ميشه )<br />
<br />
<span style="font-weight: bold;">ADO</span> خصوصاً در نسخه هاي جديد مايكروسافت آفيس تبديل به روشي قابل اتكا و به تبع اون با اهميت مضاعف در اتصال و مديريت پايگاههاي داده شده<br />
<br />
Data Source ها گونه هاي متفاوتي رو در بر ميگيرن ، از يك فايل Text ساده تا نمونه هاي پيچيده از بانكهاي اطلاعاتي رابطه اي همچون اكسس<br />
<br />
در مجموع <span style="font-weight: bold;">ADO</span> قابليت اتصال به كليه ديتابيسهاي معتبر و عمومي رو داره<br />
<br />
<span style="font-weight: bold;">ADO</span> قابليت بهينه سازي و افزايش توان عملياتي SQL رو هم با خودش به همراه مياره<br />
<br />
هر گونه برنامه نويسي مبتني بر اين مدل ، در واقع به نوعي تلاش و جدل با ADO API هستش<br />
<br />
توضيح : يك <span style="font-weight: bold;">API</span> و يا <span style="font-weight: bold;">A</span>pplication <span style="font-weight: bold;">P</span>rogramming <span style="font-weight: bold;">I</span>nterface در واقع مجموعه اي  از نماها و يا كلاسهايي هستند كه به شما اين اجازه رو ميدن تا اقدام به برقراري و ارتباط با دستوراتي پيچيده ، در قالبي ساده داشته باشيد<br />
<br />
البته نحوه فراخواني و درج دستورات <span style="font-weight: bold;">ADO</span> در زبانهاي برنامه نويسي مختلف تا حدودي با همديگه متفاوته كه ما در اينجا مبحث رو حول به كارگيري اون در Access VBA پيش رو داريم<br />
<br />
متاسفانه اين مبحث از وسعت بسيار زيادي برخورداره كه در اين سلسله مقالات فرصت زماني به گونه اي هستش كه تنها امكان بررسي برخي روشها وجود داره پس اگر با گونه هاي متفاوتي از كدنويسي روبرو شديد نگران نباشيد ، يك رويه رو يادبگيريد و همون رو ادامه بديد</div>
<br />
خدانگهدار]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;"><img src="http://cpsd.ir/myresource/images/AdoCourse_CPSD.IR.png" border="0" alt="[تصویر:  AdoCourse_CPSD.IR.png]" /></div>
<br />
<br />
سلام<br />
<br />
<div style="text-align: justify;">با ورود به این مبحث فصل جدیدی از دوران برنامه نویسی در مقابل بسیاری از کاربرانی که تاکنون تنها اقدام به کدنویسی JET Base کرده بودن باز خواهد شد <br />
<br />
با اطلاعات برنامه نويسي اونهم در حد متوسط اين امكان وجود داره كه شما اقدام به ، به كارگيري توان بالقوه <span style="font-weight: bold;">A</span>ctiveX <span style="font-weight: bold;">D</span>ata <span style="font-weight: bold;">O</span>bject و يا همون <span style="font-weight: bold;">ADO</span> كنيد<br />
<br />
ولی پیش نیاز اون آشنایی کامل با خود آبجکتهای استاندارد Access هستش<br />
<br />
از طريق <span style="font-weight: bold;">ADO</span> شما امكان اتصال و مديريت طيف وسيعي از گونه هاي متفاوت ديتا بيسها و از اون جمله اكسس رو خواهید داشت<br />
<br />
<span style="font-weight: bold;">ADO</span> يكي از مدلهاي قدرتمند برنامه نويسي مختص ديتا بيسها رو پوشش ميده ، بك مدل برنامه نويسي مبتني بر شي هستش كه در بسياري از زبانهاي برنامه نويسي پشتيباني ميشه ( ميشه گفت در كليه زبانهاي برنامه نويسي مطرح اين امر محقق ميشه )<br />
<br />
<span style="font-weight: bold;">ADO</span> خصوصاً در نسخه هاي جديد مايكروسافت آفيس تبديل به روشي قابل اتكا و به تبع اون با اهميت مضاعف در اتصال و مديريت پايگاههاي داده شده<br />
<br />
Data Source ها گونه هاي متفاوتي رو در بر ميگيرن ، از يك فايل Text ساده تا نمونه هاي پيچيده از بانكهاي اطلاعاتي رابطه اي همچون اكسس<br />
<br />
در مجموع <span style="font-weight: bold;">ADO</span> قابليت اتصال به كليه ديتابيسهاي معتبر و عمومي رو داره<br />
<br />
<span style="font-weight: bold;">ADO</span> قابليت بهينه سازي و افزايش توان عملياتي SQL رو هم با خودش به همراه مياره<br />
<br />
هر گونه برنامه نويسي مبتني بر اين مدل ، در واقع به نوعي تلاش و جدل با ADO API هستش<br />
<br />
توضيح : يك <span style="font-weight: bold;">API</span> و يا <span style="font-weight: bold;">A</span>pplication <span style="font-weight: bold;">P</span>rogramming <span style="font-weight: bold;">I</span>nterface در واقع مجموعه اي  از نماها و يا كلاسهايي هستند كه به شما اين اجازه رو ميدن تا اقدام به برقراري و ارتباط با دستوراتي پيچيده ، در قالبي ساده داشته باشيد<br />
<br />
البته نحوه فراخواني و درج دستورات <span style="font-weight: bold;">ADO</span> در زبانهاي برنامه نويسي مختلف تا حدودي با همديگه متفاوته كه ما در اينجا مبحث رو حول به كارگيري اون در Access VBA پيش رو داريم<br />
<br />
متاسفانه اين مبحث از وسعت بسيار زيادي برخورداره كه در اين سلسله مقالات فرصت زماني به گونه اي هستش كه تنها امكان بررسي برخي روشها وجود داره پس اگر با گونه هاي متفاوتي از كدنويسي روبرو شديد نگران نباشيد ، يك رويه رو يادبگيريد و همون رو ادامه بديد</div>
<br />
خدانگهدار]]></content:encoded>
		</item>
	</channel>
</rss>