آموزش اکسس

179

کاربر ممتاز
بخش اول

بخش اول

تعريف كلي از اكسسAccess

اكسس ابزاري براي توليد بانكهاي اطلاعاتي رابطه اي است. بانكهاي اطلاعاتي امكان گردآوري انواع اطلاعات را براي ذخيره ‌سازي ،جستجو و بازيابي فراهم مي‌كند.

اجزا بانك اطلاعاتي اكسس عبارتند از:

DataBase:

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

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

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

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

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

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

• Modules : محيط بسيار قوي و با كيفيت براي برنامه‌نويسي محاسبات و عمليات پيچيده روي سيستم بانك اطلاعاتي.

-----------------------------------

الف ‌- تعريف دادهData :
هرگونه اطلاعات لازم و كاربردي درباره يك موجوديت را يك داده مي‌گويند.

ب‌- تعريف Fild :
به هر ستون يك جدول كه در بر گيرنده كليه اطلاعات مربوط به آن ستون مي‌باشد و بخشي از يك موجوديت را تشگيل ميدهد فيلد گفته مي‌شود.

ت‌- تعريف Record :
به هر سطر يك جدول كه اطلاعات مربوط به يك موجوديت را نشان مي‌دهد ، ركورد گويند.

ث‌- تعريف پايگاه داده‌اي ارتباطي:
پايگاه داده‌هاي ارتباطي، مجموعه‌اي از جدول‌هاي داده است كه يك فيلد مشترك در هر يك از جدولهاي موجود دارد و از طريق آن مي‌توان داده‌ها را بهم ربط داد.به اين مدل از پايگاه داده‌ها ، پايگاه داده‌هاي ارتباطي RelationShip مي‌گويند.
 

179

کاربر ممتاز
بخش دوم

بخش دوم

تابع تبديل عدد به حروف

مقدمه :

در اين يادداشت تابع مربوط به تبديل عدد به معادل حروفي آن ارائه مي كنم . عمدتا در سيستم هاي مالي و حسابداري نياز است معادل حروفي اعداد هم نمايش داده شده يا چاپ شوند كه توابع زير اين نياز را پاسخ مي دهد. مثلا براي چاپ يك چك روي خود برگه چك ، علاوه بر نياز به چاپ مبلغ عددي چك لازمست تا مبلغ حروفي چك هم روي برگه چاپ شود.

نحوه استفاده از تابع :

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



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

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​
 

179

کاربر ممتاز
بخش سوم

بخش سوم

در اين قسمت روش غيرفعال كردن دكمه 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

 

179

کاربر ممتاز
بخش چهارم

بخش چهارم

صدور پيغامهاي فارسي بجاي پيغامهاي Error اكسس


(توجه داشته باشيد كه در زير كدهاي نوشته شده از راست به چپ نمايش داده مي شوند)

جواب كلي :
اساسا ، هر خطا در اكسس يا 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 كد خطا شناسايي مي شود )
 

179

کاربر ممتاز
بخش پنجم

بخش پنجم

ماجول تاريخ هجري شمسي با توابع جانبي آن

در بانك اطلاعاتي Access فيلدهاي نوع Date پاسخگوي نياز كاربران فارسي كه با تاريخ هجري شمسي كار مي كنند نيست . البته برنامه هايي مثل پارسا ۹۹ تقويم سيستم را به تقويم هجري شمسي تبديل مي كند و بعد از آن كاربران فارسي مي توانند از فيلدهاي نوع Date اكسس استفاده كنند .بدين ترتيب پارسا مشكل تاريخ هجري شمسي را حل ميكند ولي بعضا تاريخ شمسي سيستم بنا به دلايلي از بين ميرود . مثلا اگربعد از نصب پارسا، Officeنصب شود تاريخ هجري شمسي سيستم به هم مي خورد. براي رهايي از وابستگي برنامه هاي شما به پارسا و ... ، توابع زير مي تواند مشكل شما را بطور كامل حل كند .
اين ماجول در چندين برنامه تست شده و جواب گرفته است شما هم مي توانيد از آن استفاده كنيد.
(توجه داشته باشيد كه كدهاي نوشته شده ، در اينجا از چپ به راست نمايش داده شده اند ولي با كپي آن در اكسس ، نمايش آن از چپ به راست خواهد شد)

