اذهب الي المحتوي
أوفيسنا

egyman

عضو جديد 01
  • Posts

    32
  • تاريخ الانضمام

  • تاريخ اخر زياره

مشاركات المكتوبه بواسطه egyman

  1. بسم الله الرحمن الرحيم

    شباب أعرف أن هذا ليس المكان المناسب لطرح سؤالي .. و لكني لا أعرف مكان أخر

    قمت بعمل برنامج صغير لمدرسة

    يقوم البرنامج بتشغيل صوت جرس على مواعيد الحصص

    و البرنامج تمام و الحمد لله

    و اللى ناقص ملف صوت الجرس

    فهل أجد عنكم ضالتى

    و شكراً :d

  2. أولاً : بود أشكر الأستاذ أبو هادي على الملف المرفق

    و على حرصه على نشر العلم بين أفراد المنتدي

    و بالطبع الشكر كل الشكر للأستاذ أبو هاجر

    و لكن يا شباب أنا عندي مشكلة :::

    منذ ما يقرب من شهر و نصف قمت بتحميل ملف من متندى أجنبيى يؤدى نفس الوظيفة و الملف شغال و ذي الفل

    المشكلة بقي ... فى الطباعة

    العميل عنده طابعة Printer card

    حجم الورقة in CR 80 2.13 × 3.38

    فقمت بتصغير ورقة التقرير لتتناسب مع مساحة ورقة الطابعة و لكنها أيضاُ لا تطبع بشكل جيد

    فهل عند أحدكم خبرة فى طباعة الكروت البلاستيك على أحد الطابعات مثل طابعتى

    و شكراً لكم

    أنتظر ردودكم بفارغ الصبر

  3. السلام عليكم و رحمة الله و بركاته

    أخي أسير الغربة

    أود أولاً أن أنصحك بأن تسمي أدواتك بحروف أو أسماء إنجليزية حتى لا تقع فى مشكلة أثناء كتابة الكود

    و سأفترض معك أن أداة القائمة المنسدلة تسمي Gender --> الجنس

    قم بإضافة الكود التالي على زر الحفظ

    If me.gender = "ذكر" then

    me.t = 1

    me.h = 0

    else

    me.t = 0

    me.h = 1

    endif

    أرجوا أن يكون ذلك ما تريد

  4. Me.FilterOn = False
                   Me.CODE.Enabled = True
    المشكلة كانت فى السطر التالي .. حيث كان حقل الكود غير ممكن
    Me.CODE.SetFocus
                   DoCmd.FindRecord dd, , , True, , acCurrent
                   Me.DATE.SetFocus
                   Me.CODE.Enabled = False
                   Me.Recordset.MovePrevious
                   If Me.Recordset.BOF() Then
                      Me.Recordset.MoveFirst
                   End If

  5. شباب السهل يمكن سهل بس صدقونى مش سهل

    ....

    عندي فورم للدخلو عليه بقوم بعمل Filter على السجل المطلوب داخل الجدول المرتبط بالنموذج

    تمام لغاية هنا

    المشكلة ان عندي أزرار للتنقل بين السجلات

    للذهاب لأول سجل أو لأخر سجل لا يوجد مشكلة

    المشكلة فى الذهاب للسجل التالي أو السابق

    شباب الموضوع مهم

    أرجوا ردودكم السريعة

    و شكراً

  6. السلام عليكم ورحمة الله و بركاته

    شكرأ أخي رضوان لتفاعلك معي

    و لكن يا صديقي المشكلة ليسة في تكبير الشاشة لاستخدم الأمر الذي ذكرته

    أو حتى أن استخدم ماكروا لذلك أرجوا أن تجرب ذلك عملياً و ستعرف ما أقصد

    و شكراً لك :d

  7. السلام عليكم و رحمة الله و بركاته

    سؤالي هو قمت بتصميم بعض النماذج و كانت شاشتى 15 بوصة

    و عند نقلها إلى العميل ذو الشاشة 17 بوصة

    بالطبع لم تظهر بالشكل الجيد

    فهل عند أحدكم حل لعدم تكرار ذلك عند التصميم

    و شكراً

  8. السلام عليكم و رحمة الله و بركاته ...

    يا شباب أنا أعمل الأن على نظام للمخازن و حسابات المخزون

    و أردت أن أعرض الحسابات على شكل شجرة

    و على ما أعتقد أن ما أحتاج إليه هو ملف ocx

    فمن يملك هذا الملف أو طريقة للحل أرجوا ألا يبخل بها علينا جميعاً و شكراً

  9. السلام عليكم ورحمة الله و بركاته

    ...........................................

    أعزائي و أخوتي الكرام .. تم طرح موضوع التخلص من رسالة الخطأ التى تنشأ من حدث

    not in list

    الخاص بصندوق التحرير و السرد قبل ذلك و قد كان هناك ردود رائعة و لكن عندما قمت بتنفيذها لم تفلح

    فقمت بإعادة طرح الموضوع مرة أخري و أيضأ أخذت ردود لم تفلح

    ........................................................

    والأن ...... ها هو الحل بعد طول بحث ........ :lol:

    ........................................................

    قم بكتابة الكود التالي فى حدثnotinlist

    Private Sub cboStateJump_NotInList(NewData As String, Response As Integer)

    MsgBox "No matching State found..." & "Tamer" & "Please select a State from the list.", vbExclamation, "No Matching State Found"

    Response = acDataErrContinue

    End Sub

    أرجوا منكم تجربته و الدعاء لي بأن يهديني لله... و شكرأ لكم و للسادة المشرفين الذين لا يبخلوا بالمساعدة

  10. السلام عليكم

    ......................

    شكرأ أخي سهيل على الرد

    فالرابط يؤدي بالفعل إلى الموضوع المطلوب و به ملفات يمكن تحميلها كأمثلة على الجهاز

    و لكن.............. :')

    عندما تحاول تشغيلها يعطي رسالة هذا الملف يتنسيق خاطي

    فإذا كنت تعرف الطريقة أفدنا بها و شكراً

    :rol:

  11. السلام عليكم

    يا شباب و الله الموضوع مهم .. و محتاج للبحث الجاد ..

    فكروا معي ما هو حال برامجنا الذي نوزعها على العملاء لتجد أن أحداً قد نسخها و غير اسمك من عليها حتي فى حالات اغلاق مفتاح الشفت

    ...........................

    الفكرة .... و قد رأيتها من قبل...

    ..............................

    هو كود يكتب داخل ملف تنفيذي يقوم بتحويل ملف الأكسيس إلى نسخة صالحة للإستخدام

    و عند إغلاق البرنامج يقوم الكود بتحويل النسخة إلى نسخة غير صالحة

    و شكراً

  12. السلام عليكم

    يا شباب الموضوع بسيط ...

    الفكرة هي انت مثلاً قمت بعمل برنامج يتكون من 10 شاشات (نماذج) و قد اخترت اللون الأزرق ليكون هو لون الخلفية لهذه النماذج

    ........................

    الفكرة المطروحة هي :

    هل نستطيع أن نعرض شاشة بها ألوان للمستخدم ليختار هو بنفسه اللون المريح له

    ثم بعد ذلك يتغير ألوان خلفة الشاشات بالبرنامج إلى اللون الذي اختاره المستخدم

    .......................

    و شكراً

  13. السلام عليكم و رحمة الله و بركاته

    كل عام و أنتم و الأمة الإسلامية بخير إن شاء الله

    شباب لا أطيل عليكم

    أعرف أن المنتدي هو منتدي أكسيس

    و لكني أسئل عن كود كنت قد رأيته من قبل يقوم هذا الكود بالتالي:

    عند تنفيذ الكود يقوم بتشفير قاعدة البيانات بمعنى أنك لوحاولت فتح الملف ستظهر رسالة تفيد بعدم فهم صيغة الملف Unrecognze format

    و عند تشغيل الكود مرة ثانية يقوم بعملية إعادة تشفير الملف و تحويله إلى ملف أكسيس

    شباب أرجوا منكم المساعدة و شكراً لكم

  14. شكراً أخي سهيل على الرد

    و لكني كتبت كود للتفقيط و لكن المشكلة به :

    أنه يكتب ثلاث مئة : أربع مئة

    و كان المطلوب

    أن يكتب

    ثلاثمئة : أربعتمئة

    المهم إني حصلت من أحد المنتديات على كود أفضل من الذي كتبته و هو :

    v ضع هذا الكود فى حدث عند فقد التركيز لخانة المبلغ :

    Private Sub s_LostFocus()

    Me.تفقيط = B_Only(, 1, 0, 2, "ريال سعودي", "ريالات", 0, "هللة", "هللات", 4)

    End Sub

    v قم بإنشاء موديل جديد و انسخ به الكود التالي :

    Option Compare Database

    Option Explicit

    Public Const vArabic As Byte = 1

    Public Const vEnglish As Byte = 2

    Public Const vMale As Byte = 0

    Public Const vFemale As Byte = 1

    Function Delete(s As String, Index, Count As Integer) As String

    Delete = Left(s, Index - 1) + _

    Mid(s, Index + Count, Len(s))

    End Function

    Function Insert(Source, s As String, Index As Integer) As String

    Dim LPart, RPart As String

    LPart = Left(s, Index - 1)

    RPart = Mid(s, Index, Len(s))

    Insert = LPart & Source & RPart

    End Function

    Function AddAnd(S1, S2, S3, And_ As String, Lang As Byte) As String

    Dim InAnd_, CollectS As String

    If Lang = vArabic Then InAnd_ = " " + And_ Else InAnd_ = And_ + " "

    If (S1 <> "") And (S2 <> "") Then And_ = InAnd_ Else And_ = ""

    CollectS = S1 + And_ + S2

    If (CollectS <> "") And (S3 <> "") Then And_ = InAnd_ Else And_ = ""

    AddAnd = CollectS + And_ + S3

    End Function

    Function S2Double(Single_ As Variant, Sex As Byte) As String

    Dim LLeter As Integer

    Dim k As Byte

    Dim Sngl_1, Sngl_2 As String

    k = InStr(1, Single_ & " ", " ")

    Sngl_1 = Left(Single_, k - 1)

    Sngl_2 = ""

    If k < Len(Single_) Then

    Sngl_2 = Mid(Single_, k + 1, Len(Single_))

    End If

    If Sngl_2 <> "" Then

    If Right(Sngl_2, 1) = "ة" Then

    Sngl_2 = Left(Sngl_2, Len(Sngl_2) - 1) & "تان"

    Else

    Sngl_2 = Sngl_2 & "ان"

    End If

    End If

    If Sngl_1 <> "" Then LLeter = Asc(Right(Sngl_1, 1))

    Select Case LLeter

    Case 201 ' "ة"

    Sngl_1 = Left(Sngl_1, Len(Sngl_1) - 1) & "تان"

    Case 236 ' "ى"

    Sngl_1 = Left(Sngl_1, Len(Sngl_1) - 1) & "يان"

    Case 199 ' "ا"

    Sngl_1 = Left(Sngl_1, Len(Sngl_1) - 1) & "وان"

    Case 193 ' "ء"

    If Right(Sngl_1, 2) = "اء" Then

    If Sex = 1 Then

    Sngl_1 = Left(Sngl_1, Len(Sngl_1) - 1) & "وان"

    Else

    Sngl_1 = Sngl_1 & "ان"

    End If

    End If

    Case Else

    If Sngl_1 <> "" Then Sngl_1 = Sngl_1 & "ان"

    End Select

    If Sngl_2 <> "" Then

    S2Double = Sngl_1 & " " & Sngl_2

    Else

    S2Double = Sngl_1

    End If

    End Function

    Function Fmale(Num, Sex As Byte, Female()) As String

    Dim Two(1 To 4) As String

    Dim InSex As Byte

    Two(1) = "أحد"

    Two(2) = "اثنان"

    Two(3) = "إحدى"

    Two(4) = "ة"

    Select Case Sex

    Case vMale:

    Select Case Num

    Case 1: Fmale = Mid(Female(1), 1, 4)

    Case 2: Fmale = Two(2)

    Case 8: Fmale = Female(Num) + "ي" + Two(4)

    Case 3 To 7, 9, 10: Fmale = Female(Num) + Two(4)

    Case 11: Fmale = Two(1) + " " + Female(10)

    Case 12: Fmale = Mid(Two(2), 1, 4) + " " + Female(10)

    Case 13 To 19: Fmale = Female(Num - 10) + Two(4) + " " + Female(10)

    End Select

    Case vFemale:

    Select Case Num

    Case 1 To 10: Fmale = Female(Num)

    Case 11: Fmale = Two(3) + " " + Female(10) + Two(4)

    Case 12: Fmale = Mid(Female(2), 1, 5) + " " + Female(10) + Two(4)

    Case 13 To 19: Fmale = Female(Num - 10) + " " + Female(10) + Two(4)

    End Select

    End Select

    End Function

    Function Tens(Num As Byte, Female()) As String

    Const Noon = "ون"

    Select Case Num

    Case 2: Tens = Female(10) + Noon

    Case 3 To 9: Tens = Female(Num) + Noon

    End Select

    End Function

    Function Hunds(Num As Byte, Female()) As String

    Const Hund = "مائة"

    Select Case Num

    Case 1: Hunds = Hund

    Case 2: Hunds = Mid(Hund, 1, 3) + Mid(Female(2), 4, 3)

    Case 3 To 9: Hunds = Female(Num) + Hund

    End Select

    End Function

    Function Tenteen(Num As Byte, ETens()) As String

    Const een = "een"

    Num = Num Mod 10

    Select Case Num

    Case 3 To 9:

    Tenteen = Mid(ETens(Num), 1, Len(ETens(Num)) - 1) + een

    End Select

    End Function

    Function EHunds(Num As Byte, ESingle()) As String

    EHunds = ESingle(Num) + " hundred"

    End Function

    Function ReFormat(InNum As Double, Dec As Byte) As Double

    Dim NewFormat As String

    If Dec > 0 Then NewFormat = "0." Else NewFormat = "0"

    NewFormat = NewFormat & String(Dec, "0")

    ReFormat = Format(InNum, NewFormat)

    End Function

    Function ReStr(InNum As String) As String

    Dim k, Digits As Byte

    Dim Num_ As String

    Num_ = LTrim(InNum)

    k = InStr(1, Num_, "E+", 1)

    If k > 0 Then

    Digits = Val(Mid(Num_, k + 2, 3))

    Num_ = Left(Num_, k - 1)

    Num_ = Delete(Num_, 2, 1)

    Do While Len(Num_) - 1 < Digits

    Num_ = Insert(Num_, "0", 1)

    Loop

    End If

    ReStr = Num_

    End Function

    Function AOnly(Num_, FracS, Single_, Ploral_ As String, Parts, Sex, Dec As Byte) As String

    Const And_ As String * 1 = "و"

    Const Lang = vArabic

    Dim PartNum(0 To 5) As Long

    Dim Result1(0 To 5) As String

    Dim N1, N2, N3, TempI, Sex2, k As Byte

    Dim Only_ As String

    Dim OnlyPart As String

    Dim N1_, N2_ As String

    Dim N3_ As String

    Dim Part_ As String

    Dim TempS As String

    Dim Sngl_1, Sngl_2 As String

    Dim Female(1 To 10) As Variant

    Dim Parts_(0 To 11) As String

    If Val(Num_) = 0 Then

    If FracS = "" Then

    AOnly = RTrim("مسدد نقدي ")

    Exit Function

    Else

    AOnly = FracS & " " & Single_

    End If

    Exit Function

    End If

    Female(1) = "واحدة"

    Female(2) = "اثنتان"

    Female(3) = "ثلاث"

    Female(4) = "أربع"

    Female(5) = "خمس"

    Female(6) = "ست"

    Female(7) = "سبع"

    Female(8) = "ثمان"

    Female(9) = "تسع"

    Female(10) = "عشر"

    Parts_(0) = ""

    Parts_(1) = "ألف"

    Parts_(2) = "مليون"

    Parts_(3) = "مليار"

    Parts_(4) = "ترليون"

    Parts_(5) = "كدرليون"

    Parts_(6) = ""

    Parts_(7) = "آلاف"

    Parts_(8) = "ملايين"

    Parts_(9) = "مليارات"

    Parts_(10) = "ترليونات"

    Parts_(11) = "كدرليونات"

    k = InStr(1, Single_ & " ", " ")

    Sngl_1 = Left(Single_, k - 1)

    Sngl_2 = ""

    If k < Len(Single_) Then

    Sngl_2 = Mid(Single_, k + 1, Len(Single_))

    End If

    For k = 0 To Parts - 1

    PartNum(k) = Val(Mid(Num_, (k * 3) + 1, 3))

    Next k

    Sex2 = Sex

    For k = 0 To (Parts - 1)

    If k = (Parts - 1) Then Sex = Sex2 Else Sex = vMale

    TempS = Mid(Num_, (k * 3) + 1, 3)

    TempI = Val(Mid(TempS, 2, 2))

    N1 = Val(Mid(TempS, 1, 1))

    N2 = Val(Mid(TempS, 2, 1))

    N3 = Val(Mid(TempS, 3, 1))

    '{------------------------------------------}

    N1_ = "": N2_ = "": N3_ = ""

    If N1 > 0 Then N1_ = Hunds(CByte(N1), Female())

    If PartNum(k) = 200 Then N1_ = Mid(N1_, 1, Len(N1_) - 1)

    Select Case TempI

    Case 1 To 2:

    If k = Parts - 1 Then If FracS <> "" Then N3_ = Fmale(N3, CByte(Sex), Female()) 'Sex

    Case 3 To 19:

    N3_ = Fmale(TempI, CByte(Sex), Female())

    Case 20 To 99:

    N2_ = Tens(CByte(N2), Female())

    If N3 > 0 Then N3_ = Fmale(N3, CByte(Sex), Female())

    If (N3 Mod 10 = 1) And (Sex = vFemale) Then N3_ = "إحدى"

    End Select

    OnlyPart = AddAnd(N1_, N3_, N2_, And_, Lang)

    '{------------------------------------------}

    If PartNum(k) > 100 Then

    Select Case TempI

    Case 1, 2:

    OnlyPart = AddAnd(OnlyPart, Parts_(Parts - k - 1), "", "", Lang)

    End Select

    End If

    '{------------------------------------------}

    Part_ = ""

    If PartNum(k) > 0 Then

    Part_ = Parts_(Parts - k - 1)

    If Part_ <> "" Then

    Select Case TempI

    Case 2: Part_ = Part_ + "ان"

    Case 3 To 10: Part_ = Parts_((Parts - k - 1) + 6)

    Case 11 To 99: Part_ = Part_ + "ا"

    End Select

    End If

    End If

    '{------------------------------------------}

    If Part_ <> "" Then

    If TempI >= 1 And TempI <= 2 Then

    OnlyPart = AddAnd(OnlyPart, Part_, "", And_, Lang)

    Else

    OnlyPart = AddAnd(OnlyPart, Part_, "", "", Lang)

    End If

    End If

    Result1(k) = (OnlyPart)

    Next k

    '{------------------------------------------}

    N1_ = AddAnd(Result1(0), Result1(1), Result1(2), And_, Lang)

    N2_ = AddAnd(Result1(3), Result1(4), Result1(5), And_, Lang)

    Only_ = AddAnd(N1_, N2_, "", And_, Lang)

    If FracS <> "" Then

    If Only_ <> "" Then FracS = " " + FracS

    Only_ = AddAnd(Only_, FracS, "", And_, Lang)

    End If

    If Only_ <> "" Then

    If Mid(Only_, Len(Only_), 1) = "ا" Then

    If Mid(Only_, Len(Only_) - 1, 2) <> "تا" Then

    Only_ = Mid(Only_, 1, Len(Only_) - 1)

    End If

    End If

    If TempS = "000" Then

    If Mid(Only_, Len(Only_) - 1, 2) = "ان" Then

    Only_ = Mid(Only_, 1, Len(Only_) - 1)

    End If

    End If

    End If

    '{------------------------------------------}

    If FracS = "" Then

    Select Case TempI

    Case 0: If Only_ <> "" Then Only_ = AddAnd(Only_, Single_, "", "", Lang)

    Case 1: Only_ = AddAnd(Only_, AddAnd(Single_, Fmale(1, CByte(Sex), Female()), "", "", Lang), "", And_, Lang)

    Case 2: Only_ = AddAnd(Only_, AddAnd(S2Double(Single_, CByte(Sex)), Fmale(2, CByte(Sex), Female()), "", "", Lang), "", And_, Lang)

    Case 3 To 10:

    If Sngl_2 <> "" Then

    If Right(Sngl_2, 1) = "ة" Then

    Only_ = AddAnd(Only_, Ploral_, Sngl_2, "", Lang)

    Else

    Only_ = AddAnd(Only_, Ploral_, Sngl_2 & "ة", "", Lang)

    End If

    Else

    Only_ = AddAnd(Only_, Ploral_, "", "", Lang)

    End If

    Case 11 To 99:

    If Sngl_1 <> "" Then

    Only_ = AddAnd(Only_, Sngl_1, "", "", Lang)

    N1_ = Mid(Only_, Len(Only_), 1)

    Select Case N1_

    Case "ة", "ى", "ا"

    Case Else

    Only_ = Only_ + "ا"

    End Select

    N1_ = Mid(Only_, Len(Only_) - 2, 3)

    'هذا الشرط لحل مشكلة عدم التمييز بين "ء" و "ل" 2004/06/03

    If N1_ = "اءا" And Asc(Right(Sngl_1, 1)) = 193 Then

    Only_ = Left(Only_, Len(Only_) - 1)

    End If

    If Sngl_2 <> "" Then

    If Right(Only_, 1) = "ا" Then

    Only_ = AddAnd(Only_, Sngl_2 & "ا", "", "", Lang)

    Else

    Only_ = AddAnd(Only_, Sngl_2, "", "", Lang)

    End If

    Else

    Only_ = AddAnd(Only_, Sngl_2, "", "", Lang)

    End If

    End If

    End Select

    Else

    Only_ = AddAnd(Only_, Sngl_1, Sngl_2, "", Lang)

    End If

    AOnly = (Only_)

    End Function

    Function EOnly(Num_, FracS, Single_ As String, Parts, Dec As Byte) As String

    Const Lang = vEnglish

    Dim ESingle(1 To 12) As Variant

    Dim ETens(2 To 9) As Variant

    Dim EParts_(0 To 5) As String

    Dim TempS As String

    Dim N1, N2, N3, TempI, Sex2 As Byte

    Dim N1_, N2_, N3_ As String

    Dim OnlyPart, Part_, Only_ As String

    Dim Leng, k As Integer

    Dim PartNum(0 To 5) As Long

    Dim Result1(0 To 5) As String

    If Val(Num_) = 0 Then

    If FracS = "" Then

    EOnly = LTrim(Single_ & " zero")

    Else

    EOnly = Single_ & " " & FracS

    End If

    Exit Function

    End If

    ESingle(1) = "one"

    ESingle(2) = "two"

    ESingle(3) = "three"

    ESingle(4) = "four"

    ESingle(5) = "five"

    ESingle(6) = "six"

    ESingle(7) = "seven"

    ESingle(8) = "eight"

    ESingle(9) = "nine"

    ESingle(10) = "ten"

    ESingle(11) = "eleven"

    ESingle(12) = "twelve"

    ETens(2) = "twenty"

    ETens(3) = "thirty"

    ETens(4) = "forty"

    ETens(5) = "fifty"

    ETens(6) = "sixty"

    ETens(7) = "seventy"

    ETens(8) = "eighty"

    ETens(9) = "ninety"

    EParts_(0) = ""

    EParts_(1) = "thousund"

    EParts_(2) = "million"

    EParts_(3) = "billion"

    EParts_(4) = "trillion"

    EParts_(5) = "quadrillion"

    For k = 0 To Parts - 1

    PartNum(k) = Val(Mid(Num_, (k * 3) + 1, 3))

    Next k

    For k = 0 To (Parts - 1)

    TempS = Mid(Num_, (k * 3) + 1, 3)

    TempI = Val(Mid(TempS, 2, 2))

    N1 = Val(Mid(TempS, 1, 1))

    N2 = Val(Mid(TempS, 2, 1))

    N3 = Val(Mid(TempS, 3, 1))

    '{------------------------------------------}

    N1_ = "": N2_ = "": N3_ = ""

    If N1 > 0 Then N1_ = EHunds(CByte(N1), ESingle())

    Select Case TempI

    Case 1 To 12: N3_ = ESingle(TempI)

    Case 13 To 19: If N3 > 0 Then N3_ = Tenteen(CByte(TempI), ETens())

    Case 20 To 99:

    N2_ = ETens(N2)

    If N3 > 0 Then

    N3_ = N2_ + "-" + ESingle(N3)

    N2_ = ""

    End If

    End Select

    OnlyPart = AddAnd(N1_, N2_, N3_, "", Lang)

    '{------------------------------------------}

    Part_ = ""

    If PartNum(k) > 0 Then

    Part_ = EParts_(Parts - k - 1)

    If Part_ <> "" Then Part_ = EParts_((Parts - k - 1))

    End If

    Result1(k) = AddAnd(OnlyPart, Part_, "", "", Lang)

    Next k

    '{------------------------------------------}

    N1_ = AddAnd(Result1(0), Result1(1), Result1(2), "", Lang)

    N2_ = AddAnd(Result1(3), Result1(4), Result1(5), "", Lang)

    Only_ = AddAnd(N1_, N2_, "", "", Lang)

    Leng = Len(Only_)

    Only_ = AddAnd(Only_, FracS, "", " and", Lang)

    If Only_ <> "" Then

    Only_ = AddAnd(Single_, Only_, "", "", Lang)

    EOnly = Only_

    End If

    End Function

    Function S_Only(InNum As Variant, Lang, FracType As Byte) As Variant

    Dim Num_ As String

    Dim k, Dec As Byte

    Dim FType As Byte

    If IsNull(InNum) Then

    S_Only = Null

    Exit Function

    End If

    Num_ = Str(InNum)

    k = InStr(1, Num_, ".", 1)

    If k > 0 Then

    Dec = Len(Num_) - k

    If Dec < 2 Then Dec = 2

    Else

    Dec = 0

    End If

    FType = FracType

    If FType <> 2 Then FType = 1

    S_Only = B_Only(InNum, Lang, 0, Dec, "", "", 0, "", "", FType)

    End Function

    Function B_Only(InNum As Variant, Lang, Sex, Dec As Byte, Single_, Ploral_ As String, _

    FSex As Byte, SFrac, PFrac As String, FracType As Byte) As Variant

    Dim Leng, Parts, k As Byte

    Dim FracVal As Double

    Dim Num_ As String

    Dim FracS As String

    Dim FracNum As String

    Dim Only As String

    If IsNull(InNum) Then

    B_Only = Null

    Exit Function

    End If

    Num_ = Str(InNum)

    If InStr(1, Num_, "E+", 1) > 0 Then

    Num_ = ReStr(Num_)

    FracVal = 0

    GoTo DoProcess

    End If

    Num_ = ReFormat(Val(InNum), Dec)

    k = InStr(1, Num_, ".", 1)

    If k > 0 Then FracS = "0" & Mid(Num_, k, Dec + 1) Else FracS = ""

    FracVal = Val(FracS)

    Num_ = Trim(Str(Fix(InNum)))

    Do While Len(FracS) < Dec + 2

    FracS = Insert(FracS, "0", 1)

    Loop

    DoProcess:

    If FracVal = 0 Then FracS = ""

    FracNum = Trim(Mid(FracS, 3, Len(FracS)))

    If FracS <> "" Then

    Select Case FracType

    Case 2

    Select Case Lang

    Case vArabic: FracS = "1" & String(Dec, "0") & "/" & Format(FracNum, String(Dec, "0"))

    Case vEnglish: FracS = Format(FracNum, String(Dec, "0")) & "/" & "1" & String(Dec, "0")

    End Select

    Case 3

    FracS = FracNum & " " & SFrac

    If Lang = vEnglish And CDbl(FracNum) > 1 Then FracS = FracS & "'s"

    Case 4

    Leng = Len(FracNum)

    Parts = Fix((Leng + 2) / 3)

    For k = 1 To (Parts * 3) - Leng

    FracNum = Insert("0", FracNum, 1)

    Next k

    Select Case Lang

    Case vArabic: FracS = AOnly(FracNum, "", SFrac, PFrac, Parts, FSex, FracType)

    Case vEnglish: FracS = EOnly(FracNum, "", "", Parts, 0) & " " & SFrac

    If CDbl(FracNum) > 1 Then FracS = FracS & "'s"

    End Select

    End Select

    End If

    Leng = Len(Num_)

    Parts = Fix((Leng + 2) / 3)

    For k = 1 To (Parts * 3) - Leng

    Num_ = Insert("0", Num_, 1)

    Next k

    If Len(Num_) > 18 Then

    B_Only = InNum

    Exit Function

    End If

    Select Case FracType

    Case 1, 2

    Select Case Lang

    Case vArabic: Only = AOnly(Num_, FracS, Single_, Ploral_, Parts, Sex, Dec)

    Case vEnglish: Only = EOnly(Num_, FracS, Single_ & "", Parts, Dec)

    End Select

    Case 3, 4

    Select Case Lang

    Case vArabic: Only = AOnly(Num_, "", Single_, Ploral_, Parts, Sex, Dec)

    If CDbl(Num_) = 0 And FracS <> "" Then Only = ""

    If FracS <> "" Then Only = AddAnd(Only, FracS, "", "و ", CByte(Lang))

    Case vEnglish: Only = EOnly(Num_, "", Single_ & "", Parts, Dec)

    If CDbl(Num_) = 0 And FracS <> "" Then Only = ""

    If FracS <> "" Then Only = AddAnd(Only, FracS, "", " and", CByte(Lang))

    End Select

    End Select

    If Only <> "" Then

    Select Case Lang

    Case vArabic: B_Only = "فقط " & Only

    Case vEnglish: B_Only = Only & " only"

    End Select

    End If

    End Function

    أرجوا أن يستفيد منه الجميع و لا تنسوا صاحب الكود من الدعاء

  15. السلام عليكم و رحمة الله وبركاته

    أخي سهل بارك الله لك لردك علي و لردودك على باقي الأحوة

    و لكن ما سألت عنه طرح من قبل و قد رأيته و رأيت ردك في هذا الموضوع و لكن ما تم التوصل إليه فى هذا الموضوع هو نفس ما توصلت إليه و هو استخدام

    docmd.setwarning off

    و لكنها أيضاُ غير كافيه

    و هذا والله موضوع هام لمن يريد أن يسوق لبرامجه لتظهر بشكل احترافي

    بارك الله لك و للأخوة

    و من عنده حل أو طريقة للحل فلا يبخل بالمشاركة ..

    و شكراً للجميع :fff:

×
×
  • اضف...

Important Information