سایت تخصصی حسابداران خبره ایران

ارائه مطالب تخصصی حسابداری و حسابرسی و قوانین

آموزش اکسسسسس

آموزش اکسس (بخش اول)

نوشته شده در تاریخ: شنبه,3 آبان 1384


تعریف کلی از اکسسAccess اکسس ابزاری برای تولید بانکهای اطلاعاتی رابطه ای است. بانکهای اطلاعاتی امکان گردآوری انواع اطلاعات را برای ذخیره ‌سازی ،جستجو و بازیابی فراهم می‌کند.
اجزا بانک اطلاعاتی اکسس عبارتند از:

DataBase:

1. Table
2. Query
3. Form
4. Report
5. Macros
6. Modules

‏‏Table :(جدول ) هر جدول برای نگهداری داده‌های خام بانک اطلاعاتی است.داده‌ها را شما در جدول وارد می‌کنید.جداول سپس این داده‌ها را به شکل سطرها و ستونهایی سازماندهی میکند.

• Query :
هر پرس و جو برای استخراج اطلاعات مورد نظر از یک بانک اطلاعاتی مورد استفاده قرار می‌گیردهر پرس و جو می‌تواند گروهی از رکوردها را که شرایط خاص دارا هستند انتخاب کند.پرس و جوها را می‌توان بر اساس جداول یا پرس و جوهای دیگر اماده نمود. با استفاده از پزس‌وجوها می‌توان رکوردهای بانک اطلاعاتی را انتخاب کرد، تغییر داد و یا حذف نمود.

• Form :
متداولترین روش استفاده از فرمها،برای ورود و نمایش داده‌ها است.

• Report :
گزارش ها می‌توانند بر اساس جدول ،پرس‌وجوها باشند ،قابلیت گزارش چاپ داده‌ها می‌باشدگزارشها را می‌توان بر اساس چند جدول و پرس‌وجو تهیه نمود تا رابطه بین داده‌ها را نشان داد.

• Macro :
ماکروها به خودکار کردن کارهای تکراری ،بدون نوشتن برنامه‌های پیچیده یا فراگیری یک زبان برنامه نویسی ، یاری می‌کند، در واقع ماکروها یکسری قابلیت‌هایی هستند که امکان سریع سازی را فراهم می‌سازند.

• Modules :
محیط بسیار قوی و با کیفیت برای برنامه‌نویسی محاسبات و عملیات پیچیده روی سیستم بانک اطلاعاتی.
-----------------------------------
الف ‌- تعریف دادهData : هرگونه اطلاعات لازم و کاربردی درباره یک موجودیت را یک داده می‌گویند.
ب‌- تعریف Fild : به هر ستون یک جدول که در بر گیرنده کلیه اطلاعات مربوط به آن ستون می‌باشد و بخشی از یک موجودیت را تشگیل میدهد فیلد گفته می‌شود.
ت‌- تعریف Record : به هر سطر یک جدول که اطلاعات مربوط به یک موجودیت را نشان می‌دهد ، رکورد گویند.
ث‌- تعریف پایگاه داده‌ای ارتباطی: پایگاه داده‌های ارتباطی، مجموعه‌ای از جدول‌های داده است که یک فیلد مشترک در هر یک از جدولهای موجود دارد و از طریق آن می‌توان داده‌ها را بهم ربط داد.به این مدل از پایگاه داده‌ها ، پایگاه داده‌های ارتباطی RelationShip می‌گویند.

آموزش اکسس (بخش دوم)

نوشته شده در تاریخ: پنج شنبه,10 آبان 1384


