# پایگاه‌های داده > سایر پایگاه‌های داده > Access >  آموزش Access Project

## شاپرک

سئوال چرا Acess Project؟

جواب: قدرت  SQLو سرعت و سهولت Access

ابتدا لازمه به معرفیAccess Project بپردازیم.متاسفانه بدلیل نداشتن اطلاعات لازم از سوی برنامه نویسان Access Project که از این به بعد برای سهولت  (A_P)  صداش میزنیم A_Pبه صورت گسترده مورد توجه برنامه نویسان بانک های اطلاعاتی ایران  قرار نگرفته.برا همین تصمیم گرفتم که این نرم افزار رو با دوستانی که باهاش آشنا نیستند آشنا کنم.

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

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

چون اصطلاحاً Access این کاره نبود ترجیح داده این وظیفه  رو به برنامه های مدیریت بانک های اطلاعاتی که این کاره ان بده .درست شنیدین تعجب نکنین A_P این وظیفه رو به Database Server های قوی مثل Microsoft SQL server و Oracel و …. خلاصه ODBC ها محول کرده.

A_P  رو میتونین تو بسته نرم افزای Microsoft Office 2000& 2003 ملاقاتش کنین.

تقریبا میشه گفت 80% انتظارات برنامه نویسان بانک های اطلاعاتی بر آورده شده بهتره بگم مزیت A_P اینه که شما میتونین با سرعت زیاد پروژه های بزرگ نرم افزاری رو اجرا کنین فقط کافیه Acess رو بلد باشین و SQL رو شروع کنین.بقیشم همت و تمرین.

8 ساله حرفه ای تو زمینه بانک های اطلاعاتی  برنامه نویسی میکنم  2 یا 3 سالم تفریحی با QW Basic بازی میکردم ولی به نظر من A_Pآخرشه.اینم نمونه کارش:

face="Tahoma, Arial, Helvetica, sans-serif">



تو این وبلاگ سعیم اینه که کسانی رو که با سیستم های مدیریت پایگاه داده دیگه مثل Microsoft Acess کار کردن و حالا می خوان A_P  و  SQL Server رو تجربه کنن کمک کنم هیچ منتی هم نیست من با درگیر شدن با مشکلات شما خودمم قوی تر میشم پس این به اون در..
درس (1)شروع کار:

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

اهان . اول شناسایی کاربر به SQL_Server   *** مهم

شناسایی کاربر به یه ODBCکه تو این درس SQL_Server   هستش رو  Attenticationمیگن.

برا شناسایی یه کاربر به SQL_Server  دو روش وجود داره یه روش اینه که Windowsکاربرا رو شناسایی کنه Windows Attentication   یه روشم اینه که  SQLاونارو شناسایی کنه که بهش میگن SQL_Server Attentication .

(1)Windows Attentication: این روش زمانی استفاده می شه که ما داریم تو یه شبکه  Domain Baseکار میکنیم .اگه نمی دونین شبکتون  Domain Base هستش یا نه میتونین از مدیر شبکه تون یا به اصطلاح فرنگیا Network Administratorبپرسین.داشتیم میگفتیم توWindows Attentication سروربرا شناسایی از بانک  اطلاعاتی کاربرای Domain  استفاده میکنه .که (Active Directory)  بهش مگن .و تقریبا خودشو راحت مکنه و از یه طرفم امنیت رو بالا می بره.

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

(2)SQL_Server Attentication : یه روش دیگه هم اینه که خود SQL_Server  وظیفه شناسایی رو انجام میده. این حالت رو فقط تو مواقع ای استفاده میشه  که یا شبکه ای ندارین و فقط دارین با یه کامپیوتر کار میکنین و یا زمانی که شبکه شما Domain Base نیستش و Workgroup هستش .

وقتی شما سعی میکنین به SQL_Server وصل بشین یه Login ID  به SQLمیفرستین در روش اول SQL  از Active Directory می پرسه که آیا این کاربر تائید شده هست و اگه تائید بشه حالا SQL میبینه چه دسترسی هایی دارین(Table_View_Stor Procedure) و از چه نوعی (Read Only _ Full_Read_Wright) .