در صورت استفاده از اين ماجول ، فيلدهاي از نوع تاريخ را بايد از نوع Number تعريف كنيد. توضيحات بيشتر جهت استفاده از ماجول ، درون خود ماجول نوشته شده است.
براي استفاده از اين ماجول ، از دو خط پايين تر تا انتهاي متن را در حافظه كپي كرده (Copy) و سپس در يك ماجول جديد در اكسس يا VB قرار دهيد (Paste):




' 1- تعريف كنيد 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​
 

179

کاربر ممتاز
بخش ششم

بخش ششم

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

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


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

که در بيشتر برنامه هاي 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.dateadde
,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
 

179

کاربر ممتاز
دانلود جزوه آموزشی

دانلود جزوه آموزشی

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

اولین جزوه که توصیه میکنم حتماً دانلود کنید به زبان فارسی و مختص افراد مبتدی می باشد

از اینجــــــــــــــــا دانلود کنید

فرمت PDF شامل 46 صفحه حجم 1136Kb آپلود شده در سایت رپیدشیر و تا 90 روز از همین تاریخ فرصت دانلود دارید و پس از اون حذف خواهد شد


 

s22a2ch

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

اولین جزوه که توصیه میکنم حتماً دانلود کنید به زبان فارسی و مختص افراد مبتدی می باشد

از اینجــــــــــــــــا دانلود کنید

فرمت PDF شامل 46 صفحه حجم 1136Kb آپلود شده در سایت رپیدشیر و تا 90 روز از همین تاریخ فرصت دانلود دارید و پس از اون حذف خواهد شد


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

179

کاربر ممتاز
پروژه شماره 1 : تعریف پروژه *** بخش اول

پروژه شماره 1 : تعریف پروژه *** بخش اول

دوستان سعی دارم با کمک شما یک پروژه را با هم تو اکسس درست کنیم

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

ابتدا برنامه اکسس را باز میکنیم




سپس در پنجره ایی که باز میشود گزینه Blank Database را انتخاب نموده


پس از آن نامی جهت فایلمان میگداریم به عنوان مثال Miv External و سپس برروی Create کلیک میکنیم




 

179

کاربر ممتاز
بخش دوم - پارت یک *** ساختن جدول

بخش دوم - پارت یک *** ساختن جدول

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




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

ID , DATEM , DATESH , MIV Ext No , Request No , Packing No , Item No , Description , QTY REQUEST , QTY ISSUE , Unit , Single Net Weight , Total Net Weight , TOTAL GROSS WIGHT , REMARK​




در بخش بعدی به تنظیمات جدول خواهیم پرداخت
 

179

کاربر ممتاز
بخش دوم - پارت دو *** تنظیمات جدول

بخش دوم - پارت دو *** تنظیمات جدول

در این مرحله نام ستونها را مینویسیم ( جهت اضافه کردن ستون بر روی Add New Field کلیک میکنیم )

اکنون باید جدول را Save کنیم , در این زمان نامی از شما خواسته میشود که این نام جهت جدول اختصاص میابد
من نام Packing List را داده ام .

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




پس از کلیک کردن بر روی Veiw پنجره ایی همانند شکل زیر باز خواهد شد که بر روی Design Veiw کلیک میکنیم







 

179

کاربر ممتاز
بخش دوم - پارت سوم *** تنظیمات جدول

بخش دوم - پارت سوم *** تنظیمات جدول

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




همانطور که در شکل مشخص است نامهایی را که جهت ستونها مشخص کردیم در ستون Field Name قرار دارند و ما باید در ستون Data Type نوع اطلاعاتی را که در سطر مربوط به هر ستون تایپ میکنیم مشخص نمائیم

بدین صورت تنظیم میکنیم : (Field Name , Data Type)

(ID , AutoNumber)
(DATEM , Date/Time)
(DATESH , Text)
(MIV EXT NO , Text)
(Request No , Text)
(Packing No , Text)
(Item No , Text)
(Description , Text)
(QTY REQUEST , Number)
(QTY ISSUE , Number)
(Unit , Text)
(Single Net Weight , Number)
(Total Net Weight , Number)
(TOTAL GROSS WIGHT , Number)
(REMARK , Text)


پس از این کار یا در حین مشخص کردن Data Type میتوانیم در جدول پائین مشخصات تکمیلی را وارد نمائیم
یعنی اگر Type ستونی را Number گذاشتیم میتوانیم مشخص کنیم که اعداد اعشاری را هم نمایش دهد یا نه , یا تا چند رقم اعشار را نمایش دهد .
در شکل زیر موارد های لایت شده تنظیمات مربوط به Number میباشند که اعداد اعشاری را تا سه رقم اعشار نمایش میدهد