تابع تبدیل عدد به حروف مقدمه : در این یادداشت تابع مربوط به تبدیل عدد به معادل حروفی آن ارائه می کنم . عمدتا در سیستم های مالی و حسابداری نیاز است معادل حروفی اعداد هم نمایش داده شده یا چاپ شوند که توابع زیر این نیاز را پاسخ می دهد. مثلا برای چاپ یک چک روی خود برگه چک ، علاوه بر نیاز به چاپ مبلغ عددی چک لازمست تا مبلغ حروفی چک هم روی برگه چاپ شود.
نحوه استفاده از تابع : تابع Adad که در زیر ارائه شده است یک عدد را بعنوان ورودی گرفته و معادل حروفی آن عدد در زبان فارسی را بعنوان خروجی تولید می کند. مثلا (Adad(1373 مقدار"یکهزار و سیصد و هفتاد و سه" را بعنوان خروجی تولید می کند.برای استفاده از این توابع باید از چند خط پایین تر (Start of Module) تا انتهای این یادداشت را در حافظه کپی (Copy) کرده و در یک ماجول جدید در اکسس یا VB ، Paste کنید . ( توجه داشته باشید که نمایش کدهای نوشته شده در اینجا راست به چپ است که پس از کپی کردن آن در ماجول اکسس بشکل صحیح نمایش داده خواهد شد)



' *********** Start of Module ***********

'توابع تبدیل عدد به معادل حروفی آن در زبان فارسی
'برنامه نویس : حمید آزادی اردکانی
'ویرایش اول : اردیبهشت 1380
' پست الکترونیک : azadi1355@yahoo.com
' آدرس وب : http://try.persianblog.com

Function Adad(ByVal Number As Double) As String
If Number = 0 Then
Adad = "صفر"
End If
Dim Flag As Boolean
Dim S As String
Dim I, L As Byte
Dim K(1 To 5) As Double

S = Trim(Str(Number))
L = Len(S)
If L > 15 Then
Adad = "بسیار بزرگ"
Exit Function
End If
For I = 1 To 15 - L
S = "0" & S
Next I
For I = 1 To Int((L / 3) + 0.99)
K(5 - I + 1) = Val(Mid(S, 3 * (5 - I) + 1, 3))
Next I
Flag = False
S = ""
For I = 1 To 5
If K(I) <> 0 Then
Select Case I
Case 1
S = S & Three(K(I)) & " تریلیون"
Flag = True
Case 2
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیارد"
Flag = True
Case 3
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " میلیون"
Flag = True
Case 4
S = S & IIf(Flag = True, " و ", "") & Three(K(I)) & " هزار"
Flag = True
Case 5
S = S & IIf(Flag = True, " و ", "") & Three(K(I))
End Select
End If
Next I
Adad = S
End Function


Function Three(ByVal Number As Integer) As String
Dim S As String
Dim I, L As Long
Dim h(1 To 3) As Byte
Dim Flag As Boolean
L = Len(Trim(Str(Number)))
If Number = 0 Then
Three = ""
Exit Function
End If
If Number = 100 Then
Three = "یکصد"
Exit Function
End If

If L = 2 Then h(1) = 0
If L = 1 Then
h(1) = 0
h(2) = 0
End If

For I = 1 To L
h(3 - I + 1) = Mid(Trim(Str(Number)), L - I + 1, 1)
Next I

Select Case h(1)
Case 1
S = "یکصد"
Case 2
S = "دویست"
Case 3
S = "سیصد"
Case 4
S = "چهارصد"
Case 5
S = "پانصد"
Case 6
S = "ششصد"
Case 7
S = "هفتصد"
Case 8
S = "هشتصد"
Case 9
S = "نهصد"
End Select

Select Case h(2)
Case 1
Select Case h(3)
Case 0
S = S & " و " & "ده"
Case 1
S = S & " و " & "یازده"
Case 2
S = S & " و " & "دوازده"
Case 3
S = S & " و " & "سیزده"
Case 4
S = S & " و " & "چهارده"
Case 5
S = S & " و " & "پانزده"
Case 6
S = S & " و " & "شانزده"
Case 7
S = S & " و " & "هفده"
Case 8
S = S & " و " & "هجده"
Case 9
S = S & " و " & "نوزده"
End Select

Case 2
S = S & " و " & "بیست"
Case 3
S = S & " و " & "سی"
Case 4
S = S & " و " & "چهل"
Case 5
S = S & " و " & "پنجاه"
Case 6
S = S & " و " & "شصت"
Case 7
S = S & " و " & "هفتاد"
Case 8
S = S & " و " & "هشتاد"
Case 9
S = S & " و " & "نود"
End Select

If h(2) <> 1 Then
Select Case h(3)
Case 1
S = S & " و " & "یک"
Case 2
S = S & " و " & "دو"
Case 3
S = S & " و " & "سه"
Case 4
S = S & " و " & "چهار"
Case 5
S = S & " و " & "پنج"
Case 6
S = S & " و " & "شش"
Case 7
S = S & " و " & "هفت"
Case 8
S = S & " و " & "هشت"
Case 9
S = S & " و " & "نه"
End Select
End If
S = IIf(L < 3, Right(S, Len(S) - 3), S)
Three = S
End Function

آموزش اکسس (بخش سوم)

نوشته شده در تاریخ: جمعه,23 آبان 1384


در این یادداشت روش غیرفعال کردن دکمه Shift به هنگام باز شدن فایلهای اکسس را توضیح خواهم داد . در ابتدا باید مقدمه ای را عنوان کنم.
مقدمه مطلب زیر در زمینه افزایش امنیت سیستم ها است. نکته ای که در زمینه امنیت هر نوع سیستمی باید به آن توجه داشت اینست که بطور کلی امنیت یک امر نسبی است . بعبارت دیگر یک راه حل امنیتی ، قطعا جلوی بسیاری از حملات علیه سیستم را خواهد گرفت ولی هیچگاه بطور کامل حملات را خنثی نخواهد کرد و همیشه حفره های امنیتی وجود خواهند داشت . در یادداشت قبل گفتیم که به هنگام باز شدن فایلهای اکسس، Startup اجراء می شود . به کمک گزینه های Startup می توانیم از دسترسی کاربران به محیط طراحی برنامه جلوگیری کنیم . ولی همانطور که قبلا گفته شد میکرو سافت با انگیزه ایجاد سیستم امنیتی چند مرحله ای یک روش ضد امنیتی برای آن ایجاد کرده است و کاربران برنامه ما می توانند با پایین نگه داشتن دکمه Shift از اجراء Startup جلوگیری کنند و وارد محیط طراحی شوند . حال اگر بخواهیم دکمه شیفت را غیر فعال کنیم تا کسی نتواند وارد محیط طراحی شود باید به این طریق عمل کرد :
استفاده از خاصیت AllowByPassKey خاصیت AllowByPassKey یکی از خواص شیء Database است که: اگر مقدار آن True باشد دکمه شیفت فعال است . و اگر مقدار آن False باشد دکمه شیفت غیر فعال است .
این خاصیت عملا در لیست خواص یک Database نیست و باید آنرا فقط برای اولین بار ایجاد (Create) کرد . بعد از ایجاد آن می توان مقدار آنرا False یا True کرد .
تذکر : حتما یک کپی از فایل خودتان قبل از اجراء این برنامه بردارید چون ممکن است دیگر نتوانید وارد محیط برنامه خودتان شوید . من هم با عرض معذرت وقت پاسخگویی به ایمیل های دوستان را ندارم و دچار مشکل خواهید شد.
سه دکمه روی یک فرم مطابق شکل بالا ایجاد کنید و کدهای زیر را در آن بنویسد.
(
نمایش کدهای نوشته شده مناسب نیست ولی اگر آنرا در حافظه کپی کنید و در ماجول فرمتان کپی کند بدرستی تمایش داده می شود .)



'برای اولین دفعه :
Private Sub Create_Click()
On Error GoTo Er

Dim db As Database
Dim prp As Property
Set db = CurrentDb
Set prp = db.CreateProperty("allowbypasskey", dbBoolean, False)
db.Properties.Append prp
db.Close

Ex:
Exit Sub
Er:
If Err.Number = 3367 Then
MsgBox "این خاصیت ایجاد شده و لازم نیست مجددا ایجاد شود"
End If
Resume Ex

End Sub

'جهت غیر فعال کردن شیفت
Private Sub ShiftNo_Click()
Dim db As Database
Set db = CurrentDb
db.Properties("allowbypasskey") = False
db.Close
End Sub

'جهت فعال کردن شیفت
Private Sub ShiftOk_Click()
Dim db As Database
Set db = CurrentDb
db.Properties("allowbypasskey") = True
db.Close
End Sub

آموزش اکسس (بخش چهارم)

نوشته شده در تاریخ: یک شنبه,10 آذر 1384


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

(
توجه داشته باشید که در زیر کدهای نوشته شده از راست به چپ نمایش داده می شوند)
جواب دوست ما: در رویداد OnError مربوط به فرم ورود اطلاعات این کد را می نویسیم:


If DataErr = 3022 Then
MsgBox "
اطلاعات وارده تکراری است"
Response = acDataErrContinue
End If


جواب کلی : اساسا ، هر خطا در اکسس یا VB یک کد تولید می کند . برنامه نویسان باید یک بانک اطلاعات از کد خطاهایی که رخ می دهد داشته باشند تا بتوانند با چک کردن شماره خطا پیغام فارسی مناسب آن خطا را صادر کنند .
بطور کلی دو روش کنترل خطا از این قرارند:

1-
اگر خطا مربوط به کل فرم باشد باید از طریق رویداد OnError فرم کنترل شود . معمولا خطاهایی که مربوط به کدنویسی ما نبوده و صرفا توسط اکسس و در واکنش به اشتباهات کاربر صادر می شود در این رویداد کنترل می شود . در این رویداد ، پارامتر DataErr حاوی کد خطاست. (بعبارت واضح تر اگر می خواهید کد مربوط به هر Error را شناسایی کنید می توانید این دستور در رویداد OnError فرم بنویسید: MsgBox DataErr )
بطور کلی بعد از اینکه کد خطاها را شناسایی کردید با نوشتن قالب برنامه زیر در رویداد OnError فرم می توانید خطاها را کنترل کنید :


Dim Str as String

Select Case DataErr
Case 3022
Str="
اطلاعات وارده تکراری است"
Case 2237


Str = "
اطلاعات وارده در لیست وجود ندارد"
'
خط فوق برای مواردی است که یک مقداری که در کمبو باکس وجود ندارد ، تایپ شده باشد


Case ...
Str=...
....
End Select

Msgbox Str
Response = acDataErrContinue



2-
اگر خطا مربوط به کدهایی باشد که خودمان در یک Sub نوشته ایم : در این روش باید در ابتدای Sub با دستور : <اسم زیر روال کنترل خطا> On Error Goto ، کنترل خطا را به یک روال کنترل خطا ارجاع دهیم.
(
تمام کدهایی که ویزارد Command Button بطور خودکار در رویداد OnClick دکمه ها ایجاد می کند نمونه خوبی برای این روش هستند. ضمنا در این روش بکمک Err.Number کد خطا شناسایی می شود )

آموزش اکسس (بخش پنجم)


ماجول تاریخ هجری شمسی با توابع جانبی آن در بانک اطلاعاتی Access فیلدهای نوع Date پاسخگوی نیاز کاربران فارسی که با تاریخ هجری شمسی کار می کنند نیست . البته برنامه هایی مثل پارسا ۹۹ تقویم سیستم را به تقویم هجری شمسی تبدیل می کند و بعد از آن کاربران فارسی می توانند از فیلدهای نوع Date اکسس استفاده کنند .بدین ترتیب پارسا مشکل تاریخ هجری شمسی را حل میکند ولی بعضا تاریخ شمسی سیستم بنا به دلایلی از بین میرود . مثلا اگربعد از نصب پارسا، Officeنصب شود تاریخ هجری شمسی سیستم به هم می خورد. برای رهایی از وابستگی برنامه های شما به پارسا و ... ، توابع زیر می تواند مشکل شما را بطور کامل حل کند . این ماجول در چندین برنامه تست شده و جواب گرفته است شما هم می توانید از آن استفاده کنید.
(
توجه داشته باشید که کدهای نوشته شده ، در اینجا از چپ به راست نمایش داده شده اند ولی با کپی آن در اکسس ، نمایش آن از چپ به راست خواهد شد)
در صورت استفاده از این ماجول ، فیلدهای از نوع تاریخ را باید از نوع Number تعریف کنید. توضیحات بیشتر جهت استفاده از ماجول ، درون خود ماجول نوشته شده است. برای استفاده از این ماجول ، از دو خط پایین تر تا انتهای متن را در حافظه کپی کرده (Copy) و سپس در یک ماجول جدید در اکسس یا VB قرار دهید (Paste):

- تعریف کنید Number(Long) است را بصورت Date فیلدهایی که نوع آنها
' 2-
این فیلدها را بصورت 00/00/00 تنظیم کنید InputMask خاصیت
'
بدلیل 6 رقمی در نظر گرفتن فیلد تاریخ ، این توابع تا سال 1399 کارایی دارد
' ...
'
تاریخ جاری سیستم را به هجری شمسی تبدیل می کند Shamsi() تابع
'
بکار ببرید Now() را می توانید در گزارشات بجای تابع Dat() تابع
' :
برای جلوگیری از ورود تاریخ غلط به درون یک فیلد بترتیب زیر عمل میکنید
' :
بشکل زیر بکار ببرید ValidationRule را در خاصیت ValidDate() تابع
' ValidDate([
نام فیلد])=True
' ...