در روش دوم شما با یک User Name و یک Password  که قبلا بر روی سرور تعریف کردین به SQL وصل میشین.و بقیه کارم مثل قبلیه SQL مبینه شما چه دسترسی دارین(Permission).

توجه: Microsoft پیشنهاد میکنه که حتی المقدور از روش اول استفاده کنین. میدونین به نظر من Microsoft روش نمیشه بگه روش دوم چه گندیه میگه حتی المقدور.

فکر کنم برا درس اول بس باشه فرادا با Aceess Project به SQL _ Server وصل میشیم و اسمشو می ذاریم درس دو.موافقین.......

 درس 2 :طریقه اتصال از Access Project به SQL_Server

برای وصل شدن به SQL_Server  از طریق Access Project   ابتدا باید هر دوتا  نرم افزار رو Install کرده باشیم .

حالا میریم داخل محیط A_P   و  منوی File\New  رو می زنیم گوشه سمت راست Screen (صفحه پیش رو)  روی Project Using New Database  رو کلیک میکنیم A_P  از ما مسیری از Hard Disk   رو که باید فایلش رو اونجا Save کنه رو می پرسه.

بلا فاصله بعد از تائید محل ذخیره A_P  یک فرم Wizard   به اسم Microsoft SQL Server Wizard را براتون باز میکنه که نام بانک اطلاعاتی و طریقه وصل شدن به اون (رجوع به درس 1)  رو از شما میپرسه.

                                                     مانند شکل ذیل:



                                توجه : بانک اطلاعاتی بر روی SQL_Server  ایجاد میشه.

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

حالا برا اینکه چند تا نمونه کار هم دیده با شین می تونین به بانک اطلاعاتی  Northwindهمیشه همراه SQL_Server هستش مراجعه کنین برا این کار  منوی File\Connection  رو بزنین و مطابق شکل همه چی رو میزون کنین بغیر از Server Name  که شما باید نام  SQL_Server   خودتون رو وارد کنین.

 درس 3 : چرا و چگونه ADO Activex Data Object

تواین درس مخوایم یه کار متفاوت بکنبم چون هدف این وبلاگ بیشتر پوشش دادن نیازهای برنامه نویسهای حرفه ای و نیمه حرفه اییه برا همین می خوام درباره ADOبیشتر صحبت بکنم.

ADO رو میشه اینجوری هم معرفیش کرد که مدل کوچیک شده ء RDO(Remote Data Object).

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

ADOپشت صحنه از OLEDB کمک میگیره و با اون میشه به منابع داده غیر SQL مثل E_Mail   وحتی سرویس دایر کتوری شبکه هم دسترسی داشت.

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

ADO   از سه شی اصلی تشکیل شده.

Connection :  که یک رشته است که امکان اتصال به بانک اطلاعاتی رو فرا هم میکنه.

Command : که برای جستجو استفاده میشه

Recordset  : که میشه گفت همه کارست این یادتون باشه که رکوردست همه کارست.

بهتر دیدم بخاطر اینکه بحث اصلی این وبلاگ درباره Access Project هستش یه Example درباره وصل شدن به یه Record Set براتون بزارم به امید اینکه به دردتون بخوره

تواین نمونه از بانک اطلاعاتی NorthWindهمراه SQL_Server استفاده شده در قسمت StrSQLبنا به مشخصات بانک اطلاعاتی شما میتوان از دستور SQL اختصاصی شما استفاده نمود.



Dim cn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim strSQL As String

strSQL = "SELECT Auid From Autore"

Set rst = New ADODB.Recordset

Set cn = Application.CurrentProject.Connection

rst.open strSQL, cn, adOpenForwardOnly, adLockOptimistic




منبع : http://sarami.blogfa.com/

----------


## شاپرک

نمی تونم فایل ADE بسازم همش Error میده !!!!   
این رو توی help پیدا کردم
 About references and .ade files