پس از انچام دادن تنظیمات در نوار ابزار بالا بر روی گزینه View میزنیم

اکنون مجدداً وارد جدول شدیم
حال میتوانیم شروع به ثبت اطلاعات در جدول نمائیم
دقت داشته باشید همانطور که در شکل زیر ( شماره 1 ) نشان داده شده است در هنگام وارد کردن تاریخ میلادی اگر بر روی علامت ظاهرشده بزنید جدولی طبق شکل 2 باز میشود که میتوانید از آنجا بر روی تاریخ مورد نظر کلیک کنید

در محل نشان داده شده در شکل زیر ( شماره 3 ) تعداد رکوردهای ثبت شده نمایش داده میشوند




 

179

کاربر ممتاز
بخش سوم *** ساختن فرم

بخش سوم *** ساختن فرم

پس از انجام مراحل بالا اکنون شما میتوانید اطلاعات خود را وارد جدول نمائید
شما میتوانید این کار را به 2 صورت انجام دهید :

1- از طریق ثبت اطلاعات داخل جدول
2- از طریق فرم

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

جهت طراحی فرم از 2 طریق میتوانیم عمل کنیم :

1- ساختن فرم توسط ویزارد اکسس
2- طراحی فرم ( در این روش چون نیاز به استفاده از برنامه نویسی است در اینجا توضیح داده نمیشود )


جهت ساختن فرم طبق روش اول بر اساس عکس زیر بر روی گزینه Form از منوی Create کلیک میکنیم


1.jpg


با انجام این کار فرم شما به صورت خودکار جهت جدول Packing List ساخته خواهد شد
پس از این کار فرم خود را Save نموده و بر روی گزینه View کلیک کنید

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




 

hparhizi

New member
سلام

سلام

با عرض سلام خدمت دوستان و ضمن تشكر از دوست عزيزم 179
با كسب اجازه از شما من هم ميخوام در خلال مطالبي كه شما اائه ميديد يكسري توضيحاتي كه فكر ميكنم هركسي در بدو آشنايي با پايگاه داده نياز است كه باهاش آشنا بشه رو ارائه ميدم البته اين رو بگم كه خواهشا شما مطالب خودتون رو ادامه بديد .
روند كاري خوبي رو در پيش گرفتيد ضمن اينكه بايد بگم من تا حالا اكسس 2007 كار نكردم و همواره وقتي صفحه اش رو باز ميكنم اونقدر جايگاههاي اشيا و منو ها عوض شده كه دوباره برنامه رو ميبندم و ميرم سراغ access 2003 .
فكر ميكنم مطالبي كه شما داريد ارائه ميديد نه تنها براي افرادي كه تازه ميخوان اكسس ياد بگيرن مفيده حتي براي افرادي كه با ورژن هاي قبلي اكسس هم كار كردند هم قابل توجه هستش .

من در خلال توضيحات شما سعي ميكنم به مطالب پايه اي بپردازم و اگه ناراحت نميشيد در روند تكامل برنامه شما نظرات خودم رو خدمتتون عرض ميكنم ضمننا بعنوان يه پيشنهاد در هر مرحله فايلي رو كه ايجاد كرديد و كاملتر شده رو ضمييه كنيد تا دوستان به صورت عملي با فايل ارتباط برقرار كنند.
همچنين اگه احساس ميكنيد كه پستهاي من روند كار رو مختل ميكنه و موجب گسيختگي مطالب ميشه حتما اعلام كنيد...;)
 

hparhizi

New member
گام اول

گام اول