'*******************************************
Public Function Rooz(F_Date As Long) As Byte
'این تابع عدد مربوط به روز یک تاریخ را برمگرداند
Rooz = F_Date Mod 100
End Function
'*******************************************
Function Mah(F_Date As Long) As Byte
'این تابع عدد مربوط به ماه یک تاریخ را برمگرداند
Mah = Int((F_Date Mod 10000) / 100)
End Function
'*******************************************
Public Function Sal(F_Date As Long) As Byte
'این تابع عدد مربوط به سال یک تاریخ را برمگرداند
Sal = Int(F_Date / 10000)
End Function
'*******************************************
Public Function Kabiseh(ByVal OnlySal As Variant) As Byte
'ورودی تابع عدد دورقمی است
'این تابع کبیسه بودن سال را برمیگرداند
'اگر سال کبیسه باشد عدد یک و درغیر اینصورت صفر را بر میگرداند
Kabiseh = 0
If OnlySal >= 75 Then
If (OnlySal - 75) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
ElseIf OnlySal <= 70 Then
If (70 - OnlySal) Mod 4 = 0 Then
Kabiseh = 1
Exit Function
End If
End If

End Function
'*******************************************
Function ValidDate(F_Date As Long) As Boolean
Dim M, S, R As Byte
' این تابع اعتبار یک عدد ورودی را از نظر تاریخ هجری شمسی بررسی می کند
' را برمی گرداند False واگر نامعتبر باشد True اگر تاریخ معتبر باشد
ValidDate = True
S = Sal(F_Date)
M = Mah(F_Date)
R = Rooz(F_Date)
'********
If F_Date < 100101 Then
ValidDate = False
Exit Function
End If

If M > 12 Or M = 0 Or R = 0 Then
ValidDate = False
Exit Function
End If

If R > MahDays(S, M) Then
ValidDate = False
Exit Function
End If
End Function
'*******************************************
Public Function AddDay(ByVal F_Date As Long, ByVal add As Integer) As Long
Dim K, M, S, R, Days As Byte
R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

'تبدیل روز به عدد 1 جهت ادامه محاسبات و یا اتمام محاسبه
Days = MahDays(S, M)
If add > Days - R Then
add = add - (Days - R + 1)
R = 1
If M < 12 Then
M = M + 1
Else
M = 1
S = S + 1
End If
Else
R = R + add
add = 0
End If

While add > 0
K = Kabiseh(S) 'کبیسه: 1 و غیر کبیسه: 0
Days = MahDays(S, M) 'تعداد روزهای ماه فعلی
Select Case add
Case Is < Days
'اگر تعداد روزهای افزودنی کمتر از یک ماه باشد
R = R + add
add = 0
Case Days To IIf(K = 0, 365, 366) - 1
'اگر تعداد روزهای افزودنی بیشتر از یک ماه و کمتر از یک سال باشد
add = add - Days
If M < 12 Then
M = M + 1
Else
S = S + 1
M = 1
End If
Case Else
'اگر تعداد روزهای افزودنی بیشتر از یک سال باشد
S = S + 1
add = add - IIf(K = 0, 365, 366)
End Select
Wend
AddDay = (S * 10000) + (M * 100) + (R)

End Function

'***********************************************
Public Function Shamsi() As Long
'تاریخ جاری سیستم را به تاریخ هجری شمسی تبدیل می کند
Dim Shamsi_Mabna As Long
Dim Miladi_mabna As Date
Dim Dif As Long
'در اینجا 80/10/11 با 2002/01/01 معادل قرارداده شده
Shamsi_Mabna = 791012
Miladi_mabna = #1/1/01#
Dif = DateDiff("d", Miladi_mabna, Date)
If Dif < 0 Then
MsgBox "تاریخ جاری سیستم شما نادرست است , آنرا اصلاح کنید."
Else
Shamsi = AddDay(Shamsi_Mabna, Dif)
End If
End Function
'***********************************************
Public Function DayWeek(F_Date As Long) As String
Dim a As String
Dim N As Byte
N = DayWeekNo(F_Date)
Select Case N
Case 0
a = "شنبه"
Case 1
a = "یکشنبه"
Case 2
a = "دوشنبه"
Case 3
a = "سه‌شنبه"
Case 4
a = "چهارشنبه"
Case 5
a = "پنج‌شنبه"
Case 6
a = "جمعه"
End Select
DayWeek = a
End Function

'***********************************************
Public Function Dat()
Dim D As Long
D = Shamsi
Dat = DayWeek(D) & " 13" & Sal(D) & "/" & Mah(D) & "/" & Rooz(D)
End Function

'***********************************************
Public Function Diff(ByVal FromDate As Long, ByVal To_Date As Long) As Long
'این تابع تعداد روزهای بین دو تاریخ را ارائه می کند
Dim Tmp As Long
Dim S1, M1, r1, S2, m2, r2 As Integer
Dim Sumation As Single
Dim Flag As Boolean
Flag = False
If FromDate = 0 Or IsNull(FromDate) = True Or To_Date = 0 Or IsNull(To_Date) = True Then
Diff = 0
Exit Function
End If

