PDA

View Full Version : آموزش Access Project



شاپرک
دوشنبه 26 دی 1384, 07:43 صبح
سئوال چرا 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/

شاپرک
دوشنبه 03 بهمن 1384, 15:23 عصر
نمی تونم فایل 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
دوشنبه 03 بهمن 1384, 16:17 عصر
فایل ade مثل فایلmdb هستش که جلوی desin و آیتم های دیگه ای که تو اکسس معمولی با هاش برخورد داشتین رو میگیره اگه منظورتون اینه توضیح بدم

شاپرک
سه شنبه 04 بهمن 1384, 07:37 صبح
mde یا mdb ?
من منظورم mde

sarami
سه شنبه 04 بهمن 1384, 12:45 عصر
ییخشید ADE انقدر این پسوندها زیاد شدن که گاهی وقتا قاطی میکنه ادم

شاپرک
سه شنبه 04 بهمن 1384, 13:52 عصر
چرا error میده ؟

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

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

once4ever
سه شنبه 16 اسفند 1384, 13:06 عصر
آیا این Access Project شبکه رو هم ساپورت میکنه
یعنی مدیریت رکوردها برای یوزرهای همزمان و....
(فکر کنم Access همچین کاری نمیکرد یعنی برای شبکه ساخته نشده بود)

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

سنبله کار
سه شنبه 16 اسفند 1384, 13:19 عصر
Access هم شبکه را ساپورت می کند اما Access Project خیلی بهتر

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

سنبله کار
چهارشنبه 17 اسفند 1384, 08:13 صبح
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
پنج شنبه 18 اسفند 1384, 10:49 صبح
با سلام :
من با اکسس پروجکت میخوام وقتی یه فرم داره رکوردها رو از اسکیوال سرور لود میکنه فقط تعداد محدودی از رکوردها رو لود کنه و وقتی مثلا 20 تای اول رو لود کرد و کاربر بعد از رکورد 20 رو خواست با دکمه نکست که میزنه 20 تای بعدی رو براش بیاره - البته منظور من استفاده از MAX RECORD نیست
بلکه میخوام بدونم چطور میتونم CACHESIZE رو تغییر بدم تا سیستم خودش این کار رو انجام بده -

moustafa
پنج شنبه 18 اسفند 1384, 21:19 عصر
یک سایت انگلیسی توپ برای accessproject & vba

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

moustafa
چهارشنبه 22 شهریور 1385, 19:09 عصر
error در اغاز ساخت یه پروژه :
1- نشناختن نام سرور یا معرفی غلط

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

moustafa
جمعه 24 شهریور 1385, 22:56 عصر
پیشنهاد می کنم این قسمت نیز با ابجکتهای ازقبیل جدوال -کوئری ها - رابطه ها- فرمها -گزارشات و ماکروها دسته بندی و به اموزش و تشریح ان پرداخته شود

moustafa
جمعه 24 شهریور 1385, 23:11 عصر
ماکروهای مختص 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
جمعه 24 شهریور 1385, 23:45 عصر
دوست و سرور گرامی
اگر لطف کنید نحوه نصب SQL Desk Engine رو هم بفرمایید من از پوشه 2000 MSDE سعی کردم اون فایل رو نصب کنم اما با مشکل برخوردم . البته قبلا اونو نصب کرده بودم اما اینبار نشد .

moustafa
جمعه 24 شهریور 1385, 23:52 عصر
مشکلش چیه ؟
خود اس کیو ال سرور رو نمی تونی نصب کنی ؟

Mahsa Hatefi
جمعه 24 شهریور 1385, 23:56 عصر
بله . طبق help خودش از توی commandPrompWindow دستورات نصب رو اجرا کردم پروگرس بار دو بار تا آخر می ره ولی بعد از کمی مکث برمی گرده انگار اون مقداری رو که نصب کرده رو پاک می کنه هیچ پیامی هم نمی ده

moustafa
شنبه 25 شهریور 1385, 00:00 صبح
یدفعه اس کیوال سرور رو نصب کن خودتو راحت کن ،من همین مشکل رو داشتم

Mahsa Hatefi
شنبه 25 شهریور 1385, 00:13 صبح
منظورتون اسکیوال سرور2005 از روی سی دی جداگانه است؟
--------------------
نمی دونم چرا نمی تونم بیش از یکی دو خط پست کنم پیام می دهد آدرس مورد نظر وجود ندارد

moustafa
شنبه 25 شهریور 1385, 00:18 صبح
2000 از روی سی دی جداگانه
2005 جا نیفتاده ،کمتر کسی هم کارکرده ولی با 2000 دوستانمون در همین بخش پروژه های بزرگ پیاده سازی کردند و به ان مسلطتر هستند بنابراین ساپورتش بیشتر

Mahsa Hatefi
شنبه 25 شهریور 1385, 00:27 صبح
دوست من تشکر می کنم
من مدتی پیش شروع کردم به کار با اکسس پروجکت یه کار آزمایشی هم انجام دادم اما با انتقالش به یه سیستم دیگه با مشکل مواجه شدم برای همین دنبالشو رها کردم
--------------------
دوست من تشکر می کنم
من مدتی پیش شروع کردم به کار با اکسس پروجکت یه کار آزمایشی هم انجام دادم
--------------------
اما با انتقالش به یه سیستم دیگه با مشکل مواجه شدم برای همین دنبالشو رها کردم
--------------------
اما راستش یه فایل اکسس تهیه کرده بودیم که دوسال باش کار شده حالا رکورداش اونقدر زیاد شده که سرعت خیلی پایین اومده برای همین تصمیم دارم به اکسس پروجکت تبدیلش کنم . امیدوارم کمک کنید
--------------------
معذرت می خوام نمی دونم چرا نمی شه بیش از یکی دو خط پست کرد ؟ برای همین تکه تکه پست کردم

moustafa
شنبه 25 شهریور 1385, 00:39 صبح
هر کاری مشکلات خودش رو داره ،بهتره مشکلات مربوطه را جهت تجربه وکمک دوستان در اینجا مطرح کنید
متشکرم

Mahsa Hatefi
شنبه 25 شهریور 1385, 00:41 صبح
بازهم متشکرم

ITST-1
شنبه 25 شهریور 1385, 09:40 صبح
با سلام

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

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

سنبله کار
شنبه 25 شهریور 1385, 10:02 صبح
با سلام

دوستان من چگونه می توانم از تاریخ شمسی در اکسس پروجکت استفاده کنم . ظاهرا اکسس پروجکت مانند اکسس نیست اگر دوستان لطف کنند و راهنمایی بفرمایند ممنون می شوم. مثلا چگونه باید در sql یک فانکشن بنویسم و در sp ها و گزارشات از آن استفاده کنم (بازه زمانی دو تاریخ را به دست بیاورم و غیره) با چه نوعی در جدول ذخیره کنم . امیدوارم این سئوال راهنمایی باشد برای همگان.
با تشکر از همه
اینجا آقای صارمی زحمتشو کشیدن http://barnamenevis.org/forum/showpost.php?p=262640&postcount=4