پايگاه داده يا بانك اطلاعاتي ( Data Bank) :
پايگاه داده يا بانك اطلاعاتي مجموعه اي از اطلاعات است كه به صورت مناسب و به طور خاصي سازماندهي شده است.در واقع در جايي كه حجم زيادي از اطلاعات نگهداري مي شود و با ستونهاي مختلف در ارتباطيم نياز به پايگاه داده داريم.به عنوان مثال كليه كتابهاي موجود در يك كتابخانه ، مجموعه اي از فايلها شامل اطلاعات تجاري ،حسابهاي بانكي و موجودي حسابها نمونه هايي از پايگاه داده مي باشند.
DBMS :
به سيستم هاي مديريت پايگاه داده كه امكان جمع آوري و سازماندهي اطلاعات را در يك كامپيوتر فراهم ميكنند ، DBMS ميگويند.(به طور مثال برنامه Access يك DBMS است.)
Access چيست ؟
Access يكي از مهارتهاي پنجگانه مدرك بين المللي ICDL (International Computer Driving License ) و يكي از برنامه هاي محموعه Office است كه جهت سازماندهي ،كنترل و مديريت پايگاه داده و توليد بانكهاي اطلاعاتي رابطه اي به كار مي رود.
از ديگر ويژگيهاي Access مي توان به موارد زير اشاره نمود :

  • امكان مرتب سازي ركوردها ،تهيه گزارشهاي گوناگون و جستجو و استخراج و مقايسه داده ها
  • محيط كار كاملاً گرافيكي و امكان كار در شبكه و اينترنت
  • قابليت استفاده از يك برنامه در شبكه به طور همزمان توسط چند كاربر
  • امكان تبادل و به اشتراك گذاري اطلاعات توليد شده بين Access و سابر برنامه هاي مجموعه Office
  • برخلاف برنامه هايي مانند D Base ، Fox Pro ، Lotus كه برنامه هايي رويداد گرا هستند ، Access برنامه اي شيء گراست.يعني روند اجراي برنامه توسط كاربر تعيين مي شود.
 
آخرین ویرایش:
  • Like
واکنش ها: 179

parandi2

کاربر ممتاز
با سلام خدمت دوستان. من یک سوال داشتم.
تو اکسس یه بانک اطلاعاتی درست کردم. می خوام براش موتور جستجو درست کنم که یه اسمو که بدم برام پیداش کنه. خود اکسس جستجو می کنه اما باید اسم کاملا مطابق اونی باشه که وارد شده. من می خوام اگه یه قسمت از اسم هم که نوشته بشه، اکسس اونو برام پیدا کنه.
چکار باید بکنم؟:que::que:
 

hparhizi

New member
گام دوم

گام دوم

سيستم ساخت يافته :
سيستم ساخت يافته سيستمي است كه طبق قوانين نرمال سازي كه در زير به آن اشاره خواهيم كرد طراحي و ساخته شده تا بعد از ورود طلاعات بتوان از آن به نحو بهينه و بر حسب نياز گزارش گيري و استفاده كرد.

جهت شناخت سيستم ابتدا بايد موجوديتهاي آن سيستم شناسايي شوند.
موجوديت هر چيزي است كه براي يك سيستم با ارزش بوده و براي عنصر هاي آن اطلاعات نگهداري مي شود. به اين ترتيب عناصري كه كه در يك سيستم با هم اشتراك دارند در يك موجوديت در نظر گرفته ميشوند
پس از مشخص نمودن موجوديتها مي بايست عنصر اصلي و فرعي هر موجوديت را با ذكر نوع فرمت داده و ميزان فضاي مورد نياز آن مشخص كرد.
  • در تعريف عناصر بايد قوانين نرمال سازي داده ها رعايت شوند.
  • اولين قانون نرمال سازي داده ها تعريف عنصر به كوچكترين حد ممكن مي باشد.
  • جهت سادگي و سرعت جستجو در برنامه كليه موجوديتها بايد داراي حداقل يك مشخصه فني يكتا باشند كه به آن كليد اصلي يا Primary Key گفته مي شود.
  • جهت عناصري از سيستم كه از محاسبه دو يا چند فيلد ديگر بدست مي آيد نيازي به تعريف مشخصه در جداول موجوديتها نيست و مي توان آنها را با روشهايي كه در آينده فرا خواهيد گرفت ، محاسبه نمود .
  • فرمت داده مي تواند به صورت عدد ،متن ،تاريخ ،چك باكس و .... باشد.
  • از تكرار عناصر در موجوديتها جلوگيري نماييد زيرا به راحتي مي توان موجوديتها را از طريق قرار دادن كليد اصلي موجوديتي كه شامل فيلدهاي مورد نظر مباشد به عنوان نماينده در موجوديت بعدي با هم لينك نمود كه در اينصورت به آن كليد خارجي يا كليد فرعي گفته ميشود.

در اينجا جهت آشنايي بيشتر با مفاهيم موجوديت ، مشخصه ، كليد اصلي، كليد فرعي و .... درپايگاه داده اي كه 179 عزيز ميخواد براش بانك اطلاعاتي ايجاد بكنه توجهتون رو به مشاهده فايل پيوست جلب ميكنم .
ضمنا از 179 هم خواهش ميكنم كه اگه موافق باشه ، table هاي بانك اطلاعاتي رو بر اساس موجوديتهاي معرفي شده ايجاد كنه. و در ادامه با كمك هم بصورت تئوري و عملي يه برنامه خوب و ساختيافته ايجاد كنيم .
 