If FromDate > To_Date Then
'اگر تاریخ شروع از تاریخ پایان بزرگتر باشد آنها موقتا جابجا می شوند
Flag = True
Tmp = FromDate
FromDate = To_Date
To_Date = Tmp
End If
r1 = Rooz(FromDate)
M1 = Mah(FromDate)
S1 = Sal(FromDate)
r2 = Rooz(To_Date)
m2 = Mah(To_Date)
S2 = Sal(To_Date)
Sumation = 0

Do While S1 < S2 - 1 Or (S1 = S2 - 1 And (M1 < m2 Or (M1 = m2 And r1 <= r2)))
'اگر یک سال یا بیشتر اختلاف بود
If Kabiseh((S1)) = 1 Then
If M1 = 12 And r1 = 30 Then
Sumation = Sumation + 365
r1 = 29
Else
Sumation = Sumation + 366
End If
Else
Sumation = Sumation + 365
End If
S1 = S1 + 1
Loop

Do While S1 < S2 Or M1 < m2 - 1 Or (M1 = m2 - 1 And r1 < r2)
'اگر یک ماه یا بیشتر اختلاف بود
Select Case M1
Case 1 To 6
If M1 = 6 And r1 = 31 Then
Sumation = Sumation + 30
r1 = 30
Else
Sumation = Sumation + 31
End If
M1 = M1 + 1
Case 7 To 11
If M1 = 11 And r1 = 30 And Kabiseh(S1) = 0 Then
Sumation = Sumation + 29
r1 = 29
Else
Sumation = Sumation + 30
End If
M1 = M1 + 1
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + 30
Else
Sumation = Sumation + 29
End If
S1 = S1 + 1
M1 = 1
End Select
Loop

If M1 = m2 Then
Sumation = Sumation + (r2 - r1)
Else
Select Case M1
Case 1 To 6
Sumation = Sumation + (31 - r1) + r2
Case 7 To 11
Sumation = Sumation + (30 - r1) + r2
Case 12
If Kabiseh(S1) = 1 Then
Sumation = Sumation + (30 - r1) + r2
Else
Sumation = Sumation + (29 - r1) + r2
End If
End Select
End If

If Flag = True Then
Sumation = -Sumation
End If
Diff = Sumation
End Function

Public Function DayWeekNo(F_Date As Long) As String
'این تابع یک تاریخ را دریافت کرده و مشخص می کند چه روزی از هفته است
'اگر شنبه باشد عدد 0
'اگر 1شنبه باشد عدد 1
'......
'اگر جمعه باشد عدد 6
Dim day As String
Dim Shmsi_Mabna As Long
Dim Dif As Long
'مبنا 80/10/11
Shmsi_Mabna = 801011
Dif = Diff(Shmsi_Mabna, F_Date)
If Shmsi_Mabna > F_Date Then
Dif = -Dif
End If
'با توجه به اینکه 80/10/11 3شنبه است محاسبه میشود day متغیر
day = (Dif + 3) Mod 7
If day < 0 Then
DayWeekNo = day + 7
Else
DayWeekNo = day
End If
End Function


Function MahName(ByVal Mah_no As Byte) As String
Select Case Mah_no
Case 1
MahName = "فروردین"
Case 2
MahName = "اردیبهشت"
Case 3
MahName = "خرداد"
Case 4
MahName = "تیر"
Case 5
MahName = "مرداد"
Case 6
MahName = "شهریور"
Case 7
MahName = "مهر"
Case 8
MahName = "آبان"
Case 9
MahName = "آذر"
Case 10
MahName = "دی"
Case 11
MahName = "بهمن"
Case 12
MahName = "اسفند"
End Select
End Function

Function SalMah(ByVal F_Date As Long) As Integer
'چهار رقم اول تاریخ که معرف سال و ماه است را برمی گرداند
SalMah = Val(Left$(F_Date, 4))
End Function

Function MahDays(ByVal Sal As Byte, ByVal Mah As Byte) As Byte
'این تابع تعداد روزهای یک ماه را برمی گرداند
Select Case Mah
Case 1 To 6
MahDays = 31
Case 7 To 11
MahDays = 30
Case 12
If Kabiseh(Sal) = 1 Then
MahDays = 30
Else
MahDays = 29
End If
End Select

End Function

Function Make_Date(ByVal F_Date As Long) As String
'یک تاریخ را بصورت یک رشته 10 رقمی با ذکر چهار رقم برای سال ارائه می کند
Dim D As String
D = Trim(Str(F_Date))
If IsNull(F_Date) = True Or F_Date = 0 Then
Make_Date = ""
Else
Make_Date = "13" & Mid(D, 1, 2) & "/" & Mid(D, 3, 2) & "/" & Mid(D, 5, 2)
End If
End Function

Function NextMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 12 Then
NextMah = (Int(Sal_Mah / 100) + 1) * 100 + 1
Else
NextMah = Sal_Mah + 1
End If
End Function

Function PreviousMah(ByVal Sal_Mah As Integer) As Integer
If (Sal_Mah Mod 100) = 1 Then
PreviousMah = (Int(Sal_Mah / 100) - 1) * 100 + 12
Else
PreviousMah = Sal_Mah - 1
End If
End Function


Function SubtractDay(ByVal F_Date As Long, ByVal Subtract As Long) As Long
'به تعداد روز معینی از یک تاریخ کم کرده و تاریخ حاصله را ارائه میکند
Dim K, M, S, R, Days As Byte

R = Rooz(F_Date)
M = Mah(F_Date)
S = Sal(F_Date)
K = Kabiseh(S)

'تبدیل روز به عدد 1 جهت ادامه محاسبات و یا اتمام محاسبه
If Subtract >= R - 1 Then
Subtract = Subtract - (R - 1)
R = 1
Else
R = R - Subtract
Subtract = 0
End If

While Subtract > 0
K = Kabiseh(S - 1) 'کبیسه: 1 و غیر کبیسه: 0
Days = MahDays(IIf(M >= 2, S, S - 1), IIf(M >= 2, M - 1, 12)) 'تعداد روزهای ماه قبلی
Select Case Subtract
Case Is < Days
'اگر تعداد روزهای کاهش کمتر از یک ماه باشد
R = Days - Subtract + 1
Subtract = 0
If M >= 2 Then
M = M - 1
Else
S = S - 1
M = 12
End If
Case Days To IIf(K = 0, 365, 366) - 1
'اگر تعداد روزهای کاهش بیشتر از یک ماه و کمتر از یک سال باشد
Subtract = Subtract - Days
If M >= 2 Then
M = M - 1
Else
S = S - 1
M = 12
End If
Case Else
'اگر تعداد روزهای کاهش بیشتر از یک سال باشد
S = S - 1
Subtract = Subtract - IIf(K = 0, 365, 366)
End Select
Wend
SubtractDay = (S * 10000) + (M * 100) + (R)

End Function آموزش اکسس (بخشششم)

Join کردن بیش از ۲ جدول برای Database های Access

کتاب ColSELECT
c.CompanyID,
c.CompanyName,
e.LastName,
e.FirstName,
e.Salary,
d.FullName,
d.RelationShip
FROM
Company c INNER JOIN Employee e
ON c.CompanyID = e.CompanyID
INNER JOIN Dependant d
ON e.SSN = d.SSN


