گروه مقاله : اکسس
تاريخ انتشار : 1395/07/21 - 18:51
كد :7194

آموزش اکسس مفدماتی قسمت 3

یک بانک کامل از نمونه های ساده در اکسس 2010 را توضیح خواهیم داد.

آموزش اکسس مقدماتی قسمت 3

آموزش بانک داده ی دانش آموزان

با باز کردن برنامه اکسس 2010 شما پنجره زیر را خواهید دید.

 

اینبار بجای ایجاد یک بانک خالی به سراغ گذینه ی sample بروید. و بانک دانش آموزان را انتخاب کنید. students.

 

و در پنجره ی بعدی از کادر بالای زرد رنگ دکمه ی Enable content برای فعال شدن محتوا را فعال کنید. این محتوای بانک را فعال می کند . در واقع این دکمه به دستورات موجود در فرم ها اجازه ی اجرا می دهد. نگران نباشید این کد ها امن هستند. از جایی غیر از ماکروسافت بانک دانلود نکنید.

جداول این بانک شامل دو جدول می باشند.

جدول اول : جدول قیم ها.

جدول دوم : جدول دانش آموزان است:

ارتباط این جداول بصورت زیر تعریف می گردد.

گام بعدی تولید کوئری هاست .

برای تولید کوئری از منوی create گزینه query Design را انتخاب کنید. و از سمت چپ sql view را زده و کد زیر را وارد کنید.

 

SELECT IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[Last Name] & ", " & [First Name])) AS [File As], IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name])) AS [Contact Name], Guardians.*
FROM Guardians
ORDER BY IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[Last Name] & ", " & [First Name])), IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name]));
 

این کوئری با نام Guardians Extended ذخیره شده است.

کوئری دوم با کد

SELECT IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[Last Name] & ", " & [First Name])) AS [File As], IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name])) AS [Student Name], Students.*
FROM Students
ORDER BY IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[Last Name] & ", " & [First Name])), IIf(IsNull([Last Name]),IIf(IsNull([First Name]),[Company],[First Name]),IIf(IsNull([First Name]),[Last Name],[First Name] & " " & [Last Name]));

این کوئری به نام  Students Extended ذخیره شده است.

توضیح دستورات sql را در اینجا ببینید .

گام بعدی ایجاد گذارش هاست برای ایجاد گذارش از منوی create>Report design را انتخاب کنید. و برای افزودن جداول جدول Guardians را انتخاب کنید.

 

برای درج تاریخ و ساعت از دستورات vba کمک گرفته شده است در درس های بعدی این دستورات بطور کامل توضیح داده می شود ولی برای درک بهتر لازم است دستوراتی را که اینجا استفاده شده اند را با هم مرور کنیم

این دستور تاریخ سیستم را می گیرد جالب اینجاست که اگر از اکسس به عنوان بانک وبسایت خود : =Date()

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

 این دستور ساعت سیستم را می خواند : =Time()

و کد :

=IIf([Report].[Filter]<>"" And [Report].[FilterOn];Replace("Filtered to show: |";"|";[Report].[Filter]))

این کد هم از دستورات vba است عبارت iif برای درج اگر ها به کار میرود معنی عبارت بالا می شود .

اگر Report].[Filter]] تهی نبود و اگر [FilterOn].[Report] دارای مقدار بود فیلتر را با دستور نمایش جایگزین کن و اگر گذارش ها تهی بود گذارش را فیلتر کن.

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

 

گذارش بعدی دارو ها و حساسیت هاست که طبق گذارش زیر تهیه می گردد.

گذارش بعدی : گذارش تماس در شرایط اضطراری است این گذارش هم با همان تکنیک قبل بصورت زیر تهیه می شود.

گذارش بعدی : گذارش آدرس دانش آموزان که طبق تصویر زیر خواهد بود.

قسمتی که با عبارت us پر شده عبارت

=UCase(Left(Nz([File As]);1))

است که عبارات را بصورت حروف بزرگ در می آورد.

برای گذارش بعدی : گذارش تلفن دانش آموزان است :

گزارش بعدی ، گزارش سطح دانش آموزان است.

 

گزارش بعدی ف گزارش دانش آموزان بر حسب اتاق است.

 

 

گام بعدی درج فرم هاست

1. فرم جزئیات دانش آموزان

این فرم دارای کد های حرفه ای Vba است . توضیحات آن را در زیر می بینید.

=Nz([Student Name];"Untitled")

این دستور اگر نام دانش آموز تهی باشد بجای تهی واژه ی untitled قرار داده می شود

=IIf(DCount("*";"[Students Extended]";"[ID]<>" & Nz([ID];0) & " And [Student Name] = '" & Replace(Nz([Student Name]);"'";"''") & "'")>0;"Possible Duplicate";"")

این دستور یک عبارت دستوری if است که از DCount برای محاسبه تعداد دانش آموزان بهره گرفته

DCount ( expr , domain [, criteria] )

expression  عبارت یا فیلدی است که باید محاسبه شود .

domain : دامنه ای است که محاسبه در آن انجام می شود.

criteria: شرطی است که برای محاسبه می گذاریم

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

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><UserInterfaceMacro Event="OnLoad"><Statements><ConditionalBlock><If><Condition>IsNull([OpenArgs])</Condition><Statements><Action Name="StopMacro"/></Statements></If></ConditionalBlock><Action Name="GoToRecord"><Argument Name="Record">New</Argument></Action><ConditionalBlock><If><Condition>Not [CurrentProject].[IsTrusted]</Condition><Statements><Action Name="StopMacro"/></Statements></If></ConditionalBlock><Action Name="SetTempVar"><Argument Name="Name">NewData</Argument><Argument Name="Expression">Mid(Nz([OpenArgs]),InStr(Nz([OpenArgs]),"=")+1)</Argument></Action><Action Name="SetTempVar"><Argument Name="Name">Space</Argument><Argument Name="Expression">InStrRev([TempVars]![NewData]," ")</Argument></Action><Action Name="OnError"/><ConditionalBlock><If><Condition>[TempVars]![Space]=0 And [TempVars]![NewData]&lt;&gt;""</Condition><Statements><Action Name="SetValue"><Argument Name="Item">[Last Name]</Argument><Argument Name="Expression">[TempVars]![NewData]</Argument></Action></Statements></If></ConditionalBlock><ConditionalBlock><If><Condition>[TempVars]![Space]&gt;0</Condition><Statements><Action Name="SetValue"><Argument Name="Item">[First Name]</Argument><Argument Name="Expression">Left([TempVars]![NewData],[TempVars]![Space]-1)</Argument></Action><Action Name="SetValue"><Argument Name="Item">[Last Name]</Argument><Argument Name="Expression">Mid([TempVars]![NewData],[TempVars]![Space]+1)</Argument></Action></Statements></If></ConditionalBlock><Action Name="RemoveTempVar"><Argument Name="Name">NewData</Argument></Action><Action Name="RemoveTempVar"><Argument Name="Name">Space</Argument></Action></Statements></UserInterfaceMacro></UserInterfaceMacros>

و همینجا این تمرین رابه پایان می رسانیم .

نظرات كاربران :