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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    208

كل منشورات العضو ابو جودي

  1. ماشاء الله استاذى الجليل ومعلمى القدير الاستاذ @Barna انا انسان معقد , وافكارى مثلى
  2. تعديل رقم (2).. افضل واسرع بعد التمعن فى الاكواد واحساسى بعدم الرضا عن النتيجة السابقة بفضل الله تعالى تم تغيير الفكرة للأفضل اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode Public Function StripSpChars(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 13 Or _ intChar = 32 Or _ intChar = 40 Or _ intChar = 41 Or _ intChar = 45 Or _ intChar = 46 Or _ intChar = 58 Or _ intChar = 91 Or _ intChar = 93 Or _ intChar = 95 Or _ intChar = 171 Or _ intChar = 187 Or _ intChar = 1548 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Or _ intChar >= 1632 And intChar <= 1641 Or _ intChar >= 48 And intChar <= 57 Then StripSpChars = StripSpChars & ChrW(intChar) End If Next lngCtr StripSpChars = Trim(StripSpChars) End Function ثانيا : الاكواد داخل النموذج روتين فرعى لتغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل - تيم تغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل حسب حالة المرجع X الذى تم الاعلان عنه فى بناء الروتين Sub GoRecdSource(ByRef x As Boolean) Select Case x Case Is = False Me.txtnass.ControlSource = "[nass]" lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") Case Is = True Me.txtnass.ControlSource = "=StripSpChars([nass])" lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") End Select End Sub وبعد اذن استاذى الجليل ومعلمى القدير و والدى الحبييب الاستاذ @jjafferr النظر الى التعديل الجديد لرؤية التعديل الجديد وابداء الرأى عن هذه الفكرة وإرشادى الى ما ينقص تمام العمل واخيرا مرفق التطبيق 12446-1 (3).accdb
  3. الحل الامثل تبعا للمرفق ان شاء الله اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode Public Function StripSpChars(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 13 Or _ intChar = 32 Or _ intChar = 40 Or _ intChar = 41 Or _ intChar = 45 Or _ intChar = 46 Or _ intChar = 58 Or _ intChar = 91 Or _ intChar = 93 Or _ intChar = 95 Or _ intChar = 171 Or _ intChar = 187 Or _ intChar = 1548 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Or _ intChar >= 1632 And intChar <= 1641 Or _ intChar >= 48 And intChar <= 57 Then StripSpChars = StripSpChars & ChrW(intChar) End If Next lngCtr StripSpChars = Trim(StripSpChars) End Function ثانيا : الاكواد داخل النموذج الاعلان عن متغير للاحتفاظ برقم السجل الحالى من خلال الحقل txtid Dim idRec As Integer روتين فرعى للذهاب للسجل حسب قيمة المتغير السابق idRec للحافظ على الذهاب الى السجل الحالى Sub GoRec() With Me.Recordset .FindFirst "ID=" & idRec End With End Sub روتين فرعى لتغير مصدر بيانات النموذج - يحتفظ الروتين برقم السجل الحالى بالحاق الرقم الى المتغير idRec - تيم تغيير جملة بناء الاستعلام حسب حالة المرجع X الذى تم الاعلان عنه فى بناء الروتين - تغيير عنوان مربع الاختيار تبعا لحالة مصدر البيانات المطلوب استخدانه Sub GoRecdSource(ByRef x As Boolean) idRec = txtid Select Case x Case Is = False Me.RecordSource = "SELECT book.nass, book.id, book.part, book.page FROM book;" GoRec lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") Case Is = True Me.RecordSource = "SELECT StripSpChars([book]![nass]) AS nass, book.id, book.part, book.page FROM book;" GoRec lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604") End Select End Sub الكود المستخدم على مربع الاختيار يتم استدعاء الروتين الفرعى المختص بتغيير مصدر بيانات النموذج تبعا لحالة مربع الاختيار الذى يدرج قيمته الى المتغير المستخدم كمرجع فى الروتين الفرعى السابق GoRecdSource (ChkCase) ما سبق اجتهاد شخصى >>---> قد تكون هناك طرق افضل وفى انتظار رأى استاذى الجليل ومعلمى القدير الاستاذ @Barna واخيرا مرفق التطبيق 12446-1 (2).accdb
  4. يمكنكم استخدام الروتين الاتى لإزالة اى حركات تشكيل ويتم استدعاءه كم خلال StripSpCharsOnly("النص") 'OR in Forms StripSpCharsOnly(txtName) 'or in Query StripSpCharsOnly(FildeName) Public Function StripSpCharsOnly(strString As String) As String Dim lngCtr As Long Dim intChar As Integer If strString & "" = "" Then Exit Function For lngCtr = 1 To Len(strString) intChar = AscW(Mid(strString, lngCtr, 1)) If intChar = 32 Or _ intChar >= 1569 And intChar <= 1594 Or _ intChar >= 1601 And intChar <= 1610 Or _ intChar >= 1648 And intChar <= 1649 Then StripSpCharsOnly = StripSpCharsOnly & ChrW(intChar) End If Next lngCtr StripSpCharsOnly = Trim(StripSpCharsOnly) End Function مثال فى المرفق : Strip Special Characters.zip
  5. ممكن يختفى والاصل اللى بالتشكيل عندك اصلا هات مرفق واعرفق ازاى
  6. الملف موجود فى مشاركة الباش مهندس @Eng.Qassim ورابط المرفق مرة أخرى Converter Arabic and Unicode (v. 3).accdb
  7. ممكن مرفق يختوى على النموذج فقط .؟
  8. بناء على طلب احد الاخوة شرح تفصيلى لدالة: DLookup Function الوصف-Description : ترجع الدالة DLookup قيمة حقل واحد إذا لم يكن هناك سجل يلبي المعايير أو إذا كان المجال لا يحتوي على أي سجلات، ترجع الدالة DLookup القيمة Null إذا كان هناك أكثر من حقل ترجع الدالة DLookup التكرار الأول لذلك يجب تحديد معايير تضمن أن تكون قيمة الحقل التي يتم إرجاعها بواسطة الدالة DLookup فريدة قد تحتاج إلى استخدام قيمة مفتاح أساسي للمعايير او قيمة فريدة للتأكد من أن الدالة DLookup ترجع قيمة فريدة بناء الجملة الدالة-Syntax DLookup : يختلف بناء الجملة الخاص بوظيفة DLookup الشكل العام البسيط لبناء الجملة يكون كالتالى DLookup("FieldName" , "TableName") وعندما نريد بناء جملة ترجع قيمة حقل من جدول بناء على قيمة محددة لابد ان يحتوى بناء الجملة على معيار الشكل العام لبناء الجملة كالتالى DLookup("FieldName" , "TableName" , "Criteria") و لابد من الاخذ فى الاعتبار انه سوف نعتمد فى بناء جملة DLookup من هذا النوع الذى يعتمد على معيار على نوع البيانات المستخدم فى هذا المعيار انواع البيانات المستخدمة فى المعيار هى لا تخرج عن الثلاث انواع الاتية (رقم - نص - تاريخ - Numeric - String - Date ) ودائما تلك الجزئية هى مصدر القلق والخطأ والتساؤل ولكى نبسطها DLookup("FieldName" , "TableName" , "Criteria = n") '|Numeric DLookup("FieldName" , "TableName" , "Criteria = 'S'") '|String DLookup("FieldName" , "TableName" , "Criteria = #D#") '|Date بكل بساطه فى بناء الجملة الرئيسي عندما نستخدم معيار يحتوى على نوع بيانات من النوع رقم فقط تم وضع علامة = بعد Criteria ثم الرقم بدون اى اضافات عندما نستخدم معيار يحتوى على نوع بيانات من النوع نص فقط تم وضع علامة = بعد Criteria ثم النص بين علامتين تنصيص مفرده ' عندما نستخدم معيار يحتوى على نوع بيانات من النوع تاريخ فقط تم وضع علامة = بعد Criteria ثم التاريخ بين علامتين هاش # يستخدم ما سبق عندما نكتب قيمة المعيار بطريقة مباشرة وعندما يكون المعيار مستمد من عنصر موجود اما حقل فى استعلام او مربع نص فى نموذج يكون بناء الجملة كالأتى DLookup("FieldName" , "TableName" , "Criteria =" & [ObjectName]) '|Numeric DLookup("FieldName" , "TableName" , "Criteria ='" & [ObjectName] & "'") '|String DLookup("FieldName" , "TableName" , "Criteria =#" & [ObjectName] & "#") '|Date ملاحظة هامة عند التعامل مع التاريخ لابد ان يكون تنسيق التاريخ فى المعيار على الطريقة الأمريكية mm/dd/yyyy -------------------------------------------------------------------------------------------------------------------------- وعندما يكون المعيار مستمد من متغير يتم اسناد قيمة المعيار اليه داخل محرر الأكواد يكون بناء الجملة كالأتى ولا ننسى عند التعامل مع التاريخ لابد ان يكون تنسيق التاريخ فى المعيار على الطريقة الأمريكية mm/dd/yyyy Dim MyVariable As String Dim stLinkCriteria As String MyVariable = 1 stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'MyVariable = "Mahmoud" 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'MyVariable = "03/01/1982" 'stLinkCriteria = "[FldCriteria] =#" & MyVariable & "#" '|Date stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'stLinkCriteria ="[FldCriteria] =#" & MyVariable & "#" '|Date DLookup("FieldName", "TableName", stLinkCriteria) مثال متقدم : احضار بيانات دفعة واحدة من اكثر من حقل عن طريق المصفوفات من خلال الـ DLookup على طريقة استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr Dim strDLookupFlds As String Dim stLinkCriteria As String Dim MyVariable As String Dim Arry() As String Dim ChosFld As String MyVariable = 1 stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'MyVariable = "Mahmoud" 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'MyVariable = "03/01/1982" 'stLinkCriteria = "[FldCriteria] =#" & MyVariable & "#" '|Date strDLookupFlds = DLookup("[Fld1] & '|' & [Fld2] & '|' & [Fld3] & '|' & [Fld4] & '|' & [Fld5] & '|' & [Fld6] & '|' & [Fld7] & '|' & [Fld8]& '|' & [Fld9]", "[tblName]", stLinkCriteria) Arry = Split(strDLookupFlds, "|") Debug.Print strDLookupFlds ChosFld = Arry(0) Debug.Print ChosFld 'Arry(0) = Fld1 'Arry(1) = Fld2 'Arry(2) = Fld3 'Arry(3) = Fld4 'Arry(4) = Fld5 'Arry(5) = Fld6 'Arry(6) = Fld7 'Arry(7) = Fld8 'Arry(8) = Fld9
  9. علشان تقدر تتعامل بسهولة شوف الشرح المصور
  10. ماشاء الله شرح مبسط ومنسق ولا اروع طيب احيانا بيكون فى استعلام داخل استعلام لكن فى الحقول وليس فى المعيار هل يمكن التطرق اليه
  11. -- الوقت والتاريخ تاريخ آخر يوم فى الشهر المحدد LastDayInMonth(01/01/2022) Public Function LastDayInMonth(ByVal AnyDate As Date) As Date LastDayInMonth = DateSerial(Year(AnyDate), Month(AnyDate) + 1, 0) End Function ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- عدد ايام الشهر المحددد NumofDays(01/01/2022) Public Function NumofDays(ByVal AnyDate As Date) NumofDays = Day(DateSerial(Year(AnyDate), Month(AnyDate) + 1, 0)) End Function
  12. اتفضل يتم وضع النص المراد الظهور له فى كل صفخة فى الـ PageFooterSection Database11.accdb
  13. اعتقد الحل موجود بإجابة الباش مهندس @Eng.Qassim فى المرفق الذى رفعه بمشاركته Select Case State Case Is = "موقف": Me.S1 = "0" Case Is = "غياب": Me.S1 = Me.الراتب - (Me.الراتب * 0.2) Case Is = "مباشر": Me.S1 = Me.الراتب End Select
  14. بارك الله فى عمرك استاذى الجليل
  15. شهادة اعتز بها جزاكم الله خيرا بس تعديل بسيط لو كان مربع السرد comType بلا قيم Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select If MyWher = "" Then TargetPlas.Value = "": Exit Sub TargetPlas.Value = MyWher * txtCost.Value
  16. انا اريد الاخرى لتعم الفائدة يمكن افضل من فكرتى ونتعلم منها احسك تقول ايش هاد الرخم مشكلته انحلت ومازال رخم بس اوعاك تأتى بفكرة قديمة لى من المنتدى
  17. جزاكم الله خيرا الكرام اسال الله تعالى القبول وان يجعلنى عند حسن ظنكم بى
  18. تمام الان جرب الكود الاتى يا باش مهندس @Eng.Qassim Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select TargetPlas.Value = MyWher * txtCost.Value المرفق ACC_2.accdb
  19. نعم قمت بعمل متغير باسم MyErfMsg وبعدين تقتح التطبيق الاتى اكتب به ما تريد كتابته باللغة العربية ثم قم بتحويله ونسخه واسناد ما تم نسخه الى المتغير Converter Arabic and Unicode (v. 3).accdb
  20. فى هذا الكود x(0) = p1 x(1) = p2 x(2) = p3 x(3) = p4 x(4) = p5 x(5) = p6 x(6) = p7 x(7) = p8 x(8) = p9 Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select Dim Myx As String Myx = "2.5" TargetPlas.Value = MyWher * Myx
  21. وليه الحلقة التكرارية المفروض الكود سيتم تنفيذه على كل سجل مستقبلا قد يكون فقط الان لان السجلات لم تأخذ القيم المفروضة واانا والله الى الان مش فاهمه لو فهمت هو عاوز ايه ان شاء الله اضع له الاجابة تفصيلا انا احاول وضع الاجابة بدون التعرض لادراج قيم الى متغيرات والتى تستوجب فتح الفورم الاول ولا حتى بدون متغيرات والتى تستلزم فتح الفورم الاول اثناء العمل انا عملت له كود يحضر كل القيم على طريقة استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr بس باقى توظيف الكود للتعامل مع الحالات المختلفة وهو مصر انه ياخدنا جميعا للارتباط بقيم الفورم والجميع جزاهم الله خيرا فكروا بناء على طلبه انا شايف ان القيم ثابته وسجل واحد فقط لذلك اخرجت نفسى من العمل مع التعاطى للبيانات من خلال الفورم
  22. مش فاهمك على فكرة انت عارف انا فهمى تقييل ع العموم المرفق النهائى بدون المشكل وبدون اى زيادات التجارب اللى كانت ع الاكواد Converter Arabic and Unicode (v. 3).accdb
  23. اتفضل تجربة Dim MyWher As String Dim A As String Dim x() As String A = DLookup("[p1] & '|' & [p2] & '|' & [p3] & '|' & [p4] & '|' & [p5] & '|' & [p6] & '|' & [p7] & '|' & [p7]& '|' & [p9]", "[PlatPrice]") x = Split(A, "|") 'MyWher = x(0) 'Debug.Print MyWher Select Case Nz(comType, "") Case Is = "": MyWher = "" Case Is = "click": MyWher = x(0) Case Is = "Engagement": MyWher = x(1) Case Is = "impressions": MyWher = x(2) Case Is = "IGTV": MyWher = x(3) End Select Dim Myx As String Myx = "2.5" TargetPlas.Value = MyWher * Myx غير قيمة Myx كما تريد
  24. القيمة (x) فين مكانها ؟! من اين تأتى بهذه القيمة
×
×
  • اضف...

Important Information