If you try to create an .ade (ADE file: A Microsoft Access project (.adp) file with all modules compiled and all editable source code removed.) file from an Access project file or an add-in that references another Access project or add-in, Access displays an error message and doesn't let you complete the operation. To save an Access project that references another Access project as an .ade file, you must save all projects in the chain of references as .ade or .mde (MDE file: Microsoft Access database (.mdb) file with all modules compiled and all editable source code removed.) files, starting from the first project referenced. After saving the first project as an .ade or .mde file, you must then update the reference in the next project to point to the new file before saving it as an .ade file, and so on.
For example, if Project1.adp references Project2.adp, which references Project3.mda, you would proceed as follows:
1.	Save Project3.mda as Project3.mde.
2.	Open Project 2.adp and change its reference to point to the new Project3.mde.
3.	Save Project2.adp as Project2.ade.
4.	Open Project1.adp and change its reference to point to the new Project2.ade.
5.	Save Project1.adp as Project1.ade.

درست متوجه نمیشم

----------


## sarami

فایل ade مثل فایلmdb هستش که جلوی desin و آیتم های دیگه ای که تو اکسس معمولی با هاش برخورد داشتین رو میگیره اگه منظورتون اینه توضیح بدم

----------


## شاپرک

mde یا mdb ?
من منظورم mde

----------


## sarami

ییخشید ADE انقدر این پسوندها زیاد شدن که گاهی وقتا قاطی میکنه ادم

----------


## شاپرک

چرا error میده ؟

----------


## شاپرک

