اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

السلام عليكم اخي بلال 🙂

 

رجاء اعطنا معلومات كافية لمعرفة المشكلة ، والحل الذي تريده !!

انا على سبيل المثال ، لا افهم الطلب "على الطاير" مثل ما يقولون ، وانا متأكد بوجود الكثير مثلي ، فساعدنا علشان نساعدك 🙂

ليس في هذا الموضوع فقط ، وانما في جميع مواضيعك لوسمحت 🙂

 

جعفر

قام بنشر

السلام عليكم

 

في دوال التغيير ، لا تعمل لها تنسيق عن طريق الامر Format ، فعندها يتحول متغير التاريخ الى نص ، والسبب هو انك قد تحتاج الى استعمال هذه الدالة مرة اخرى بتنسيق آخر. لذا قم بعمل التنسيق بعد جلب البيانات من الدالة.

وامر CDate ليس مضمونا ان يحول النص الى تاريخ ، والامر الاصح هو DateSerial ، حتى لا يختلط الشهر باليوم .

 

هكذا اصبحت دالة ToHijri :

Option Compare Database
Option Explicit

Private CorctAdjustDay As Integer
Private SavedCal As Integer
Private d As Date
Private s As String



'التحويل من التاريخ الميلادى للهجرى
Public Function ToHijri(ByRef myData As String)
  
  'إحضار القيمة العددية لفرق الأيام من جدول إعداد ضبط التاريخ الهجرى
  CorctAdjustDay = DLookup("[AdjustDay]", "tblAdjustHjriDate")
      
      'ضبط التاريخ الميلادى بالزيادة أوالنقصان
      'حسب القيمة العددية والتى تساوى التاريخ الهجرى
      'myData = Trim(Format(DateAdd("d", CorctAdjustDay, myData), "dd/mm/yyyy"))
      myData = Trim(DateAdd("d", CorctAdjustDay, myData))
  
  'التحويل من التاريخ الميلادى للهجرى
  SavedCal = Calendar
  VBA.Calendar = 0
  'd = CDate(myData)
  d = myData
  
  'Hijri
  VBA.Calendar = 1
  s = CStr(d)
  'ToHijri = Format(s, "dd/mm/yyyy")
  ToHijri = s
  VBA.Calendar = SavedCal

'يتم استدعاء الموديول بالشكل التالى
'txt Hijri date = ToHijri(txt Milady date)
End Function

.

وهكذا نناديها (لاحظ التنسيق يتم بعد مناداة الدالة) ، وهنا استخدم جدول tbl_Months لنحصل على الاسماء باللغة العربية :

Private Sub Report_Load()
On Error Resume Next
DoCmd.ShowToolbar "Ribbon", acToolbarNo


    Dim Arabic_Month As String

'Georgian
    Arabic_Month = DLookup("[Months_Georgian]", "tbl_Months", "[Months_English]='" & Format(Date, "mmmm") & "'")
    Me.H_TEXT = ConArNum(Format(Date, "dd ")) & _
                 Arabic_Month & _
                  ConArNum(Format(Date, " yyyy م"))

'Hijri
    Me.txtHijriDate = ToHijri(Date)
    Arabic_Month = DLookup("[Months_Hijri]", "tbl_Months", "[Months_Number]=" & Month(Me.txtHijriDate))

    Me.txtHijriDate = ConArNum(Format(Me.txtHijriDate, "dd ")) & _
                       Arabic_Month & _
                        ConArNum(Format(Me.txtHijriDate, " yyyy هـ"))
    
End Sub

.

الدالة ConArNum هي لتحويل الارقام العربية الى ارقام هندية (نعم الارقام التي نستخدمها هي ارقام هندية) :

Public Function ConArNum(ByVal strStringToConvert As String) As String

'
'https://www.vbforums.com/showthread.php?584388-Arabic-Numbers-display-on-one-machine-but-not-another&p=3609151&viewfull=1#post3609151
'
' Convert the Arabic number to Indian
'

On Error GoTo ErrorHandler

strStringToConvert = Replace$(strStringToConvert, "0", ChrW$(1632))
strStringToConvert = Replace$(strStringToConvert, "1", ChrW$(1633))
strStringToConvert = Replace$(strStringToConvert, "2", ChrW$(1634))
strStringToConvert = Replace$(strStringToConvert, "3", ChrW$(1635))
strStringToConvert = Replace$(strStringToConvert, "4", ChrW$(1636))
strStringToConvert = Replace$(strStringToConvert, "5", ChrW$(1637))
strStringToConvert = Replace$(strStringToConvert, "6", ChrW$(1638))
strStringToConvert = Replace$(strStringToConvert, "7", ChrW$(1639))
strStringToConvert = Replace$(strStringToConvert, "8", ChrW$(1640))
strStringToConvert = Replace$(strStringToConvert, "9", ChrW$(1641))

ConArNum = strStringToConvert

Exit Function
ErrorHandler:
ConArNum = vbNullString

End Function

.

اما جدول tbl_Months ، وتستطيع قراءة طريقة استعماله وفوائده من هنا:
https://www.officena.net/ib/topic/81063-كتابة-التاريخ-بصيغة-لا-تتغير-بتغير-اعدادات-الوندوز/

image.png.639461150f1b02931f50a1df15decacf.png

.

والنتيجة النهائية هي :

image.png.2de288211104570fa7986846cf836b3c.png

1574.الارقام.accdb.zip

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information