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

أبو هادي

المشرفين السابقين
  • Posts

    1,092
  • تاريخ الانضمام

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

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

  1. السلام عليكم نعم أخي محمد أنا أؤيدك كثيرا في هذا الرأي وأن عملية التنبيه بتغير الرقم كافي جدا . أنا صراحة أحتاج إلى جواب من مستخدمي النماذج غير المنضمة ! ولم أكن أرغب في إبداء رأيي في هذا الموضوع لما رأيت كثير من المهتمين بالمبرمجة باستخدامها . فأنا أرى استخدام نموذج منضم بتحكم كامل متاح ولا أرى حتى بوجود أزرار للإضافة أو التعديل أو الحذف داعي لذلك ، إلا إذا كان تسيهلا للمستخدم ، ربما . تحياتي .
  2. السلام عليكم شكرا لكل من ساهم في موضوع الباركود وخصوصا صاحب المثال أخي طارق ، فقد صممت برنامجا للحضور انطلاقا من هذا المثال وهو الآن من البرامج الأساسية بالشركة وقد كفانا عذاب الإدخال الشهري وأخطاء الإدخال وشكاوي الموظفين ممن لا يريحهم نتائج خارج الدوام "OV" . من الأفكار التي طبقتها هو عمل بطاقات ثبوتية للموظفين واستخدام وجه البطاقة في الدخول وظهرها في الخروج . ويمنع منعا باتا استخدام لوحة المفاتيح في الإدخال إلا في حالة ضيقة جدا كضياع البطاقة مثلا ، ولكن استخدام لوحة المفاتيح يكون عن طريق صندوق نص آخر وبكلمة مرور وذلك لسد كل الثغرات للتلاعب بالمعلومات . من الأمور التي أتعبتني بحق هو كيف أجعل البرنامج يتعرف على مصدر الإدخال ، لوحة المفاتيح أو القارئ ، وذلك لأن الكمبيوتر لا يفرق بين الإثنين . حتى فكرت في طريقة لإجبار البرنامج على التمييز بينهما وذلك باحتساب سرعة الإدخال بين رقم وآخر بمعنى لو كان عندنا رقم موظف 102 فسأقوم بدراسة فرق الوقت بين إدخال 1 و 0 وكذلك بين 0 و 2 . فواجهتني مشكلة تشكيك فريق تقنية المعلومات أنه يوجد من يملك سرعة الإدخال مما لن ينفع معها هذا الحقل ، ولكن لأنه لم يوجد حل آخر وكنت شبه مقتنق أن القارئ سوف يكون سريعا جدا مقارنة مع الموظف تم تطبيق الفكرة ونجحت نجاحا مدهشا ولم يستطع أحدا اللحاق بالقارئ . البرنامج ملك للشركة فاسمحوا لي بعدم نشره . دوشتكم :) . تحياتي .
  3. السلام عليكم الحقيقة تراودني فكرة حجز الرقم وكنت على عزم اقتراحها على أستاذنا محمد .. الفكرة وهي في رأسي الآن ليست صعبة وتطبيقها سهل إن شاء الله . ولكن يعيبها فيما لو تراجع المستخدم عن الحفظ وقد تعداه المسلسل فسوف تتكون عندنا أرقام شاغرة كثيرة . بانتظار رد من الأخ محمد ولا يهون الجميع . تحياتي .
  4. السلام عليكم حياك الله أخي . في الخطوة الأولى تم توظيف فكرة عمل مسلسل في الاستعلام ، فقد أنشأت استعلامين وكل منهم احتوى على حقل مسلسل ، وعن طريق هذا الحقل تم ربط الاستعلامين ، وبهذه الطريقة لم يكن هناك داعي لعمل حقل للقراءة السابقة وآخر للقراءة الحالية الحالية بل يكفي حقلا واحدا للقراءة . طبعا كنت أتمنى كخطوة ثانية في المثال عمل جدول للتعرفات ويشار للتعرفة برقمها التسلسلي في جدول القراءات . عموما أنا نفذت الإضافات في رأسي ومن له اهتمام في تصاميم الجداول عليه تطبيق الخطوة الثانية كما أوضحت وإشراكنا معه في الرأي :) . تحياتي .
  5. السلام عليكم هذه دالة لتقسيم الأسماء من ميزاتها : - غير محدودة بعدد تقسيمات معينة بحيث نستطيع على سبيل المثال طلب الجزء 12 من الإسم . - إمكانية طلب الجزء الأخير من الإسم بطلب الجزء رقم 0 "صفر" . - مراعاة الأسماء المركبة حيث لا تفصل الأسماء التي بينها مسافة مثل : - عبد الله ، عبدرب النبي ، آل صالح ، محي الدين ، ناصر الإسلام ، عبد الحق قد تكون أكثرهذه الأسماء قليلة الإستعمال ولكنها موجودة وخصوصا بين العمالة الهندية . Function LaborNameSplit(InName As String, PartNo As Byte) As String Dim FullName, Part, Part2, LPart As String Dim pos, Pos2 As Byte Dim K As Integer LaborNameSplit = "" FullName = RTrim(LTrim(Nz(InName))) & " " Do While True K = K + 1 pos = InStr(1, FullName, " ") Part = Left(FullName, pos) If Part = "آل " Or Part = "عبد " Or Part = "عبدرب " Or _ Part = "Al " Or Part = "Abdul " Then pos = InStr(pos + 1, FullName, " ") Else Pos2 = InStr(pos + 1, FullName, " ") If Pos2 > 0 Then Part2 = Mid(FullName, pos + 1, Pos2 - pos) Select Case Part2 Case "الله ", "الحق ", "الإسلام ", "الدين " pos = Pos2 End Select End If End If If pos = 0 Then Select Case PartNo Case Is > 0 If (K - 1) = PartNo Then LaborNameSplit = "" End If Case Else LaborNameSplit = LPart End Select Exit Function End If Select Case K Case PartNo LaborNameSplit = Left(FullName, pos - 1) End Select LPart = Left(FullName, pos - 1) FullName = Mid(FullName, pos + 1, Len(FullName)) Loop End Function انتبهت الآن أنه قد ينتج خلل لو أنه لم ينقح الإسم من المسافات الزائدة أي بوجود أكثر من مسافة متلاصقة . تحياتي .
  6. السلام عليكم أخي محمد .. الحقيقة أنها مقصودة عندما يتم الدخول بتقويم مختلف عن التقويم التي تم التعامل معه ، فأول ضغطة هي للعودة إلى التقويم الذي تم الدخول به إلى النتيجة للإحتياط بحيث يتأكد المستخدم أنه أدخل تاريخ للتقويم الأصل وليس لتقويم موافق آخر ، أما لو تم الدخول على سبيل المثال ميلادي وتم اختيار ميلادي فيكفي ضغطة واحدة لقبول التاريخ وكذلك مع الهجرى وأم القرى . آمل أني استطعت توصيل المعلومة ولم أتوهك . تحياتي .
  7. السلام عليكم مثال قديم .. آمل أن يكون مفيدا . تحياتي . Union_97.zip
  8. السلام عليكم من ميزات النتيجة بشكلها الأخير هو إمكانية الاستغناء عن كل المرفقات معها من نماذج وجداول ووحدات نمطية . فمن يرى أنه لن يستفيد من تقويم أم القرى فما عليه إلا أن يحذف موديول أم القرى وستتكيف النتيجة آليا لتكون هجري وميلادي فقط . كذلك من يرى أنه لا داعي لتحديد عطلة الأسبوع فيمكنه حذف النموذج الخاص بتحديد عطلة الأسبوع وستقوم النتيجة باعتماد الجمعة آليا . وكذلك نموذج الإجازات يمكن حذفه دون أدنى تأثير على عمل النتيجة . يعني من كل هذه المقدمة أنك تستطيع أن تستقطع نموذج النتيجة لوحده وإضافته لبرنامج وسيعمل بإذن الله . ولكن هناك موديول خاص لاستدعاء النتيجة عن طريق حقول التاريخ حتى يمكنها التبديل في الحقل مباشرة . وبالمناسبة يمكن استدعاء النتيجة من حقل والتبديل في حقل آخر في حالة أن الحقل هو عبارة عن معادلة أو محمي ، أي لا يقبل التعديل . ومن ميزاتها الأخرى : - معرفة الحقل الذي تم استدعاء النتيجة منه ، حيث أحيانا نغفل ثم لا نعلم من أين استدعينا النتيجة فبدلا من غلقها ثم فتحها من جديد يمكن الضغط على زر خاص بهذا الأمر . - تغيير سريع للتاريخ بكتابة التاريخ في صندوق التاريخ مباشرة . - تغيير تاريخ الجهاز . - تبديل واجهة النتيجة بين العربي والإنجليزي . طبعا قبل أن أضع المثال رأيت خللا بسيطا لن أخبر عنه :) ومن رأى منكم أي خلل الرجاء إعلامنا به لنصلحه . هناك إضافة برمجية جميلة باستخدام التنسيق المشروط في نموذجي الإجازات والعطل الأسبوعية .. لا أعلم إذا يؤيدني المشرفون في فصلهما كمشاركة جديدة أو فقط نشرح عنها في هذا الموضوع . تحياتي .
  9. السلام عليكم أشكرك أخي محمد ولكنها لم تكن آخر نسخة من المثال :) أحب أن أنوه أنه يحتوي على طريقة تلوين السجلات وتلوين السجل الحالي . تحياتي . الملفات المرفقة NewCalendar_2002.zip ( 163.83ك ) عدد مرات التنزيل: 278 تم تعديل النتيجة وملحقاته كالتالي : 1 - تم إصلاح المشكلات التي تحدث مع قواعد البيانات التي تستخدم التقويم الهجري كافتراضي . 2 - تم إضافة اللغة كافتراضي حيث كانت سابقا تفتح النتيجة على اللغة العربية أما الآن فهي اختيارية . 3 - تم التعديل كثيرا في نموذج العطل السنوية حيث كان لا يلائم قواعد البيانات المستخدمة للتقويم الهجري كافتراضي . NewCalendar.rar
  10. السلام عليكم أخي الفاضل محمد .. لقد أضفت نموذج ثالث ، طبقت فيها فكرة جعل النموذج منضم قبل الإضافة ثم فك الإنضمام بعدها . غير متأكد إذا هذه الفكرة ستنشئ مشاكل أم لا ، ولكني فحصتها ولم تواجهني مشاكل حتى الآن . تحياتي . ملاحظة : تم اعداد مثال مجمع فى مشاركة تالية
  11. السلام عليكم حي الله أبا عقيل .. طولت الغيبة علينا . التعرفة الجديدة : Level Range Rate 1 1100 0.05 2 1100 0.05 3 1100 0.10 4 1100 0.10 5 1100 0.12 6 1100 0.12 7 1100 0.15 8 1100 0.20 9 1100 0.22 10 1100 0.24 11 0 0.26 تحياتي .
  12. السلام عليكم أخي الفاضل .. الأيام غير داخلة في عملية الحساب ، هي مجرد معلومة إضافية . المعلومات التي بنيت عليها المثال قديمة كما نوهت عنها من قبل حيث استقيتها من ملف الأكسل ، لذا أرى أن تقوم بالتعديل في جدول الشرائح للحقلين مقدار الشريحة Range والتعرفة Rate ثم التجربة مرة أخرى . تحياتي .
  13. السلام عليكم مثال تحت التجربة لتحريك الكائنات في النماذج المفتوحة كما هي في حالة التصميم وذلك بالضغط على زر الفأرة اليسار ثم تحريك الكائن إلى الموقع المطلوب ، مع إمكانية حفظ المواقع في جدول . ملاحظة : فكرة حفظ المواقع للكائنات في جدول هي من اقتراح أخينا العزيز حارث . آمل التجربة وإبداء الرأي .. لا تبخلوا علينا . تحياتي . Desktop_97.zip
  14. السلام عليكم هذا مثال كخطوة أولى .. عندي شعور أني عقدتها حبتين ، من يستطيع تبسيط الأمر فليتفضل مشكورا . تحياتي . ELCal_97.zip
  15. السلام عليكم ملف اكسل عملته من زمان (على الطاير) ، قد يساعد في الوصول للحل . تحياتي . ELCAL.zip
  16. السلام عليكم لإنشاء label تابع للـ control : Set ctlNew = CreateControl(frm.Name, acTextBox, , , , 1000, 500) ctlNew.Name = "txtEmpName" Set ctlNew = CreateControl(frm.Name, acLabel, , ctlNew.Name, "Emp Name: ", 100, 500) تحياتي .
  17. السلام عليكم :d :) :d ثمرات هذه المعلومة سوف ترى النور قريبا . تحياتي .
  18. السلام عليكم نعم أخي محمد .. الكود مناسب لزر الحفظ . وأقترح أن يكون هناك مثالا ثانيا منفصلا لنموذج بدون مصدر بيانات . تحياتي .
  19. السلام عليكم وجدتها أخي محمد :) MsgBox Me.Text1.Controls(0).Name, , Me.Text1.Controls.Count هذا الكود يعرض لنا إسم الـ label التابع له ويعرض لنا رقم واحد إذا كان له تسمية أو صفر في حالة عدم وجود تسمية . تحياتي .
  20. السلام عليكم أخي محمد طاهر .. ما قصدته في الإحتياط بعمل تكرار كالتالي : Private Sub Command5_Click() On Error Resume Next Do Err.Clear If Me.NewRecord Then Me.id = checkid() DoCmd.GoToRecord , , acNewRec Loop Until Err.Number <> 2105 Me.id = Nz(DMax("[id]", "names") + 1) End Sub مما سيكون أكثر انسيابا في العمل دون توقف وخصوصا لو صادف إثنان في إضافة نفس الرقم في نفس الوقت . تحياتي .
  21. السلام عليكم شكرا لأخي امير عاطف وشكرا لأخي محمد طاهر ولا يزال السؤال الأصل قائما . العلاقة البرمجية بينهما . تحياتي .
  22. السلام عليكم Private Sub Command5_Click() [b] Me.id = checkid()[/b] DoCmd.GoToRecord , , acNewRec Me.id = Nz(DMax("[id]", "names") + 1) End Sub ما قصدته هو السطر الأول من الكود .. فلم أنتبه أنك أضفته واعتقدت أنك أضفت السطر الثالث فقط دون الأول :) الآن المثال 100% . طبعا لزيادة الاحتياط لو كان هناك أكثر من مستخدم وعملية الإضافة سريعة فسوف تكون عملية الفحص لمرة واحدة غير كافية مما يتطلب عمل تكرار للتأكد من عدم وجود أي خطأ أثناء الإضافة وحتى يتم التأكد تماما من الإضافة . تحياتي .
  23. السلام عليكم أخي محمد .. شكرا على اهتمامكم . لم أستطع الوصول إلى خاصية AutoLabel فهل يمكنكم التفصيل . تحياتي .
  24. السلام عليكم بارك الله فيك أخي محمد على هذا المثال ولي ملاحظة على شكل سؤال : أين الفحص عند الإضافة عن طريق زر إضافة سجل جديد كما هو في زر حفظ ؟ . تحياتي .
  25. السلام عليكم النموذج عند التصميم بعض الـ controls لها labels تتبعها ، فلو قمنا بتحريكها سوف يتحرك معها الـ label حيثما تذهب . السؤال : ما هو الرابط بينهما ، وكيف يتم التعرف عليه ، وهل يمكن ربط label منفصل مع كنترول تم حذف الـ label الأصل التابع له . اسمحوا لي لاستخدام الأسماء الإنجليزية حيث لا أعرف المسميات بالعربي وكثيرا أترجمها بنفسي لأسهل على القراء ولكني في آخر مشاركة لي أخطأت في الترجمة ولا أحب أن أكرر الخطأ ، كما أني الآن بالذات لم أستطع أن أترجم كلمة label ولا أدري ماذا حصل بذاكرتي :) فعذرا . تحياتي .
×
×
  • اضف...

Important Information