که در بیشتر برنامه های Database Server درست عمل می کند. اما در بانکهای اطلاعاتی Microsoft Access پیغام خطایی با توضیح زیر می دهد :



Operator expected


من پس از یک کم جستجو در کتاب ها و پرسش از دیگران ، یک دوست آمریکایی من راه حل زیر را پیشنهاد داد. در اکسس در برخی قسمت ها وجو د پارانتز الزامی است با اینکه در انواع دیگر بانک های اطلاعاتی نیازی به آن پارانتز ها نیست. یعنی کد مورد نظر را باید به صورت زیر باز نویسی کنیم :



SELECT
c.CompanyID,
c.CompanyName,
e.LastName,
e.FirstName,
e.Salary,
d.FullName,
d.RelationShip
FROM
(Company c INNER JOIN Employee e
ON c.CompanyID = e.CompanyID)
INNER JOIN Dependant d
ON e.SSN = d.SSN


و یک نمونه ی دیگر در اتصال ۴ جدول :



SELECT
cfarticle.id,
cfarticle.title,
cfarticle.description,
cfarticle.dateadded,
editorial.authorname as author,
categories.name,
levels.levelname
FROM
((cfarticle INNER JOIN categories ON cfarticle.category=categories.id)
INNER JOIN editorial ON cfarticle.author=editorial.id)
INNER JOIN levels ON cfarticle.skllevel=levels.id

dFusion MX Bible برای Join کردن بیش از دو جدول یک بانک اطلاعاتی راه حل زیر را پیشنهاد می کند

Access تعریف کلی از اکسس

اکسس ابزاری برای تولید بانکهای اطلاعاتی رابطه ای است . بانکهای اطلاعاتی امکان گردآوری انواع اطلاعات را برای

ذخیره سازی ،جستجو و بازیابی فراهم می کند.

اجزا بانک اطلاعاتی اکسس عبارتند از:

:DataBase

Table .1

Query .2

Form .3

Report .4

Macros .5

Modules .6

جدول) هر جدول برای نگهداری داده های خام بانک اطلاعاتی است.داده ها را شما در جدول وارد ): Table

می کنید.جداول سپس این داده ها را به شکل سطرها و ستونهایی سازماندهی میکند.

هر پرس و جو برای استخراج اطلاعات مورد نظر از یک بانک اطلاعاتی مورد استفاده قرار می گیردهر پرس : Query

و جو می تواند گروهی از رکوردها را که شرایط خاص دارا هستند انتخاب کند .پرس و جوها را می توان بر اساس

جداول یا پرس و جوهای دیگر اماده نمود . با استفاده از پزس وجوها می توان رکوردهای بانک اطلاعاتی را انتخاب

کرد، تغییر داد و یا حذف نمود.

متداولترین روش استفاده از فرمها،برای ورود و نمایش داده ها است. : Form

گزارش ها می توانند بر اساس جدول ،پرس وجوها باشند ،قابلیت گزارش چاپ داده ها می باشدگزارشها را : Repor t

می توان بر اساس چند جدول و پرس وجو تهیه نمود تا رابطه بین داده ها را نشان داد.

ماکروها به خودکار کردن کارهای تکراری ،بدون نوشتن برنامه های پیچیده یا فراگیری یک زبان برنامه : Macro

نویسی ، یاری می کند، در واقع ماکروها یکسری قابلیت هایی هستند که امکان سریع سازی را فراهم می سازند .

محیط بسیار قوی و با کیفیت برای برنامه نویسی محاسبات و عملیات پیچیده روی سیستم بانک اطلاعاتی. : Modules

تکنیک های کار در اکسس

: Data الف - تعریف داده

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

: Fild ب - تعریف

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

تشگیل میدهد فیلد گفته می شود.

: Rcord ت - تعریف

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

ث - تعریف پایگاه داده ای ارتباطی:

پایگاه داده های ارتباطی، مجموعه ای از جدول های داده است که یک فیلد مشترک در هر یک از جدولهای موجود

دارد و از طریق آن می توان داده ها را بهم ربط داد .به این مدل از پایگاه داده ها ، پایگاه داده های ارتباطی

می گویند. RelationShip

به دو صورت زیر می توان یک پایگاه داده رابطه ای ایجاد نمود :

: Database

Blank database .1

Database Wizard .2

Blank Database

قابل طراحی توسط کاربر می باشد . برای ایج اد ………, Table کلیه اشیائ اکسس شامل Blank در صورت انتخاب

را تعیین نمود. Data Base پایگاه داده ابتدا باید نام ومسیر

مشترک میباشد Table, Query, Form گزینه های زیر در اجزا

نمای ورود داده) ) Open .1

نمای طراحی) ) Design .2

ایجاد شئ جدید) ) New .3

دارای گزینه های زیر می باشند: Macros ,modules

اجرا) )Run.1

Design .2

New .3

شامل: Report

پیش نمایش) )Preview .1

Design .2

New .3

Table طراحی جدول

گزینه های زیر قابل استفاده برای طرحی جدول می باشد. New با انتخاب گزینه

Table

:New

DataSheet View .1

Design View .2

Table Wizard .3

Import Table .4

Link Table .5

: DataSheet View

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

در آن موجود می باشد Field تا 10 Field هستند. که از 1

: Open-DataSheet View

در این نما می توان مراحل زیر را انجام داد:

1. وارد کردن داده

2. ویرایش داده ها

3. مشاهده داده ها

4. چاپ کردن داده ها

5. کنترل املای متن

6. تغییر ساختار جدول

7. مرتب کردن رکوردها

8. فیلتر یا صافی روی جدول

9. تغییر صفحه داده ها

: Design View

با استفاده از این نما می توانید ساختار جداول ، فیلدها و خصوصیات را تنظیم نمودو یا مشاهده نمود .

در این نمای طراحی با گزینه های زیر مواجه می شویم :

در قسمت اول پنجره طراحی داریم:

Field Name .1

Data Type .2

Description .3

: Field Properties

General .1

Up Look .2

امکان نام گذاری برای فیلدها را امکان پذیر می سازد :Field Name

قواعد نامگذاری فیلدها

1. نام فیلدها نباید از 64 کاراکتر بیشتر باشد

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

