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

ابوخليل

أوفيسنا
  • Posts

    12,480
  • تاريخ الانضمام

  • Days Won

    233

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

  1. المعادلة الموجودة هي جمع الساعات والدقائق وتنسيق الحقل هو وقت قصير ولما تصل الى 24.59 تنقلب الساعات الى صفر . وسبق قلت لا بد يكون الحقل رقمي وتنسيقه= رقم عام في الفورم لما يسجل الموظف دخول يكون الحدث = Now() ولما يسجل انصراف يكون الحدث ايضا = Now() وايضا داخل الحدث نفسه يتم تنفيذ الكود التالي : alfrg=DateDiff("H",[comTime],Now()) وغير ما يلزم باعتبار comTime وقت الدخول ، و alfrg هو حقل الفرق ، وحرف H يعني ان الفرق بالساعات
  2. اخوي ابو زاهر لاني علقت على مشاركتك نقلت مثالك على جهاز اخر لاني اعمل على 2003 جرب المثال المرفق : ازل العلامة من النموذج الفرعي ثم انقر تحديث ستلاحظ ان السجل اختفى الطريقة : انظر الى مصدر النموذج الفرعي ( الاستعلام الفرعي الداخلي ) وانظر المعيار في حقل مستأجرة لاحظ انه لايمكنك عرض السجل مرة اخرى داخل هذا النموذج الفرعي حتى يتم تحديد الخانة . ولكن يمكنك رؤيته والتعديل عليه من نموذج آخر غيره معدل2.rar
  3. لا فرق بين الاستعلام والجدول فاي واحد منهما يكون مصدر بيانات وعل كل حال يمكن تطبق فكرتك داخل الجدول عند توقيع الانصراف يتم توظيف دالة DateDiff فلما يوقع الانصراف يتم رصد فرق الوقت في الحقل
  4. بالعكس سيصعب عليك التعلم .. اكتبها بالعربي ولكن بحروف اجنبية ,, المهم في المسألة انها تسير من اليسار لليمين
  5. ملاحظات : 1- الحقل المحسوب في الجدول لا يدعم دالة DateDiff لذا تم التطبيق في الاستعلام 2- لاحظ اول سجل في الاستعلام كان الحضور في الصباح والخروج في صباح الغد 3- يشترط في حقل الفرق ان يكون رقمي ويمكن حساب الفرق حسب الطلب اما بالايام او الساعات او الدقائق .. اليك المرفق Database11.rar
  6. نعم وتكتفي بحقلي تاريخ الدخول وتاريخ الخروج
  7. رؤيتك هي نوع من التخصيص لو طرحت فكرتك هذه في قسم : مجلس الموقع ، لنرى وجهات النظر وخاصة ادارة الموقع مع الشكر والتقدير
  8. وعليكم السلام نعم يوجد حل ولكن بشرط تغيير تصميم جدولك هذا بحيث يكون حقل تسجيل الحضور = Now اي General Date وتستغني عن حقلي in و out حينها يمكنك حساب اكثر من 24 ساعة
  9. السلام عليكم في هذا الرابط طريقة استخلاص اوقات التأخر واحتسابها وترحيل الفائض ارجوا ان تجدوا الفائدة
  10. السلام عليكم ورحمة الله وبركاته هذا الموضوع مما تكثر الحاجة اليه الاصل عند تسجيل الحضور هو ادخال الوقت والتاريخ الكامل General Date ثم التعامل معه من خلال الاستعلامات والوحدات النمطية وهذا التاريخ هو المعمول به في اجهزة الحضور عامة كقارىء البصمات وغيرها ، والملاحظ ان بعض الاخوة المبرمجين يقومون بجلب بيانات الحضور من الجدول المصدر والتعامل معها اثناء الجلب وتفكيك البيانات في جدول جديد خاص . وفي الصورة ادناه نموذج من الجدول المعدل وهو الذي سوف اعتمده في شرحي ومثالي المرفق علما اني افضل العمل مباشرة على مصدر البيانات الاصل ثم نستخدم الاستعلام لضم هذا الجدول مع جدول الاسماء وعمل تجميع دقائق الـتأخر خلال شهر ونستعين بوحدة نمطية صنعناها لحساب التأخر بالايام وحساب المتبقي من الدقائق ثم ترحيلها الى الشهر التالي كرصيد سابق وحساب الايام بناء على ساعات التأخر (يكون حسب النظام المتبع ) فيختلف من مؤسسة الى اخرى فمنها من يحسب اليوم بــ 5 ساعات تأخر أو 7 ساعات ... وهكذا وفي مثالي هذا جعلت اليوم ساعتي تأخر (120 دقيقة ) ويظهر جليا في الوحدة النمطية المستخدمة Public Function trhelSn(mnthID, uid As Integer) ' uid يمثل رقم الموظف في الاستعلام On Error Resume Next Dim i, ii, a1, a2, a3, a4 As Integer ii = mnthID ' يمثل رقم الشهر في الاستعلام a2 = 0 For i = 1 To ii a2 = a4 ' ترجع بالرصيد السابق للشهر التالي a1 = Nz(DLookup("secnd", "qryscnd", "monthx=" & i & "And nID =" & uid), 0) ' ترجع بحقل الدقائق الذي تم جمعه في الاستعلام a3 = (Nz(a1) + Nz(a2)) \ 120 ' ترجع بعدد الايام بناء على عدد الدقائق المعتمد وهي هنا 120 دقيقة a4 = (Nz(a1) + Nz(a2)) Mod 120 ' ترجع بالمتبقي من الدقائق في الشهر الحالي Next End Function ' مصطلح الشهر الحالي والشهر التالي باعتبار الابتداء من اول شهر فأول شهر في الاستعلام يعتبر الحالي ثم التالي .. التالي ... وهكذا وهذه هي النتيجة النهائية : وهنا تكملة للموضوع احتساب التأخر بالدقائق وترحيل .rar
  11. هذا غير صحيح ؛ لم تكتبه هنا حرجا منه بل مجبر اعدت كتابته هنا بعد ان اغلقنا موضوعك هناك فلم الحلف بالله !
  12. اخواني الكرام نرجو مراعاة قواعد المشاركة وافراد كل موضوع بسؤال مستقل نأمل استشعار المصلحة العامة
  13. يكفي نسخة من الجدول ضمن المثال يجب وجود نسخة من جدول الحضور والانصراف .. وهذا ما يعنيه استاذنا
  14. السلام عليكم من خبرتي هنا ومن اطلاعي على كثير من الاعمال مشكلة تواجهنا نحن المبرمجين حين نريد تطبيق فكرة انه تقدح في رؤوسنا رسمة للطريق (طريقة تنفيذ الفكرة) وهذا القدح لابد وان له اصل وخلفية ثقافية وهو الاطلااع على امثلة مشابهة وغالبا هذه الامثلة لا ترقى الى مرتبة الاتقان والاحتراف ، ومن هنا حين يسلك المبرمج هذه الطرق لا بد يتوه في النهاية وقد يصل الى طريق مسدود . وكان الاولى بنا ولو كنا على درجة جيدة من الاحتراف ان نطرح المسألة قبل البدء من اجل النقاش ومشاركة العقول خبرتها وتجاربها . اختنا الكريمة : توظيف جداول عديدة واستعلامات الحاق ليست طريقة صحيحة تنفيذ فكرتك يجب الا يتعدى جدول الحضور واستعلام واحد فقط فان زاد عن ذلك فهو نقطة ضعف في التصميم
  15. السلام عليكم شكرا للاستاذ شيفان على سطر الكود الجميل نعم يوجد حل لتعديل حقل الترقيم التلقائي Dim DB As Database, RS As Recordset Set DB = CurrentDb Dim i As Integer i = Me.id_start Set RS = DB.OpenRecordset("tbl1") RS.AddNew RS!id = i RS.Update Me.Requery txtName.SetFocus بداية ترقيم تلقائي.rar
  16. السلام عليكم أعان الله استاذنا جعفر ووفقه وعافاه في نفسه وبدنه وأثابه ثواب الاخيار اختنا الكريمة جربي التعديل على المرفق لاتدخلي ارقام في المربع بل انقري على زر البدء مباشرة من اجل التجربة على الثواني يجب الانتظار حتى ينتهي العداد ظهور الرسائل في العداد ممكن والكود موجود (وقد تم تجاهله) ويمكنك استخدامه فالرسائل تتطلب من المستخدم ان يغلقها ، لذا الافضل ان يظهر التنبيه على الفورم كتابة وهو الذي يعمل الآن عداد تنازلي2.rar
  17. السلام عليكم وزيادة الخير خير وللاثراء هذه طريقة اخرى لتمرير البيانات بين النموذج الرئيس والفرعي او بمعنى اصح جلب البيانات الى النموذج الرئيس بعد معالجتها في الفرعي 2نطوره.rar
  18. وعليكم السلام تفضل وجدت لك وحدة نمطية تقوم بالمطلوب Public Function CreateLinks(strBEPath) As Boolean On Error GoTo Err_Handler Dim dbsFE As DAO.Database Dim dbsBE As DAO.Database Dim wksJET As DAO.Workspace Dim strTableName As String Dim strConnect As String Dim tdfBE As DAO.TableDef Dim tdfFE As DAO.TableDef Set wksJET = DBEngine.Workspaces(0) Set dbsBE = wksJET.OpenDatabase(txtPath) Set dbsFE = wksJET.OpenDatabase(txtPath1) For Each tdfBE In dbsBE.TableDefs If Left$(tdfBE.Name, 4) <> "MSys" And _ Len(tdfBE.Connect) = 0 Then strTableName = tdfBE.Name strConnect = ";DATABASE=" & strBEPath Set tdfFE = dbsFE.CreateTableDef(strTableName) tdfFE.Connect = strConnect tdfFE.SourceTableName = strTableName dbsFE.TableDefs.Append tdfFE Set tdfFE = Nothing End If Next tdfBE CreateLinks = True Exit_Handler: On Error Resume Next Set tdfFE = Nothing Set tdfBE = Nothing Set dbsFE = Nothing dbsBE.Close Set dbsBE = Nothing Set wksJET = Nothing Exit Function Err_Handler: MsgBox Err.Description, vbExclamation, "Error No: " & Err.Number Resume Exit_Handler End Function للذهاب إلى المصدر ‏‏kanory2.rar
  19. السلام عليكم : خذ باعتبارك انك لن تستفيد من برنامجك خلال موسم الحج هذا لان الموسم قريب ثانيا يجب ان تبدأ بتصميم الجداول بالطريقة المناسبة الصحيحة ، وتترك ما عداها حتى يفيدك خبراء المنتدى باكتمال المطلوب حينها يمكنك الانتقال للخطوة التالية . من شرحك اعلاه انت بحاجة الى الجداول التالية لعمل برنامجك المختصر : 1- جدول بيانات المرضى 2- جدول بيانات الغرف 3 - جدول بيانات الاطباء 4- جدول بالتشخيصات المعتادة المتوقعة 5- جدول باقسام المستشفى 6- جدول لتسجيل العمليات ( رقم المريض_ نوع المريض _دخول _ خروج _ نقل دم _كمية الدم _ رقم الغرفة _ رقم الطبيب _ التشخيص _ محول من _ تاريخ الدخول _ تاريخ الخروج ) حيث ان كل سجل واحد يعتبر زيارة للمريض و يأخذ سجلا جديدا في الزيارة الاخرى اما الدم فيمكن يسجل ( نعم/لا والكمية ) ويمكن نضع جدولا خاصا وهذا يرجع فيه الى طريقة تسجيل البيانات المستخدم على الورق بالنسبة للتمريض فتحتاج عمل مستقل لها وترتيب خاص وتربط اما مع الطبيب او مع الغرف
  20. اخونا عبد الحميد تم فصل استفساراتك كمواضيع مستقلة بالنسبة لشرح الجمل البرمجية أعلاه. بصورة عامة : يتم البحث في مجموعة السجلات عن القيمة x في الحقل id وعندما يجدها يتوقف ويظهر النتيجة Dim x } } اكس هذه تمثل قيمة عامة تم الاعلان عنها بـــ Dim ليعرفها اكسس {x = SearchList.Column(0)}هنا اعطينا اكس قيمة وهي = قيمة اول حقل سجل بالقائمة حيث الرقم صفر المحصور بين القوسين يدل على ترتيب العمود داخل القائمة If Not IsNull(x) Then} } إذا اكس يحمل قيمة {Me.RecordsetClone.FindFirst "[id] = " & x} معلوم ان الحدث تم عند النقر على الحقل أي ان التركيز كان على حقل معين في سجل ضمن مجموع السجلات فالسطر اعلاه يعني : ابحث واستنسخ كامل السجل بشرط id = x {Me.Bookmark = Me.RecordsetClone.Bookmark) اظهار نتيجة البحث
  21. تفضل accessfix.rar
  22. يمكن ذلك من نظام وندوز / لوحة التحكم / خيارات المنطقة واللغة ثم في اكسس / خصائص / تنسيق / اشكال رقمية اضبطها على : النظام
  23. كود الاستاذ جعفر الاخير شغال 100% الصق هذه في اعلى الكود Dim mySQL انظر المرفق حيث الغيت خاصية الانتقال بين الحقول في الرئيسي حتى يبقى التغيير ظاهرا test20.rar
  24. اعمل حقل بحث جديد غير منضم اسمه cmd_search وفي حدث بعد التحديث لهذا الحقل الصق الكود التالي : Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[ID] = " & Str(Nz(Me![cmd_search], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark لاحظ يجب ان يكون نوع حقل id رقميا اما ان كان نصيا فاستخدم هذا : Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[ID] = '" & Me![cmd_search] & "'" If Not rs.EOF Then Me.Bookmark = rs.Bookmark
×
×
  • اضف...

Important Information