پیوست ها

  • access.zip
    3.2 کیلوبایت · بازدیدها: 0
  • Like
واکنش ها: 179

hparhizi

New member
با سلام خدمت دوستان. من یک سوال داشتم.
تو اکسس یه بانک اطلاعاتی درست کردم. می خوام براش موتور جستجو درست کنم که یه اسمو که بدم برام پیداش کنه. خود اکسس جستجو می کنه اما باید اسم کاملا مطابق اونی باشه که وارد شده. من می خوام اگه یه قسمت از اسم هم که نوشته بشه، اکسس اونو برام پیدا کنه.
چکار باید بکنم؟:que::que:

دوست عزيز با توجه به اينكه اين تاپيك به آموزش اكسس به صورت گام به گام خواهد پرداخت به منظور جلوگيري از گسيختگي مطالب لطفا سئوالات خودتون را در آدرس زير جستجو كنيد .
http://barnamenevis.org/forum/forumdisplay.php?f=23
 
  • Like
واکنش ها: 179

merijoon

New member
تعريف كلي از اكسسAccess

اكسس ابزاري براي توليد بانكهاي اطلاعاتي رابطه اي است. بانكهاي اطلاعاتي امكان گردآوري انواع اطلاعات را براي ذخيره ‌سازي ،جستجو و بازيابي فراهم مي‌كند.

اجزا بانك اطلاعاتي اكسس عبارتند از:

DataBase:

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

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

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

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

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

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

• Modules : محيط بسيار قوي و با كيفيت براي برنامه‌نويسي محاسبات و عمليات پيچيده روي سيستم بانك اطلاعاتي.

-----------------------------------

الف ‌- تعريف دادهData :
هرگونه اطلاعات لازم و كاربردي درباره يك موجوديت را يك داده مي‌گويند.

ب‌- تعريف Fild :
به هر ستون يك جدول كه در بر گيرنده كليه اطلاعات مربوط به آن ستون مي‌باشد و بخشي از يك موجوديت را تشگيل ميدهد فيلد گفته مي‌شود.

ت‌- تعريف Record :
به هر سطر يك جدول كه اطلاعات مربوط به يك موجوديت را نشان مي‌دهد ، ركورد گويند.

ث‌- تعريف پايگاه داده‌اي ارتباطي:
پايگاه داده‌هاي ارتباطي، مجموعه‌اي از جدول‌هاي داده است كه يك فيلد مشترك در هر يك از جدولهاي موجود دارد و از طريق آن مي‌توان داده‌ها را بهم ربط داد.به اين مدل از پايگاه داده‌ها ، پايگاه داده‌هاي ارتباطي RelationShip مي‌گويند.
ممنون عزیز:heart:
 

179

کاربر ممتاز
با عرض سلام خدمت دوستان و ضمن تشكر از دوست عزيزم 179
با كسب اجازه از شما من هم ميخوام در خلال مطالبي كه شما اائه ميديد يكسري توضيحاتي كه فكر ميكنم هركسي در بدو آشنايي با پايگاه داده نياز است كه باهاش آشنا بشه رو ارائه ميدم البته اين رو بگم كه خواهشا شما مطالب خودتون رو ادامه بديد .
روند كاري خوبي رو در پيش گرفتيد ضمن اينكه بايد بگم من تا حالا اكسس 2007 كار نكردم و همواره وقتي صفحه اش رو باز ميكنم اونقدر جايگاههاي اشيا و منو ها عوض شده كه دوباره برنامه رو ميبندم و ميرم سراغ access 2003 .
فكر ميكنم مطالبي كه شما داريد ارائه ميديد نه تنها براي افرادي كه تازه ميخوان اكسس ياد بگيرن مفيده حتي براي افرادي كه با ورژن هاي قبلي اكسس هم كار كردند هم قابل توجه هستش .

من در خلال توضيحات شما سعي ميكنم به مطالب پايه اي بپردازم و اگه ناراحت نميشيد در روند تكامل برنامه شما نظرات خودم رو خدمتتون عرض ميكنم ضمننا بعنوان يه پيشنهاد در هر مرحله فايلي رو كه ايجاد كرديد و كاملتر شده رو ضمييه كنيد تا دوستان به صورت عملي با فايل ارتباط برقرار كنند.
همچنين اگه احساس ميكنيد كه پستهاي من روند كار رو مختل ميكنه و موجب گسيختگي مطالب ميشه حتما اعلام كنيد...;)