3. در نام فیلد از علامتهایی همچون ] , [ , ? ,! , ) ,( نباید استفاده کرد.

اصل و اساس جدول را مشخص می کند و در واقع نوع داده و اطلاعاتی که در فیلد ذخیره : Data Type

می شود را مشخص می کند.

نوع داده شامل گزینه های زیر می باشد:

نوع داده متنی شامل حرف و عدد که از 1 تا 255 کارکتر را می پذیرد. :Text

نوع داده متنی که 65000 کارکتر حرفی را می پذیرد. : Memo

نوع داده عددی است و برای نگهداری عملیات محاسباتی به کار می رود. : Number

نوع داده تاریخ و زمان که برای مشخص کردن تاریخ و زمان به کار می رود. : Date/Time

نوع داده که برای مقادیر پولی به کار می رود. : Currency

نوع داده که به طور متوالی رقم می اندازد. : AutoNumber

نوع داده به صورت گزینشی : Yes/No

را پشتیبانی می کند ، نگهداری می کند. ole کلیه برنامه های کاربردی که : Ole Object

را نگهداری می کند. Web کلیه سندها و صفحات : HyperLink

امکان انتخاب گزینه ها را به صورت انتخاب از لیست فراهم می کند.این گزینه روی دو نوع : LookUp Wizard

قابل اجرا است و به دو صورت می توان آن را ایجاد نمود : Text,Number داده

Table or Query 1. از

2. ایجاد مقادیر توسط کاربر

ایجاد می گردد. Look Up در هر دو مورد از طریق ویزارد با انتخاب گزینه های مورد نظر به آسانی

: Description

ایجاد توضیحات در مورد فیلدها در صورت لزوم

: Field Properties

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

Table Wizard

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

گزینه های زیر موجود است: Table wizard در قسمت

نمونه جدول توسط این گزینه انتخاب می شود.که بر اساس دو مورد :Sample Tabales .1

Business .A

Personal .B

قابل انتخاب می باشد

نمونه فیلد را تعیین می کند. :Fields Sample .2.

تعیین فیلد برای جدول مورد طراحی توسط دکمه های راهنما. : Fields In My Table .3

NEXT .4

5. در این مرحله انتخاب نام برای جدول و تعیین فیلد کلید اصلی ،در صورتی که پیش فرض را بپذیرید

خود برنامه کلید اصلی ایجاد می کند در غیر این صورت خود باید تعیین نمایید .

NEXT .6

7. در این مرحله می توان نحوه اجرا جدول را تعیین نمود :

Data Enter أ . اجرا در نمای ورود داده

Modify ب . اجرا در نمای طراحی

Finish . ت . اجرا در نمای ورود داده همراه با ایجاد فرم از ان 8

وارد کردن یک فایل از برنامه های تحت آفیس به عنوان جدول : Import Table

پیوند یک فایل از برنامه های تحت آفیس به عنوان جدول : Link Table

آشنایی با خصوصیات فیلدها در محیط طراحی

: Field Size

دارای فیلد سایز می باشند. Text,Number,AutoNumber نوع داده

Field size: 50 Text

مقدار این نوع داده به صورت عددی بوده که بطور پیش فرض مقدار 50 را نشان میدهدبه عبارتی دیگر کنترل کننده

تعداد کارکترهای ورود داده برای فیلد است.

: Format

نحوه نمایش و قالب بندی را کنترل می کند فرمت برای نوع داده های زیر کاربرد دارد:

: Text

: Number,Autonumber,Currency

Date/Time

Yes/No

فرمت آن به صورت زیر می باشد

: Input Mask

Text , Number , این خصوصیت نحوه ورود داده ها را از لحاظ قالبندی کنترل می کند.داده های از نوع

به شرح زیر Input Mask دارای این خصوصیت می باشند ، گزینه ها و علائم مطرح در Date/Time , Currency

می باشد:

0 : احتیاج به عدد است .1

9 : عدد یا فاصله خالی می تواند وارد شود اما الزامی نیست .2

3. #:عدد،علامت مثبت ، علامت منفی و فاصله خالی می تواند وارد شود اما الزامی نیست

احتیاج به حرف است : L .4

5. ? :حرف می تواند وارد شود اما الزامی نیست

احتیاج به حرف یا عدد است : A .6

حرف یا عدد می تواند وارد شود اما الزامی نیست a : .7

8. & :احتیاج به حرف یا فاصله خالی است

هر کارکتر یا فاصله خالی می تواند وارد شود اما الزامی نیست : C .9

10 . < : کارکترهایی که بعد از آن وارد می شود را به حروف کوچک تبدیل می کند

11 . > : کارکترهایی که بعد از آن وارد می شود را به حروف بزرگ تبدیل می کند

12 . ! :باعث می گردد کارکترها از راست به چپ وارد شوند

13 . \ :کارکترهای که به دنبال آن می آیند به جای اینکه به عنوان کد خوانده شود به صورت تحت الفظی نمایش

داده میشود.

: Caption

عنوان و برچسبی برای فیلد طراحی شده می باشد.در این قسمت قابلیت فارسی نویسی داریم.

: Default Value

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

: Rule Validatin

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

کاربر را ملزم به وارد کردن مقادیر تعیین شده می نمایید.

انواع عملگرها

عملگرهای مقایسه ای :

< .1

> .2

= .3

=< .4

=> .5

< > .6

عملگرهای منطقی:

And .1

Or .2

Xor .3

Not .4

.Between ….And .5

: Validation Text

درصورتی که کاربر مقادیری خارج از مقادیر تعیین شده در خصوصیت قبل وارد نماید پیغام خطا صادر

می نماید.(کاربر می تواند خود پیغام مناسبی درج نمایید)

: Required

در صورت فعال کردن این خصوصیت ورود داده برای آن فیلد الزامی می باشددر صورت وارد نکردن داده پیغام اخطار

می دهد.

:Length Allow Zero

مشخص می کند که آیا متنی به طول صفر در فیلد قابل قبول است یا خیر.

Design روی محیط Edit

Rows Insert مراحل درج سطر

Rows انتخاب Inser t استفاده از منو

Rows Insert استفاده از ابزار

Delete Rows مراحل حذف سطر

Delete و یا Delete Rows انتخاب Edit استفاده از منو

Delete Rows استفاده از ابزار

از روی صفحه کلید Delete انتخاب سطر و انتخاب

Data sheet View آشنایی با تنظیم خصوصیات محیط ورود داده

: Format -1 منو

تغییر ساختار صفحه گسترده از : Datasheet یا effect Cell تغییر فونت ،سبک فونت ،سایز فونت و : Font

ها و……. Grid لحاظ

امکان تنظیم ارتفاع سطر ، در صورتی که گزینه استاندارد فعال شود ارتفاع پیش فرض فعال : Row Height

میشود.

امکان تنظیم طول ستون ، در صورتی که گزینه استاندارد فعال شود طول پیش فرض فعال : Column Width

باعث میشود که طول ستون بر اساس نوشته ها تنظیم شود . BestFit میشود.انتخاب گزینه

امکان تغییر نام فیلد را فراهم می اورد. :Rename Column

امکان پنهان کردن فیلد را فراهم می اورد. : Hide Columns

امکان آشکار شدن فیلدپنهان شده را فراهم می اورد. : UnHide Columns

فیلد فریز شده در ابتدا فیلدها قرار گرفته و ثابت می شود،و سایر فیلدها می توانند به صورت : Freeze Columns

عکس عمل فریز می باشد. : UnFreeze All Columns کشویی منطبق با آن فیلد قرار کیرند

-2 طریقه وارد کردن داده ها روی رکورد:

-1-2 تایپ داده متناسب با نوع داده انتخابی و قالبندی انتخابی

که اطلاعات رکورد قبلی را به رکورد جاری منتقل می سازد. +Ctrl -2-2 استفاده از

برای ورود تاریخ جاری سیستم :+Ctrl -3-2 استفاده از

برای ورود زمان جاری سیستم ;+Ctrl+Sift -4-2 استفاده از

Paste و سپس Ctrl+C،Copy -5-2 استفاده از

Paste و سپس Ctrl+X،Cut -6-2 استفاده از

-3 طریقه حذف رکوردها:

Edit از منو Delete Rcord -1-3 انتخاب گزینه

Delete Record روی رکورد و انتخاب گزینه R.C -2-3

از باکس ابزار Delete -3-3 استفاده از ابزار

-4 اضافه کردن رکورد به جدول:

Insert از منو Rcord New -1-4 انتخاب گزینه

از راهنمای رکورد New Record -2-4 انتخاب گزینه

از باکس ابزار New Record -3-4 استفاده از ابزار

New Record روی رکورد و انتخاب گزینه R.C -4-4

ادامه تنظیم خصوصیات محیط ورود داده

-5 نحوه

انتخاب فیلد

و رکورد:

-6 حرکت در جدول باکلیدهای صفحه کلید:

: Search -1-7

All -1-1-7

Up -2-1-7

Down -3-1-7

: Match -2-7

جستجو بر اساس بخشی از داده درج شده ) )Field Any Part Of -1-2-7

