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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    203

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

  1. وهاد تعديل طفيف تنيسق شرطى انظر عندم عدم وجود نتيجة فى ال sCOR وعند التحديث للقيم وعند التركيز داخل الحقل وبما انك رجل منذ القدم معنا ياريت تختار افضل اجابة ليتم العلم انه تم الرد وتوصلت للنتيجة المطلوبة ولا يحتاج الى متابعة وو... Evaluation-HR- Final.zip
  2. شوف يا سيدى انا كنت ناوى اعمل جدول تانى زى ما قلت لك فى الرد النظرى على اعتبار ان التقييم شهرى ولكن بما انه هناك EvalID فتمام انظر الى الجدول tblEvalDetails تم اضافة حقل EvalID ليكون لكل موظف تقيمه الخاص تم ربط الحقول EvalID , EmpID , QuestionID مع بعضهم كمفتاح اساسى حتى لا يتم تكرار نفس الاسئلة لنفس الموظف لنفس رقم التقييم تم عمل استعلام الحاقى باسم qryAddQusToEvaDtils وظيفته الحاق كل الاسئلة فى الجدول tblEvalDetails واضافة رقم الموظف ورقم التقييم فى النموذج الخاص بالتقيم وعند اختيار موطف يتم تشغيل الاستعلام لان الكود تم وضعه عند تحديث مربع سرد الموظف بس خلاص هو بس بيتم احضار كل الاسئلة دفعة واحدة وبيتم وضع التقييم على كل سؤال فى النموذج الفرعى واحد بعد الاخر لان قبل التحديث كان لابد ان يضيف الاسئلة فى النموذج الفرعى تباعا من خلال مربع السرد
  3. هو انت تريد تعديل ام شرح ؟ انت قلت تريد تعديل والان صار التعديل معك كما تمنيت تماما
  4. اتفضل يا سيدى الشرح بعد التجربة ان كان المطلوب تم تنفيذه Evaluation-HR- Final.zip
  5. سؤال لو تكرمت EvalID كيف يتم تحديده ومتى يتم تغيره ومن اين ؟
  6. انت انضممت منذ 4 ساعات وعلمت وتيقنت جيدا ايضا ... ماشاء الله عليك ابشر ان شاء الله جارى عمل اللازم
  7. شوف يا سيدى انت تعمل جدول تسميه مثلا tblEmpScore ولما تفتح نموذج EvaluationDetails ولما تختار موظف والتاريخ للشهر يتم تشغيل استعلام الحاقى لكافة الأسئلة الى الجدول tblEmpScore واللى هيكون هو مصدر بيانات النموج الفرعى اللى اسمه EvaluationHead طبعا تظبط اللينكات بين الاتنين بالكود والشهر وطبعا بما انك عامل القاعدة زى ما تفضلت التطبيق راح يكون سهل عليك واللا مو انت اللى صممتها وتريد التعديل وخلاص اعترف حاول عمل اللى قلت لك اياه واى شئ يصعب عليك اسأل لا تتردد وان شاء الله تجد الدعم المناسب قدر المستطاع
  8. طيب انا فتحت القاعدة اعمل ايه بقى ؟!
  9. رائع ولو وضعت القاعدة هنا سوف تفيد الجميع مثلما تريد وكذلك سوف تجد المساعدة اللازمة قدر المستطاع وستجد هنا ان الجميع يتواصل معك وانك تتواصل مع الجميع كما تتمنى
  10. السلام عليكم استاذى القدير ومعلمى الجليل @د.كاف يار تحية كيبة عطرة ... اعجبتنى الفكرة جدا جدا جدا ولكن لى رجاء ممكن شرح كيفية ضبط اماكن ازرار الامر ان ذادت عن المرفق او قلت
  11. ماشاء الله استاذى الجليل ومعلمى القدير الاستاذ @Barna انا انسان معقد , وافكارى مثلى
  12. تعديل رقم (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
  13. الحل الامثل تبعا للمرفق ان شاء الله اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ 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
  14. يمكنكم استخدام الروتين الاتى لإزالة اى حركات تشكيل ويتم استدعاءه كم خلال 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
  15. ممكن يختفى والاصل اللى بالتشكيل عندك اصلا هات مرفق واعرفق ازاى
  16. الملف موجود فى مشاركة الباش مهندس @Eng.Qassim ورابط المرفق مرة أخرى Converter Arabic and Unicode (v. 3).accdb
  17. ممكن مرفق يختوى على النموذج فقط .؟
  18. بناء على طلب احد الاخوة شرح تفصيلى لدالة: 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
  19. علشان تقدر تتعامل بسهولة شوف الشرح المصور
  20. ماشاء الله شرح مبسط ومنسق ولا اروع طيب احيانا بيكون فى استعلام داخل استعلام لكن فى الحقول وليس فى المعيار هل يمكن التطرق اليه
  21. -- الوقت والتاريخ تاريخ آخر يوم فى الشهر المحدد 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
  22. اتفضل يتم وضع النص المراد الظهور له فى كل صفخة فى الـ PageFooterSection Database11.accdb
  23. اعتقد الحل موجود بإجابة الباش مهندس @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
  24. بارك الله فى عمرك استاذى الجليل
×
×
  • اضف...

Important Information