ضمن تشکر از شما دوست عزیز از شما خواهش دارم که اگر واستون مقدوره این کار را انجام بدین چون من به دلیل تغییر شغل یه مدت نمیتونم بیام باشگاه
همینجا هم از همه دوستان عذر خواهی میکنم و امیدوارم بتونم در اسرع وقت به جمعتون بپیوندم


با تشکر
 

179

کاربر ممتاز
دانلود فایل Miv External

دانلود فایل Miv External

با عرض سلام خدمت دوستان و ضمن تشكر از دوست عزيزم 179
با كسب اجازه از شما من هم ميخوام در خلال مطالبي كه شما اائه ميديد يكسري توضيحاتي كه فكر ميكنم هركسي در بدو آشنايي با پايگاه داده نياز است كه باهاش آشنا بشه رو ارائه ميدم البته اين رو بگم كه خواهشا شما مطالب خودتون رو ادامه بديد .
روند كاري خوبي رو در پيش گرفتيد ضمن اينكه بايد بگم من تا حالا اكسس 2007 كار نكردم و همواره وقتي صفحه اش رو باز ميكنم اونقدر جايگاههاي اشيا و منو ها عوض شده كه دوباره برنامه رو ميبندم و ميرم سراغ access 2003 .
فكر ميكنم مطالبي كه شما داريد ارائه ميديد نه تنها براي افرادي كه تازه ميخوان اكسس ياد بگيرن مفيده حتي براي افرادي كه با ورژن هاي قبلي اكسس هم كار كردند هم قابل توجه هستش .

من در خلال توضيحات شما سعي ميكنم به مطالب پايه اي بپردازم و اگه ناراحت نميشيد در روند تكامل برنامه شما نظرات خودم رو خدمتتون عرض ميكنم
ضمننا بعنوان يه پيشنهاد در هر مرحله فايلي رو كه ايجاد كرديد و كاملتر شده رو ضمييه كنيد تا دوستان به صورت عملي با فايل ارتباط برقرار كنند.
همچنين اگه احساس ميكنيد كه پستهاي من روند كار رو مختل ميكنه و موجب گسيختگي مطالب ميشه حتما اعلام كنيد...;)

فایل اکسسی که تا حالا به کمک هم ساختیم
فقط توضیح بدم که این فایل با اکسس 2007 باز میشه

مشاهده پیوست Miv External.rar
 

AMAS

New member
با توجه به اینکه امکان توضیح دادن تمامی موارد وجود ندارد سعی میکنم جزوه های آموزشی مفیدی براتون قرار بدم

اولین جزوه که توصیه میکنم حتماً دانلود کنید به زبان فارسی و مختص افراد مبتدی می باشد

از اینجــــــــــــــــا دانلود کنید

فرمت PDF شامل 46 صفحه حجم 1136Kb آپلود شده در سایت رپیدشیر و تا 90 روز از همین تاریخ فرصت دانلود دارید و پس از اون حذف خواهد شد


سلام
امکان دانلود وجود ندارد در صورتیکه هنوز 90 روز نشده
 

amin_tnt

New member
با توجه به اینکه امکان توضیح دادن تمامی موارد وجود ندارد سعی میکنم جزوه های آموزشی مفیدی براتون قرار بدم

اولین جزوه که توصیه میکنم حتماً دانلود کنید به زبان فارسی و مختص افراد مبتدی می باشد

از اینجــــــــــــــــا دانلود کنید

فرمت PDF شامل 46 صفحه حجم 1136Kb آپلود شده در سایت رپیدشیر و تا 90 روز از همین تاریخ فرصت دانلود دارید و پس از اون حذف خواهد شد


سلام
امکان دانلود وجود ندارد در صورتیکه هنوز 90 روز نشده
سلام
نميشه دانلود كرد!!!
 

nistia

New member
سلام
اگه میشه فایل آموزش اکسس 2007 رو واسه دانلود بزارین...
 
آخرین ویرایش:

179

کاربر ممتاز
آموزش Access 2007

آموزش Access 2007

این کتاب آموزشی آموزش Access 2007 به زبان انگلیسی و با فرمت پی دی اف از سری کتاب های آموزشی for Dummies است




حجم فايل :10.86 MB
Download



 
بالا