جستجو بر اساس تمام داده درج شده ) )Whole Field -2-2-7

جستجو بر اساس شروع داده درج شده ) )Start Of Field -3-2-7

اگر دنبال داده قالبندی شده ای می گردید باید از آن استفاده نمایید .بطور : Search Field As Formatted -4-2-7

نمایش دهدو شما به January, به نوعی قالبندی شده باشد که تاریخ را بصورت 2003،11 Date/Time مثال اگر فیلد

نتیجه جستجو را مثبت تلقی کرده اما اگر گزینه مزبور را فعال Access ، 2003 بگردید /1/ دنبال تاریخ با فرمت 11

وارد شده باشد . January, فقط در صورتی نتیجه را مثبت می دهد که تاریخ به صورت 2003،11 Access کنید

براساس قالبندی زیر: Find

بقیه هر تعداد و هر حرفی می تواند باشد. Sm یعنی دو حرف اول *Sm 1. :کارکتر هر.مثال

حرف سوم یک کارکتر و هر حرفی می تواند باشدو Sm یعنی دو حرف اول Sm?th 2. ? :یک کارکتر . مثال

.th سپس

تمامی دادهای 5 رقمی را که با 166 شروع شود access 3. # :تطبیق با یک عدد .لذا اگر به دنبال 166 ## بگردید

را انتخاب می کند

جایگزین کردن : Replase -8

درصورتی که بخواهیم دادهایی را تغییر دهیم از روش جستجو پیدا سپس داده مورد نظر را جایگز ین

می باشد. Find می کنیم.گزینه های آن مشابه

درج داده مورد جستجو : Find What

درج داده جایگزینی : Replace With

جایگزینی یکی یکی : Replace

جایگزینی همه موارد : Replace All

صافی): ) Filter -9

می توان داده های مورد نظر را از بقیه داده ها جدا نمود. Record از منوی Filter توسط گزینه

انواع فیلترها

فیلتر شرطی) ) Filter by form .1

این فیلتر دارای محیطی می باشد با گزینه های زیر:

امکان جستجوو جدا سازی) ) For Look

امکان شرکت گذاری) ) Or

فیلتر بر اساس انتخاب) ) selection Filter by .2

عکس عمل فیلتر قبل) ) Filter Excluding Selection .3

فیلتر شرطی با ساختار پرس و جو : Advanced Filter / Sort .4

روی رکورد به صورت یک میانبر عمل می کند و R.C تنها فیلتری است که با :For Filter .5

عمل فیلتر را انجام داد. Enter و Filter For می توان با تایپ کلمه مورد نظر در

نکته:

به طور کلی فیلترها روی سلولی از فیلدها یا به عبارتی روی فیلدها اعمال می گردد.

برای اجرای فیلتر بکار می رود. : Apply Filter

از حالت فیلتر به جدول بر می گردد. : Remove Filter

Query آشنایی با طراحی

:Query ---- New

Design View .1

Simple Query Wizard .2

Cross Tab Query Wizard .3

Duplicate Query Wizard Find .4

Find Unmatched Query Wizard .5

1. ایجاد از طریق طراحی

2. ایجاد با ساده ترین شکل از ویزارد

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

4. مقایسه دو جدول و یافتن تمام رکوردهای تکراری از دو جدول .

5. مقایسه دو جدول و یافتن تمام رکوردهای تکراری از یک جدول .

:Query تعریف

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

محاسباتی نیز امکان پذیر می باشد.

به دو بخش تقسیم می گردد: Query تعریف

Select Query.1

Action Query.2

می باشد ،یعنی پرس و جو بر اساس انتخاب. Select Query ساده ترین پرس و جو

می تواند یک فیلد را در بر بگیرد. Query

داده اند. Dynamic چون تغییرات روی پرس و جو روی جدول متناظرش اعمال می شود بنابراین صفت

داده اند. SubSet چون پرس و جو زیر مجموعه یک یا چند جدول یا پرس و جو است به آن صفت

Design View از طریق Query ایجاد

را از : Query میتوان Table Show با ظاهر شدن پنجره

Table .1

Query .2

Both .3

ایجاد نمود.

انتقال داد: Design Gerid در قسمت Field به گزینه Field List به طروق زیر می توان فیلدها را از قسمت

Drop & Drag 1. انتخاب فیلد با عمل

2. انتخاب فیلد و عمل دابل کلیک روی فیلد

و زدن حرف اول Field 3. انتخاب گزینه

4. توسط *میتوان همه فیلدها به پایین منتقل کرد که نتیجه آن در زمان اجرا مشخص می شود.

Drop & Drag 5. انتخاب عنوان جدول و استفاده از

مشخص کننده نام جدول : Table

مرتب کردن به صورت صعودی و یا نزولی : Sort

امکان فعال یا عدم فعال بودن فیلد : Show

Validation امکان شرط گذاری توسط این قسمت فراهم می شود.از عملگرها و شروط ذکر شده در : Criteria

برای این قسمت می توان استفاده نمود. Rule

شرط یا : Or

تعریف نحوه شرط گذاری بر اساس نوع داده ها:

مقدار متنی را وارد می نماییم.امکان استفاده از دو کارکتر عام *,? امکان پذیر می باشد. : Text

مقدار عددی را وارد می نماییم. : Number,Currency

مقدار تاریخ/ زمان را وارد می نماییم. : Date/Time

#2002/2/ 2002 عکس العمل برنامه# 11 /2/ مثال: 11

را می نویسد. Is”Nall برنامه Null بنویسیم Criteria اگر در قسمت

Relationship طرز ایجاد

1. ارتباط یک به چند

2. ارتباط یک به یک

3. ارتباط چند به چند

- برای مورد 1و 2 حداقل 2 جدول نیاز است

- نکات ایجاد ارتباط در ارتباط یک به چند

-2 در جدول اول

-1-2 انتخاب فیلدی به صورت منحصر بفرد با شرایط زیر

Primary Key -1-1-2

Index:Yes-No Duplicates -2-1-2

-3-1-2 انتخاب فیلدی هم نام و هم نوع در جدول متناظر

-3 در جدول دوم

-1-3 انتخاب فیلدی هم نام و هم نوع هماهنگ با فیلد جدول اول

Index:Yes-Duplicates Ok -1-1-3

لازم نیست Primary Key -2-1-3

نکات ایجاد ارتباط در ارتباط یک به یک

-3 در جدول اول

-1-4 انتخاب فیلدی به صورت منحصر بفرد با شرایط زیر

Primary Key -1-1-4

:Index-Yes-No Duplicates -2-1-4

-3-1-4 انتخاب فیلدی هم نام و هم نوع در جدول متناظر

-5 در جدول دوم

-1-5 انتخاب فیلدی هم نام و هم نوع هماهنگ با

فیلد جدول اول