یه سوال دیگه :
وقتی فایلم (adp) رورباز میکنم از من Username و password     میخواد((login تعریف شده  در Sql) ....من میخوام این کار رو خودم انجام بدم یعنی فرم براش طراحی کنم چیکار کنم که فرم من رو نمایش بده ؟؟؟؟؟

----------


## sarami

اگه windowsauttentication رو انتخاب کنی دیگه از Login ویندوزت برا وصل شدن به sql استفاده میکنه و اگه رو شبکه باشی و شبکه شما domain base باشه از کاربرای اکتیو دایرکتوری میتونی برا permission دادن استفاده کنی برای اینکه در ساختن ade دچار مشکل نشی در پنجره کد نویسی گزینه debug و compile رو بزن و جایی که ایراد میگیره رو نشونت میده احتمالا event نوشتی بعد مثلا command رو پاک کردی ولی هنوز کدهاش اونجا وجود داره باید اونا رو پاک کنی اگه compile بدون مشکل انجام بشه ade ساختن بدون error انجام خواهد شد

----------


## once4ever

آیا این Access Project شبکه رو هم ساپورت میکنه
یعنی مدیریت رکوردها برای یوزرهای همزمان و....
(فکر کنم Access همچین کاری نمیکرد یعنی برای شبکه ساخته نشده بود)

----------


## سنبله کار

در مورد اشکال ADE شاپرک مسئله به Event بر می گردد .
برخی مواقع شما برای یک شیء Event را در محیط VBA می نویسید ، بعد از مدتی ممکن است نام آن شیء را تغییر دهید در این شرایط باید Event را متناسب با نام اصلاح می کردید اما فراموش شده بود .
همین اشتباه باعث Error روی ADE می شود .

----------


## سنبله کار

Access هم شبکه را ساپورت می کند اما Access Project خیلی بهتر

----------


## once4ever

سایت اصلی این Access project  کجاست که اطلاعاتش با تفاوتهاشو نوشته باشه!
درضمن نوشته بود تو office 2003 هست. اما من Ms Access 2003 دارم!

----------


## سنبله کار

http://office.microsoft.com/en-gb/FX010857911033.aspx



> حالا میریم داخل محیط A_P و منوی File\New رو می زنیم گوشه سمت راست Screen (صفحه پیش رو) روی Project Using New Database رو کلیک میکنیم A_P از ما مسیری از Hard Disk رو که باید فایلش رو اونجا Save کنه رو می پرسه.
> 
> بلا فاصله بعد از تائید محل ذخیره A_P یک فرم Wizard به اسم Microsoft SQL Server Wizard را براتون باز میکنه که نام بانک اطلاعاتی و طریقه وصل شدن به اون (رجوع به درس 1) رو از شما میپرسه.

----------


## barbazoo

با سلام :
من با اکسس پروجکت میخوام وقتی یه فرم داره رکوردها رو از اسکیوال سرور لود میکنه فقط تعداد محدودی از رکوردها رو لود کنه و وقتی مثلا 20 تای اول رو لود کرد و کاربر بعد از رکورد 20 رو خواست با دکمه نکست که میزنه 20 تای بعدی رو براش بیاره - البته منظور من استفاده از MAX RECORD نیست
بلکه میخوام بدونم چطور میتونم CACHESIZE رو تغییر بدم تا  سیستم خودش این کار رو انجام بده  -

----------


## moustafa

یک سایت  انگلیسی توپ برای accessproject & vba

http://www.tek-tips.com/threadminder.cfm?pid=958&page=1

----------


## moustafa

error  در اغاز ساخت یه پروژه :
1- نشناختن نام سرور یا معرفی غلط 

بدست اوردن نام سرور :
روی ایکون کامپیوتر با پیکان سبز راست کلیک کنید و  open sql server service manager  رو انتخاب کنید واز انجا نام سرور رو copy ودر ویزارد paste کنید  
2- خاموش بودن سرور کامپیوتر با علامت مربع قرمز رنگ در پایین دسکت تاپ:
اگر مستطیل قرمز رنگ بجای پیکان سبز رنگ بود سرور خاموش است و ارتباط برقزار نخواهد شد 
بنابراین روی ان راست کلیک کنید و sql server-start را انتخاب کنید

----------


## moustafa

پیشنهاد می کنم این قسمت نیز با ابجکتهای ازقبیل جدوال -کوئری ها - رابطه ها- فرمها -گزارشات و ماکروها   دسته بندی و  به اموزش و تشریح ان پرداخته شود

----------


## moustafa

ماکروهای مختص adp که با DoCmd معادل انها در محیط کدنویسی وی بی ساخته میشود  یا پس از ساخت انها باید کانورت شود از طریق save as یا tools/macro/counvert to visual basic
1-open view
2-open storedprocedure
3-open function
4-copydatabasefile
5- TeransferSQLDatabase

----------


## Mahsa Hatefi

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

----------


## moustafa

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

----------


## Mahsa Hatefi

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

----------


## moustafa

یدفعه اس کیوال سرور رو نصب کن خودتو راحت کن ،من همین مشکل رو داشتم

----------


## Mahsa Hatefi

منظورتون اسکیوال سرور2005 از روی سی دی جداگانه است؟
--------------------
نمی دونم چرا نمی تونم بیش از یکی دو خط پست کنم پیام می دهد آدرس مورد نظر وجود ندارد

----------


## moustafa

2000 از روی سی دی  جداگانه 
2005 جا نیفتاده  ،کمتر کسی هم کارکرده ولی با 2000 دوستانمون در  همین بخش پروژه های بزرگ پیاده سازی کردند و به ان مسلطتر هستند  بنابراین ساپورتش بیشتر

----------


## Mahsa Hatefi

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

----------


## moustafa

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

----------


## Mahsa Hatefi

بازهم متشکرم

----------


## ITST-1

با سلام

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

----------


## سنبله کار

موقع انتقال اکسس پروجکت به سیستم های دیگه باید یادتون باشه که در Connection قسمت Server name نباید با نقطه (دات (.)) پر شده باشه چون اون نماد Local هست و دنبال SQlserver روی دستگاه فعلی می گرده در این حالت باید نام یا آی پی دستگاهی که SQlserver روش نصبه داده بشه تا در همه جای شبکه قابل استفاده باشه .

----------


## سنبله کار

> با سلام
> 
> دوستان من چگونه می توانم از تاریخ شمسی در اکسس پروجکت استفاده کنم . ظاهرا اکسس پروجکت مانند اکسس نیست اگر دوستان لطف کنند و راهنمایی بفرمایند ممنون می شوم.  مثلا چگونه باید در sql یک فانکشن بنویسم و در sp ها و گزارشات از آن استفاده کنم (بازه زمانی دو تاریخ را به دست بیاورم و غیره) با چه نوعی در جدول ذخیره کنم . امیدوارم این سئوال راهنمایی باشد برای همگان.
> با تشکر از همه


اینجا آقای صارمی زحمتشو کشیدن https://barnamenevis.org/showpo...40&postcount=4

----------

