آموزشMicrosoft Office Access

آموزش اکسس بخش نهم

توسط amin8505 | گروه مقاله های آموزشی | 1394/07/28

نظرات 0

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

در بانك اطلاعاتي 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 Boole