:Duplicates Index-Yes- No -1-1-5

Primary Key -2-1-5

نکات ایجاد ارتباط در ارتباط چند به چند

در این نوع 3 جدول مورد نیاز می باشد.

-6 در جدول اول

-1-6 انتخاب فیلدی به صورت منحصر بفرد با شرایط زیر

Primary Key -1-1-6

:Index-Yes-No Duplicates -2-1-6

-3-1-6 انتخاب فیلدی هم نام و هم نوع در جدول واسط

-7 در جدول واسط

-1-7 انتخاب فیلدی هم نام و هم نوع هماهنگ با فیلد جدول اول

:Index-Yes- No Duplicates -1-1-7

Primary Key -2-1-7

-8 در جدول دوم

-1-8 انتخاب فیلدی به صورت منحصر بفرد با شرایط زیر

Primary Key -1-1-8

:Index-Yes-No Duplicates -2-1-8

-3-1-8 انتخاب فیلدی هم نام و هم نوع در جدول واسط

ارتباط یک به چند ، ارتباطی است که در آن محتوای یک فیلد از جدولی در فیلد مشابه از جدول دیگری بیش از

یک بار تکرار شده باشد.

در ارتباط یک به یک درست همان تعداد رکورد که در جدول اول است در جدول دوم نیز وجود دارد .

تلفیق دو مورد بالا در مورد رابطه چند به چند صادق است.

می توان ارتباط برقرار Drop & Drag با عمل Tools از منو RelationShip بعد از تعیین خصوصیات به وسیله

نمود.

Select Query در Total کاربرد

این گزینه را انتخاب می نماییم.یا از ابزار آن View از منو

این گزینه شامل موارد زیر می باشد:

محاسبه جمع مقادیر Sum .1

محاسبه میانگین مقادیر Avg .2

تعیین کمترین مقدار Min .3

تعیین بیشترین مقدار Max .4

محاسبه تعداد مقادیر Count .5

محاسبه انحراف معیار StDev .6

محاسبه واریانس Var .7

تعیین اولین مقدار First .8

تعیین آخرین مقدار Last .9

امکان استفاده از عبارت ساز برای ساختن فیلد محاسباتی Expression .10

مثال:محاسبه نمره نهایی

Field-total:(nomreh) *(zarib nomreh)، در گزینه

. Totals از Expression فعال بودن فیلدهای شرکت کرده در این فیلد محاسباتی همچنین فعال بودن

از علائم ریاضی و همچنین از + ،&(الصاق)در عبارت ساز ی می توان استفاده نمود .

تابعی است که مقدار عددی را با واحد پول نمایش می دهد. ( )CCUR

Action Query آشنایی با

شامل:

: Make-Table Query

: Update Query

گزینه جایگزینی) )Update to: 2.5

گزینه ای که باید تغییر کندو به روز شود) ) Criteria: 2

: Append Query

می باشد با این تفاوت که نام جدولی که می خواهیم داده ها به ان الصاق شود را از Query make- Table همانند

لیست انتخاب می کنیم.

: Delete Query

Where :Delete

همه یکهای موجود در جدول انتخابی را حذف می نمایید) ) Criteria: 1

شود و ذخیره سپس نتیجه آن را روی جدول متناظر مشاهده نمود Run ها باید بعد از ایجاد ابتدا action تذکر: تمام

یا از ابزار آن ! Query از منو Run

Form آشنایی باطراحی فرم

:New <------ Form

Design View .1

Form Wizard .2

AutoForm:Columner .3

AutoForm:Tabuler .4

AutoForm :Datasheet .5

Chart Wizard .6

Wizard Pivot Tabale .7

1. ایجاد فرم از طریق طراحی

2. ایجاد فرم از گزینه های از پیش تعریف شده

3. ایجاد سریع فرم با قرار گیری فیلدها ستونی زیر هم

4. ایجاد سریع فرم با قرار گیری فیلدها ستونی در مجاورت هم

5. ایجاد سریع فرم با نمای صفحه داده

6. ایجاد چارت از ویزارد

7. ایجاد نمودار از جدول به طریق ویزارد

تذکر :

ایجاد فرم از شماره 2 تا 7 با انتخاب نام جدول یا پرس و جو مورد نظر حاصل می شود.

فرم چیست؟

فرم کار جمع آوری اطلاعات را آسان می کند.

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

یک فرم می تواند برای چند جدول اطلاعات فراهم کند بدون آن که پر کننده فرم لازم باشد این نکته را بداندو برای

آن تدارک خاصی ببیند.

: Form Wizard طرز کار

نام جدول یا پرس و جوی مورد نظر را انتخاب کنید.

و اضافه کردن آنها با استفاده از دکمه های راهنما به قسمت Available Field انتخاب نام فیلدهای مورد نظر از

. Selected Field

Next

نحوه قرار گیری فیلدها را تعیین می کنیم.

Columner .1

Tabuler .2

Datasheet .3

Justified .4

Next-

- تعیین پس زمینه برای فرم .

Next- .2

. Finish - نحوه اجرا فرم و سپس

: AutoForm طرز کار

ها قابلیت ایجاد فرم از جدول و پرس و جو را به طور خودکار و سریع امکان پذیر می سازد ،کافیست AutoForm

ها را انتخاب کرده و سپس در قسمت تعیین نام جدول یا پرس و AutoForm گزینه فرم یکی از New از قسمت

کردن فرم ایجاد می گردد. Ok جو گزینه مورد نظر را انتخاب کنیم سپس با

گزارش چیست؟

تفاوت فرم و گزارش:

1. فرم همواره نمایشی است اما گزارش چون به شکل چاپ شده عرضه می شود ثابت و متداوم است .

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

3. فرم را نمی توان مبنا قرار داد و بر اساس یک فیلد مشاهده نمود ، در گزارش بر مبنای یک فیلد می توان

گزارش تهیه نمود.

-گزارش را به صورت تصویری نیز می توان ارائه داد .

: Report آشنایی با طراحی

:New <--------- Report

Design View .1

Report Wizard .2

AutoForm:Columnar .3

AutoForm:Tabular .4

Wizard Chart .5

Label Wizard .6

ها می توان گزارش به صورت ستونی زیر هم و یا AutoForm نحوه ایجاد گزارش همانند فرم می باشد، در حالت

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

Report Wizard طرز کار

1. ابتدا تعیین جدول یا پرس و جو

Next .2

3. انتخاب فیلدهای شرکت کننده در گزارش

(Grouping Levels) 3. انتخاب فیلد سر گروه در صورت نیاز

Next .4

6. امکان مرتب کردن تا 4 فیلد به دو صورت صعودی یا نزولی

Next .6

8. امکان آرایش گزارش از لحاظ مر تب شدن و خط کشی و همچنین نحوه قرار گرفتن گزارش به صورت افق

یا عمودی

Next .9

10 . در این مرحله چند شیوه رایج ایجاد گزارش از لحاظ رنگ و قلم حروف را عرضه می کند هر گزینه نام یکی از

این شیوه هاست. با انتخاب یکی از این گزینه ها نتیجه در سمت چپ قابل مشاهده می باشد ، در این مرحله با انتخاب

گزارش تهیه می شود.__

تاریخ ارسال: دوشنبه 23 شهریور‌ماه سال 1388 ساعت 05:39 ب.ظ | نویسنده: علی | چاپ مطلب 0 نظر
ooooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo