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

نجوم المشاركات

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      13

    • Posts

      9,814


  2. ابو ياسين المشولي

    • نقاط

      4

    • Posts

      1,752


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      3

    • Posts

      12,207


  4. بن علية حاجي

    بن علية حاجي

    الخبراء


    • نقاط

      2

    • Posts

      4,342


Popular Content

Showing content with the highest reputation on 26 ديس, 2017 in all areas

  1. شكرا اخوي ابو خليل ، فمقتنياتك لا تُقدر بثمن جعفر
    2 points
  2. السلام عليكم وجدت كود ضمن مقتنياتي يستخرج اكبر قيمة في حقول السجل وقمت بتعديله كي يعد الحقول غير الخالية Function countflds(ParamArray fldArray() As Variant) Dim I, curfld As Integer For I = 0 To UBound(fldArray) If Not IsNull(fldArray(I)) And fldArray(I) <> 0 Then curfld = curfld + 1 End If Next I countflds = curfld End Function عدد حقول سجل بشرط.rar
    2 points
  3. بسم الله الرحمن الرحيم اقدم لكم اليوم هديه برنامج صلاحيات المستخدمين ويمتاز هذا البرنامج بالتالى : ولكن قبل ان نبين مميزات البرنامج لابد من حفظ الحقوق فلقد بداء هذا البرنامج الاستاذ الفاضل / عبد الله المجرب واتم العمل من استكمال للاكواد وعمل التعديلات المطلوبه وتامينه فهو الاستاذ / عباد ابو نصار وتم الاستعانه بكود من مشاركات الاستاذ / عبد الله باقشير فى التنقل لاى صفحه فى المستند والان وقد اكتمل العمل ولكنه قابل للتطوير من الاستاذة الافاضل طبعا وهذا ما نطمح اليه مميزات البرنامج 1- انه سهل الاستخدام فانه يعمل بمجرد ان ترفق له اى عدد من الصفحات تصل الى 254 صفحه وقابله للزيادة عند تعديل جزء صغير فى الكود 2- اعطاء الصلاحيات عن طريق نموذج سهل الاستخدام وبيسر فهو يعطى ثلاث انواع من الصلاحيات (مشاهدة وتعديل اى صلاحيات كامله - مشاهدة فقط - اى للاطلاع - مخفى اى اخفاء هذة الصفحه عن المستخدم 3- يتم تسجيل اسم المستخدم والتاريخ والوقت لكل حركه دخول 4- صفحه mydate هى الصفحه الهامه فى الملف ففيها يتم تسجيل كل الصلاحيات واسماء المستخدمين وكلمات السر الخاصه بهم 5- مرونه عاليه فى الغاء واضافه الصفحات وتغير اسماءها دون التاثير على البرنامج فمبجرد اغلاق البرنامج والدخول عليه يتم تحديث بياناته تلقائيا 6- غير قابل الاختراق عن طريق رفع الامان فى الماكرو 7- الصفحات الرئيسيه فيه هى صفحه mydate وورقه رقم 1 وما دون ذلك قابل للحذف او التغيير المسمى او الاضافه ويتعامل كما ذكرت سابقا حتى 254 صفحه بعد اذن الاستاذة الافاضل / مصممي البرنامج قمت بوضعه فى هذة المشاركه بهدف ان تعم الفائدة من علمكم الغزير وكذلك اعتبارة برنامج قابل للتطوير وذلك لسهوله فكرته ومرونته فى التغيير حسب متطلبات كل شخص لان المشكله التى كانت تواجه اى مستخدم عادى عندما يجد ملف عن نفس هذا الموضوع هو كيفيه تطويعه الى الطريقه التى يعمل بها اما فى هذا الملف فما عليه سوى نقل الصفحات التى يرغبها من ملفاته وسوف يعمل عليها البرنامج بشكل تلقائى وسهل للدخول على البرنامج بصلاحيات كامله : اسم المستخدم : الدعم الفنى كلمه السر 111 ومن داخل صفحه mydate ستجد باقى الاسماء ومعها كلمات السر الخاصه بها عندما تكتب كلمه السر الخاصه بالدعم الفنى ستجد ازار الصلاحيات وكلمه السر تم تفعيلها ومن ثم تسطيع التجول فى البرنامج ومن داخله ايضا تستطيع تغيير كلمه السر صلاحيات المستخدم_.rar
    1 point
  4. السلام عليكم بالنسبة لبيانات مربع التحرير والسرد / القائمة المنسدلة ، فعادة تأخذ بياناتها من جدول خاص بها ، نُدخل فيها البيانات مسبقا ، وكذلك يكون لدينا نموذج لكل جدول ، حتى نستطيع تغيير/إضافة/حذف احد هذه البيانات. هناك طريقة اخرى اسهل ، واستعملها في برامجي ، والتي تتكون من جدول واحد ونموذج واحد لكل الحقول ، و اود ان اشاركها معكم الجدول الذي به جميع الحقول اسمه tbl_Constants ، وسنأخذ أحد الحقول كمثال واسمه Department ، نستخدم هذا الحقل لإدخال بيانات عن طريق النموذج frm_Employees في الجدول tbl_Employees في الحقل Department ، ونستخدم هذا الحقل لإدخال بيانات عن طريق النموذج frm_Department في الجدول tbl_Department في الحقل Section_Name ، . في الجدول tbl_Constanats ، في حقل Department ، بالإضافة الى بيانات الحقل (الشؤون الادارية ، الشؤون المالي *تعمدت عمل هذا الخطا ، والذي نتيجته ظهرت في الجدولين الآخرين*) ، فإننا نكتب اسماء الجداول التي تُحفظ فيها البيانات واسم الحقل في ذلك الجدول (الجدول tbl_Emplyees واسم الحقل فيه هو Department ، وجدول tbl_Department واسم الحقل فيه هو Section_Name ، اما الاشارة _|_ التي قبل اسم الجدول ، فنستعملها لتصفية البيانات *تابع لاحقا*). العمل كله في الكود وفي اسماء الحقول ، والنموذج frm_Constants. نفتح نموذج ادخال البيانات frm_Employees او frm_Department . نريد ان نعمل تعديل على "الشؤون المالي" في حقل الدائرة ، ولأن النموذج مقفل ولا يسمح لتعديل البيانات ، فنضغط على زر "عمل تعديل على قيم البيانات" ، فندخل كلمة السر . فنرى طرق فتح النموذج frm_Constants ، ثم نختار الحقل الذي نريد ان نغير بياناته (الدائرة) مثلا ، ثم نضغط على الزر الذي على يسار الحقل (لجميع اصدارات الاكسس) او على الزر الذي يظهر اسفل يسار القائمة (للأكسس 2007 فما فوق ، وميزة هذا الزر انه من ضمن اعدادات الحقل ، ولا يحتاج عمل زر اضافي له ولا كود ، كما اننا نُدخل اسم النموذج frm_Constants في اعدادات الحقل كذلك) . النموذج frm_Constants يُفتح على بيانات الحقل الذي نريده Department ، وعلى المعلومة/السجل الذي كان مختار في النموذج الذي اتينا منه . وكذلك النموذج مُقفل ، ونحتاج الى الضغط على زر التعديل لتعديل المعلومة ، او زر الاضافة لإضافة معلومة جديدة ، وعند الضغط على زر الخروج ، فالكود سيقوم بتحديث البيانات . هنا نرى ان التحديث حصل لجميع الجداول ونموذج frm_Employees كذلك ، وهو المطلوب . النموذج الآخر frm_Department والذي يحمل اسم الحقل Department ، ولكن مصدر بياناته الحقل Section_Name ، كذلك يمكنه عمل نفس الشيء (كما تم شرحه اعلاه) . ومع انه عندنا 4 ازرار لتغيير بيانات الحقول ، إلا اننا استخدمنا حدث واحد فقط لفتح النموذج frm_Constants . والكود هو Private Function Open_frm_Constants() Me(Mid(Screen.ActiveControl.Name, 6)).SetFocus DoCmd.OpenForm "frm_Constants", , , , , acDialog End Function . . ----------------------------------------------------------------------------------------- وهذه إضافة حسب رغبة اخي شفان في إضافة النموذج الذي كنت استخدمه سابقا مع مراعاة اني عملت عليه الكثير من التعديلات حتى يتواكب مع الطريقة الجديدة ، وللعلم ، فالحقول في الجدول tbl_Constants يجب ان يكون لها تسميات "Captions" ،وقد اعطيت الحقول تسميات عربية ، كما هو ظاهر في النموذج ، والمرفق الذي به هذا النموذج هو ComboBox_Data_2.MDB.zip ، والذي يشمل جميع النماذج اعلاه ايضا . جعفر ComboBox_Data.mdb.zip ComboBox_Data.accdb.zip ComboBox_Data_2.MDB.zip
    1 point
  5. السلام عليكم عندنا جدول بالقول A b c d كيف يمكن عد القيم غير الفارغة فى سجل واحد من جميع الحقول A1 b1 c1. .... وهكذا قد تصل إلى 40 حقلا وهذا مطلوب لعد حصص مدرس فى جدول مدرسى فى السجل اسم المدرس فى حقل وبعده الحصة الأولى يوم الأحد ثم الثانية يوم الأحد ثم الثالثة وهكذا إلى الثامنة يوم الأحد ثم إلى الثامنة يوم الخميس فطبعا هناك حصص يدخلها المعلم و حصص أخرى فارغة أريد عد الحصص غير الفارغة للحصول على عدد حصص المدرس فى اليوم بعبارة مختصرة عد القيم غير الفارغة من عدة حقول فى سجل واحد وشكرا
    1 point
  6. السلام عليكم ورحمة الله تم إضافة TextBox لشيت "دخول العمال" فوق الخلية A3 حيث بمجرد ما ننتهي من حجز الرقم الثالث عشر يقوم تلقائيا بإرسال قيمته إلى الخلية A3 وكود حدث الشيت يقوم بتنفيذ كود Tarheeldokol تلقائيا... ويبقى عملك في ربط جهاز الكود بار مع ملفك وربطه إما بالخلية A3 وإما بـ TextBox... بالنسبة للملف أقترح عليك جعله يعمل دخول/خروج العمال في آن واحد، مما يعني أن لا نمسح الدخول أو الخروج إذا تكرر في اليوم الواحد ويكون الدخول والخروج في اليوم الواحد (في حالة التكرار) متناوبا (التكرارات الفردية للدخول والتكرارات الزوجية للخروج)... والله أعلم. بن علية حاجي Classeur4.rar
    1 point
  7. اخي الغالي جعفر لم تضبط معي هذا هو بعد التعديل A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") B = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _ And [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > B Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If
    1 point
  8. ربنا يعطيك العافيه استاذنا ابو خليل
    1 point
  9. وعليكم السلام بدون زر خيار وانما باستخدام المعيار المناسب في مصدر البيانات انظر المعايير في الاستعلام Import_2.rar
    1 point
  10. يجب عليك كسر الكود الى متغيرات اصغر ، حتى تستطيع فهم الكود لما تضعه مع بعض ، هكذا مثلا (معلومات المتغير B انا كتبتها من رأسي ، فيحتاج لها تعديل ، وتعديلها في if كذلك) : A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") B = DLookup("[Rjmfatwra]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _ And [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] > B Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If
    1 point
  11. ليس في الاستعلام اخي جعفر هذا هو الكود If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If هو الان ينطبق بالشرط على رقم الصنف انا اريده يطبق الشرط برقم الصنف ورقم الفاتورة
    1 point
  12. اخي جعفر انا عملت الاستعلام وهذا هو UPDATE Hrakatsanf SET Hrakatsanf.Alkmiah = Nz(DLookUp("Alkmiah","Hrakatsanf","[Rjmfatwra]='" & [Rjmfatwra] & "'" & "and" & "[Rajmsanf]=" & "'" & [Rajmsanf] & "'"),0)-[forms]![frm_Recall_sales]![SubSales].[form]![Alkmiah] WHERE (((Hrakatsanf.Rjmfatwra)=[forms]![frm_Recall_sales]![frm_mr].[form]![Rjmfatwra]) AND ((Hrakatsanf.Rajmsanf)=[forms]![frm_Recall_sales]![SubSales].[form]![Rajmsanf])); مشكلتي الان شرط if كيف اجعلها بنفس الاستعلام
    1 point
  13. وعليكم السلام اخوي ابو ياسين لا تعمل جملة SQL في الكود ، اعمل العكس ، اعمل الاستعلام اللي تريده ، ثم حوله الى SQL ، ثم اخذه الى الكود واعمل التعديل. ادخل الكود عن طريق Ctrl + G (ولا تدخله بطريقة اخرى) ، والذي سيعطيك شاشة الكود ، بالاضافة الى شاشة صغيرة في الاسفل ، والتي سنأخذ منها SQL لتجربيته في الاستعلام. ولما تأخذ SQL الاستعلام الى الكود ، فككه الى اسطر ، واربط كل سطر مع اللي قبله (لاحظ الكود التالي) ، واهم شيء تعمله هو ان تكتب جملة debug.print mySQL بعد نهاية عمل جملة الـ SQL وقبل ان تنفذ الامر docmd.runsql ، هذا الامر سوف يعطيك في اسفل شاشة الكود ، سيعطيك جملة الـ SQL بعد اضافة القيم فيها ، عندها تستطيع ان تنسخ هذه الجملة من اسفل شاشة الكود ، وتذهب الى الاستعلام وتلصقه هناك ، وتشغل الاستعلام ، واذا اعطاك خطأ ، فإصلح الاستعلام ، ثم اخذ SQL الى الكود للمقارنه ، وهكذا .... هذه طريقة كتابة الكود (مثلا) : mySQL = "UPDATE [Hrakatsanf]" mySQL = mySQL & " SET [Alkmiah]=[Alkmiah]-" & [Forms]![frm_Recall_sales]![SubSales]![Alkmiah] mySQL = mySQL & " WHERE Rajmsanf='" & [Forms]![frm_Recall_sales]![SubSales]![Rajmsanf] & "'" mySQL = mySQL & " And Rjmfatwra='" & [Forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra] & "'" Debug.Print mySQL DoCmd.RunSQL mySQL . جعفر
    1 point
  14. وعليكم السلام اخوي بدر هناك 3 طرق لإضافة/تعديل البيانات: من النموذج مباشرة ، عن طريق ادخال/تعديل المعلومة من الجدول/الاستعلام مصدر بيانات النموذج ، عن طريق Recordset . الاكسس يراك في النموذج وبياناته ، ولكن لا يعرف من قام بتغيير البيانات عن طريق الاستعلام او Recordset ، فالاكسس لا يعرف يأخذ بيانات النموذج او البيانات المحدثه في الجدول ، فيعطيك الاختيار طريقة التغلب على هذه الرسالة هي ، ان تحفظ بيانات النموذج ، ثم تشغل الاستعلام او Recordset ، مثلا docmd.runcommand accmdsaverecord او me.dirty = false او me.requery او me.refresh ثم تعطي الامر للإستعلام docmd.openquery "aabbcc" او rst.addnew او rst.edit rst!A=123 rst.update جعفر
    1 point
  15. تفضل هذا الجدول بحقلين اضافيين . وهذا الكود (قد اكون قلبت قيمة Filled_Fields ، فلم افهم طلبك ، ايهم صفر وايهم 1 ) Private Sub cmd_No_Empty_Fields_Click() Dim Counter As Integer Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Counter = 0 'Fields For j = 0 To RF - 1 'Debug.Print rst(j).Name & vbTab & rst(j) If rst(j).Name <> "Auto_ID" And rst(j).Name <> "Auto_Date" And _ rst(j).Name <> "Number_of_Filled_Fields" And rst(j).Name <> "Filled_Fields" Then If Len(rst(j) & "") <> 0 Then Counter = Counter + 1 End If End If 'rst Next j rst.Edit rst!Number_of_Filled_Fields = Counter If Counter = 0 Then rst!Filled_Fields = 0 Else rst!Filled_Fields = 1 End If rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub جعفر 826.Records.mdb.zip
    1 point
  16. السلام عليكم ومشاركة مع اخي ابو آدم ، انظر الى طريقة عملي في هذا الرابط جعفر
    1 point
  17. اتفضل اخي اتمنا يكون المطلوب احتساب الكميه 2.rar
    1 point
  18. السلام عليكم اعرض عليكم هنا طريقة قرءة السجلات Records عن طريق Recordset ، وقراءة اسماء الحقول Fields وقيمة كل حقل (للجداول والاستعلامات) . عندنا الجدول tbl_Letters ، فيه 3 سجلات ، وترقيمها يبدأ من الرقم 1 ، وعندنا 6 حقول ، وترقيمها يبدأ من الرقم صفر . هذا الكود به حدث لقراءة Fields وقيمة كل حقل ، وحدث لقراءة السجلات Records : Option Compare Database Option Explicit Dim rst As DAO.Recordset Dim i As Integer Dim RC As Integer Dim RF As Integer Dim j As Integer ' Private Sub cmd_Fields_Click() Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Debug.Print Debug.Print rst!A & vbTab & rst!B & vbTab & rst!C & vbTab & rst!D 'Fields For j = 0 To RF - 1 Debug.Print rst(j).Name & vbTab & rst(j) Next j rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub Private Sub cmd_Records_Click() Set rst = CurrentDb.OpenRecordset("Select * From tbl_Letters") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC Debug.Print rst!A & vbTab & rst!B & vbTab & rst!C & vbTab & rst!D rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub . . نتيجة الزر الاول: a1 b1 c1 d1 a2 c2 d2 a3 b3 d3 . ونتيجة الزر الثاني (انا طلبت طباعة السجلات قبل طباعة اسم الحقل وقيمته) : a1 b1 c1 d1 Auto_ID 1 Auto_Date 26-Dec-17 2:33:22 PM A a1 B b1 C c1 D d1 a2 c2 d2 Auto_ID 2 Auto_Date 26-Dec-17 2:33:26 PM A a2 B C c2 D d2 a3 b3 d3 Auto_ID 3 Auto_Date 26-Dec-17 2:33:31 PM A a3 B b3 C D d3 جعفر 825.Records.mdb.zip
    1 point
  19. أبشر أخي العزيز قيد الرد ...
    1 point
  20. السلام عليكم هذا ليس جوابا ، ولكن يعطيك الطريق لعمل المطلوب جعفر
    1 point
  21. تسلم ايدك استاذي الفاضل دا المطلوب شكرا لاهتمامك لك مني تحياتى
    1 point
  22. السلام عليكم ورحمة الله وبركاته انا كتير بحب مواضيعك لكن انا ما فهمت من طلبك هذا ممكن توضيح اكثر هل تريد شيء مثل دالة COUNTA في اكسل ؟ وهل هناك قاعدة للتجربة عليه بعد توضيح
    1 point
  23. جرب التالي Private Sub Text30_AfterUpdate() Me.Text130 = Me.Text30 - 365 End Sub - ارجو المعذرة هذا الكود تابع للأكسيس وليس اكسيل
    1 point
  24. وعليكم السلام اخي شفان هذا كان النموذج القديم، وطلب مني المستخدمين تحديثه الى طريقة اسهل واوضح، وبالنسبة لأسماء الجداول، فكانت بطريقة غير مرنه أيضا. فإذا لازلت تريدها، استقطعها من برنامجي و وارفقها لك جعفر
    1 point
  25. السلام عليكم ورحمة الله قمت بفصل 3 شيتات (قاعدة البيانات - دخول العمال - تجميع دخول العمال) عن الملف الأصلي في ملف جديد وربطه بالكود Tarheeldokol (خاص بزر تسجيل الدخول) وكود حدث الشيت "دخول العمال" الذي اقترحته بالأعلى (مع بعض التعديل عليه) ولم يعمل معي في ملفك الأصلي (بكل التعديلات التي تمت -ولم أفهم ذلك-)... بن علية حاجي Classeur3.rar
    1 point
  26. السلام عليكم اخوتي الكرام بعد اذن استاذي انس دروبي قمت برفع البرنامج على ميديا فاير ارجو أن يكون فيه الفائدة للجميع http://www.mediafire.com/file/qj43tqkzxyazmqu/برنامج_شؤون_وإدارة_الموظفين_بحلته_وشكله_الجديد_(مفتوح_المصدر).zip
    1 point
  27. مشاركة مع الاستاذ ابو ادم وبعد اذنه Private Sub Command0_Click() Static x As Integer If x = 0 Then MsgBox " waleed" Else '''''''''''''''''''''''''''''' مطلوب كود هنا لظهور الرسالة الاولى مرة واحدة فقط ''''''''''' بعد ذلك عند كل كليك تظهر فقط الرسالتين الثانية و الثالثة MsgBox " mohamed" MsgBox " salah" End If x = x + 1 End Sub بالتوفيق
    1 point
  28. أخي إسلام الموضوع كان عن: بينما ردك كان لإنشاء سجل جديد!! جعفر
    1 point
×
×
  • اضف...

Important Information