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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      14

    • Posts

      9,814


  2. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      5

    • Posts

      8,723


  3. kanory

    kanory

    الخبراء


    • نقاط

      4

    • Posts

      2,256


  4. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      2

    • Posts

      3,491


Popular Content

Showing content with the highest reputation on 28 يون, 2018 in all areas

  1. وعليكم السلام أخي @ali2017 هل هذا هوطلبك Ka_count.mdb
    3 points
  2. وعليكم السلام وبتغيير بسيط على الكود: نصل الى: Private Sub cmd_Go_Click() Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim db As DAO.Database Dim RC As Integer Dim i As Integer Dim j As Integer Set db = CurrentDb db.Execute ("Delete * From bayan1") Set rst2 = db.OpenRecordset("Select * From bayan1") Set rst = db.OpenRecordset("Select * From bayan") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC For j = 0 To rst.Fields.Count - 1 If Len(rst.Fields(j).Value & "") = 0 Then GoTo Next_j rst2.AddNew rst2!a1 = rst.Fields(j).Value rst2.Update Next_j: Next j rst.MoveNext Next i rst.Close: Set rst = Nothing rst2.Close: Set rst2 = Nothing db.Close End Sub جعفر
    2 points
  3. حياك الله اذا نظرت في مشاركة ام ناصر الثانية ، انظر في الكود ، فسترى انها وضعت هذه الارقام ، فأعتقدت بأنها تسأل عنها ، فأجبتها جعفر
    2 points
  4. وعليكم السلام انزلت مرفق اخي kanory مما شجعني على الرد ، بنفس طريقته تقريبا ، ولكن بكود مختلف ومختزل Private Sub cmd_Go_Click() Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim db As DAO.Database Dim RC As Integer Dim i As Integer Dim j As Integer Dim x() As String Set db = CurrentDb db.Execute ("Delete * From tbl_temp") Set rst2 = db.OpenRecordset("Select * From tbl_temp") Set rst = db.OpenRecordset("Select * From Table1 Where [mawad] is not null") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC x = Split(rst!mawad, "/") For j = LBound(x) To UBound(x) rst2.AddNew rst2!mawad = x(j) rst2.Update Next j rst.MoveNext Next i rst.Close: Set rst = Nothing rst2.Close: Set rst2 = Nothing db.Close DoCmd.OpenQuery "qry_Statistics" End Sub جعفر 932.count_.mdb.zip
    2 points
  5. والآن اجيب على اسئلتك: 1. هناك نوعين من Recordset ، نوع يخص DAO وآخر يخص ADO ، ومع تشابههما ، إلا ان هناك الكثير من الاوامر التي تختلف بينهم ، فإذا لم نخصص نوع الـ Recordset ، فالاكسس يستعمل مكتبة الاولى في القائمة ، مثلا ، في الصور التالية ، مكتبة ADO قبل مكتبة DAO ، فعند كتابة Recordset فقط ، فالاكسس يعتبرها تابعه لـ ADO: في الاكسس 2003 . وفي الاكسس 2010 فما فوق تم دمج مكتبة DAO في MS Office 14 Access Database engine object . 2. هذا امر OpenRecordset ، فيه عدة اختيارات ، والمبرمج اختار هذه لأسبابه ، ويمكنك الاستغناء عن الجزئين الاخيرين منها ، حيث هذا يكفي: (Set rst = db.OpenRecordset(strSQL . 3. المؤشر في سجلات Recordset يكون كما في القائمة التالية: BOF Record1 Record2 .. .. EOF حيث BOF = Begining Of File EOF = End Of File فإذا كنا على BOF او EOF فلا يوجد هناك سجلات ، فالسطر معناه ، اننا مادمنا لسنا قبل بداية ولا بعد نهاية الـ Recordset ، فقم بالخطوة التالية ، 4. انتقل الى اول سجل تصادفه (رجاء متابعة النقطة التالية) ، 5. اذا اردنا ان نجعل الـ Recordset بالكامل في ذاكرة الكمبيوتر ، فعلينا ان نأخذ المؤشر الى آخر سجل ، ثم عندما نأخذ المؤشر الى اول سجل ، فيعرف البرنامج عدد سجلات هذا الـ Recordset ، بينما في الرقم#4 اعلاه ، فنحن طلبنا منه البدء من اول سطر وبدون معرفة عدد السجلات ، والنقطتين معناها سطر جديد في الكود ، يعني: بدل كتابة For i = 1 To RC childrst.Delete childrst.MoveNext Next i يمكننا كتابة For i = 1 To RC: childrst.Delete : childrst.MoveNext : Next i . ولكننا اذا عملنا هذا الشيء لكل الكود ، فلن نعرف كيف نتصيد الخطأ ، ولا نستطيع استعمال Goto ، فنحن نستعمله في نطاق نعمل انه لن تكون لدينا اخطاء فيه جعفر
    2 points
  6. بسم الله الرحمان الرحيم السلام عليكم تحياتي لجميع اعضاء اوفيسنا المحترمين الموضوع ليس بجدبد فقد تم التطرق له من قبل الاستاد القدير عبد الله باقشير جازاه الله خيرا و ان شاء الله نراه بينانا في المنتدى عن قريب لمتابعتي المنتدى في الاونة الاخيرة رئيت عدت تسائلات عن البحث والتعديل في الجداول و رئيت العديد من الحلول فحاولة الاجتهاد و الوصول الى ابسط و اسهل طريقة لعمل ذلك لذى فكرة في برمجة فورم مرن يكون ملائم لاي جدول مهما كان عدد صوفوفه او عدد اعمدته و لكي يتمكن اي عضو مهما كانت معرفته بالبرمجة ضعيفة من استعماله بسهولة ووصلة الى هذا الفورم الذي ارجو ان اكون قد وفقت في فكرته وان يستفيد منه الاغلبية يتميز هذا البرنامج يجلب الجدول المستهدف للعمل عليه و امكانية البحث داخله بدلالة اي عمود من اعمدته كما ان البحث يتميز بالبحث بأول حرف من الكمة او اي جزء منها حسب احتياجك وايضا تتميز عملية البحث بالسرعة الفائقة لاني اعتمدت على المصفوفات للوصول الى ذلك و تعرفون قوة المصفوفات و فعاليتعها اما بخصوص التكستبوكس و الكمبوبكس فتنشأ برمجيا على حسب عدد اعمدة الجدول نأتي الان الى طريقة استعمال الفورم هذا مع ملفك الخاص اولا اذهب الى محرر الاكواد تجد موديل باسم ModulePublic تجد في بدايته هذين الكودين او التعريفين ان صح التعبير Public Const sNomFeuil As String = "data" 'اسم ورقة العمل التي تحمل قاعدة البيانات Public Const sTableau As String = "tbData" ' اسم جدول قاعدة البيانات اضن ان الامر واضح تصع اسم الشيت الذي يحوي الجدول مكان عبارة "data" واسم الجدول نفسه مكان عبارة "tbData" ملاحظة : يجب ان تكون قاعدة البيانات عبارة عن جدول لايهم عدد اعمدة ولا صفوفه المهم ان يكون جدول باتباعك الخطوات السابقة تكون قد انتهيت من ربط جدولك مع الفورم ثانيا نأتي الى الاعمدة التي تحتاج قوائم في مثالنا لدين العمود 4 و العمود الاخير يحتاجون ان يمثلو في الفورم على شكر قوائم (كمبوبكس) لتنفيذ ذالك قم بأنشاء القوائم الازمة في اي شيت تريد و اعطي كل مدى قائمة اسم معين في المثال الخاص بنا سمينا نطاق قائمة الجنس ب list1 كما هو موصح في الصورة ثم اذهب الى رأس العمود المستهدف قم بادراج تعليق له و اكتب داخل التعليق نفس اسم نطاق القائمة و انتهى الامر ارجو ان اكون قد وفقت في الشرح وان يستفيد أكبر عدد من الاعضاء من هذا العمل ملاحضة: تنسيق عرض اعمد اليست يكون بتنسيقك ععرض اعمدة الجدول نفسه من الشيت و الفورم يكتشف العمود الذي يحوي تواريخ تلقائيا اي ملاحظة او استفسار او اضافة تحتاجونها للفورم لا تترددو في طلبي اهدي هذا العمل الى الغائبين الحاضرين في قلوبنا الاخ ضاحي الغريب و الاستاد عبد الله باقشير تحياتي للجميع UserForm Flexibles.rar
    1 point
  7. وعليكم السلام هلا والله اخوي حربي ، هلا بالطلّه الآن لازم تنادي الوحدة النمطية لقفل/فتح قفل حقول النماذج الفرعية: Function Lock_Form_Controls(frm As String, L As Boolean) Dim ctl As Control For Each ctl In Me(frm).Form.Controls If ctl.ControlType = acTextBox Then ctl.Locked = L End If Next End Function . و لفتح القفل بدل Me.Frm_1!Degree.Locked = False ننادي الوحدة النمطية Call Lock_Form_Controls("frm_1", False) للقفل بدل Me.Frm_1!Degree.Locked = True ننادي الوحدة النمطية Call Lock_Form_Controls("frm_1", True) . وبس جعفر 938.DbStudents20.6.mdb.zip
    1 point
  8. الملف الذي رفعته مضروب بفيروس و قد رفض الجهاز فتحه ومع ذلك فقد وضعت لك ملفاُ شبيهاً (مع مساحة أقل على الذاكرة اي بدون خلايا مدمجة غير لازمة مع طباعة فقط البطاقة) مع المعادلة المطلوبة bitaka.xlsx
    1 point
  9. تمام استاذنا الكريم سليم حاصبيا ابدعت وارجو المعذرة قد اتعبتك كثيرا بأسئلتي ادعوا من الله عز وجل ان يوفقك ويزيد من علمك
    1 point
  10. لاحظت انا هذا الشيء و قد ورد خظأ بسيط تم تصليحة اعد تحميل الملف مرة احرى الحطأ في هذا السطر (رقم 11 من الاسفل) Sheets("Sapace").Range("a" & k ).Resize(, 4).Value و يجب ان يكون هكذا Sheets("Sapace").Range("a" & k + 1).Resize(, 4).Value
    1 point
  11. حسب تفكيري هناك علاج طبعا راح تعطي كود لكي لذا قبل ان يغلق القاعدة من الممكن ان يحفظ العمل وبعدين يغلقه
    1 point
  12. امامك طريقتان مع استخدام وسيلة واحدة الوسيلة هي عمل نموذج يفتح بوضع مخفي عند اقلاع البرنامج عند كل موظف الطريقة الاولى : ان تجعل في عداد النموذج امر اغلاق البرنامج عند سكون الحركة فترة معينة تحددها انت الطريقة الثانية : ان تجعل في عداد النموذج امر تفحص قيمة معينة في قاعدة البيانات البعيدة مثلا ( صفر أو 1 ) فاذا كانت القيمة = 1 يتم اغلاق البرنامج وهذا الرقم انت من سيقوم بتغييره عندما تريد اغلاق جميع الواجهات الفرعية ولكن في الطريقة الاخيرة تبرز مشكلة فيما لو احد كان يعمل ولم يحفظ عمله هذه افكار مجردة لم اطبقها على ارض العمل ..
    1 point
  13. شكرا اخى شيفان وهو المطلوب ولكن للتوضيح حاولت كثيرا استخدام MAX مع الشريط التفاعلى ولكنها لا تظهر فى محرر الفيجوال وهذا سبب عدم استخدامى لها واود ان اسال لماذا لا تظهر ؟
    1 point
  14. تم ارسال الملف والكود الجديد في المشاركة ما قبل هذه تحت اسم الترحيل salim_modifier.xlsm
    1 point
  15. تم معالحة الامر الكود الجديد Option Explicit Sub filter_ME_Please() With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Dim My_arr(): ReDim My_arr(1 To 4) My_arr(1) = 18: My_arr(2) = 2 My_arr(3) = 3: My_arr(4) = 5 Dim lr%, k%, m%: m = 5 Dim S_sh As Worksheet: Set S_sh = Sheets("الدرجات") Dim T_sh As Worksheet: Set T_sh = Sheets("salim") Dim My_Table As Range: Set My_Table = _ S_sh.Range("A4").CurrentRegion T_sh.Range("a4").CurrentRegion.Offset(3).ClearContents With My_Table .AutoFilter .AutoFilter Field:=16, Criteria1:=T_sh.Range("d3") .AutoFilter Field:=17, Criteria1:=T_sh.Range("d2") Sheets("Sapace").Cells.Clear For k = 1 To 4 .Columns(My_arr(k)).SpecialCells(xlCellTypeVisible).Copy _ Destination:=Sheets("Sapace").Range("a1").Offset(, k - 1) Next .AutoFilter End With '====================== lr = Sheets("Sapace").Cells(Rows.Count, 1).End(3).Row For k = 2 To lr Step 2 T_sh.Range("b" & m).Resize(, 4).Value = _ Sheets("Sapace").Range("a" & k).Resize(, 4).Value T_sh.Range("g" & m).Resize(, 4).Value = _ Sheets("Sapace").Range("a" & k + 1).Resize(, 4).Value T_sh.Range("a" & m) = k - 1: T_sh.Range("f" & m) = k m = m + 1 Next If IsEmpty(T_sh.Range("G" & m - 1)) Then T_sh.Range("f" & m - 1) = vbNullString With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With Erase My_arr End Sub الملف مرفق الترحيل salim_modifier .xlsm
    1 point
  16. يجب كتابة هذه الكلمات (ناجح / راسب/مكمل) في الجدول الاساسي بالضبط كما هي في القائمة المنسدلة دون مسافات ناقصة او زائدة ربما هناك بعض الاخطاء في كتابة بعضها
    1 point
  17. اخي @نادر نادر1 المعذرة المطلوب غير مفهوم ... فهم السؤال نصف الاجابة
    1 point
  18. السلام عليكم 1. كلمة سر الفجول بيسك: بعد ان رأيت مشاركتك الاخيرة وانك لا تملكين كلمة السر لفتح نافذة الاكواد ، فخطر على بالي انك لستي صاحبة البرنامج ، فحذفت الرابط للحفاظ على حقوق الملكية الفكرية لصاحب البرنامج. قواعد المشاركة فى الموقع 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف لهذا السبب ، فلا يمكننا ان نساعدك في هذا الخصوص. 2. تراكم الحقول على بعضها: ولكن ، وبعد النظر الى احد التقارير ، اتضح ان جميع الحقول ، حقول النص والتسميات ، جميعها ظاهره . ومن رؤية التقرير ، الظاهر ان هناك حقول تم اخفائها ، وهذا لا يمكن إلا برمجيا . وهنا نرى ان هناك بالفعل ، حدثين ، اي ان هناك كود خلف التقرير ، والذي يقوم بإخفاء حقول معينه . واسماء الحقول في التقرير عبارة عن ارقام ، مما يزيد من افتراضية ان الكود في حدث التقرير هو الذي يقوم بعملية اخفاء بعض الحقول. 3. التعديلات التي يمكن عملها: بغض النظر عن الموجود حاليا ، وبدون ان تحذفين اي من الحقول (وإلا قد تحصلين على اخطاء من الكود) ، قومي بتصغير جميع الحقول (كفاية ان يكون العرض =0) ، ثم قومي بعمل الحقول اللي تريديها وقومي بترتيبها كما تريدين. وطريقة اخرى ، ان تغيري اسم التقرير الحالي ، وتقومي بعمل تقرير جديد بنفس الاسم ، وفيه الحقول والتنسيق المطلوبين. جعفر
    1 point
  19. السلام عليكم هذا حجم كبير!! اعملي ضغط واصلاح للبرنامج ، هذا بينزل حجمه. هل عندك مرفقات في البرنامج ، مثل صور وملفات اخرى؟ تقدرين بعد الضغط والاصلاح ، ان تستخدمين برنامج الضغط المجاني من هذا الرابط https://www.7-zip.org/ واستخدمي صيغة 7z. فهي الاكثر ضعطا بين صيغ الضغط ، واذا البرنامج ما صغر حجمه كفاية ، فيمكنك رفعه على احد مواقع الرفع ، ثم اعطائنا الرابط هنا جعفر
    1 point
  20. If Not IsNumeric(Me.text0) And Not IsNumeric(Me.text1) And Not IsNumeric(Me.text2) Then Me.text0.BackColor = vbWhite: Me.text1.BackColor = vbWhite: Me.text2.BackColor = vbWhite Else If Me.text0 > Me.text1 And Me.text0 > Me.text2 Then Me.text0.BackColor = vbRed Me.text1.BackColor = vbWhite Me.text2.BackColor = vbWhite ElseIf Me.text1 > Me.text0 And Me.text1 > Me.text2 Then Me.text0.BackColor = vbWhite Me.text1.BackColor = vbRed Me.text2.BackColor = vbWhite ElseIf Me.text2 > Me.text1 And Me.text2 > Me.text0 Then Me.text0.BackColor = vbWhite Me.text1.BackColor = vbWhite Me.text2.BackColor = vbRed End If End If TEST TRY.accdb
    1 point
  21. كل الشكر والتقدير لأستاذنا الفاضل جعفر لسعة الصدر في الرد على تساؤلاتنا فعلاً كنت طالبة شرح للاختصارات الموجودة في الكود لعدم معرفتي في آلية أستخدامها اضافةً لطلبي حذف المرفق وفق شرط والنتيجة كانت مرضية وشكر كبير للأستاذ عبد الفتاح لمشاركته الموضوع وافادتنا بطريقة اخرى للحل ، فجزاكما الله عنا خير الدنيا والآخرة .
    1 point
  22. انت مبدع بمعنى الكلمة إجابة وعمل غاية في الروعة شكرا من القلب لك استاذي سليم حاصبيا ... لقد اختصرت لي الطريق في عملي الإداري انت غي غاية الكرم واعظم ما تقدمه هو العلم (إن الله يحب إذا عمل أحدكم عملاً أن يتقنه ) اتقنت في الإجابة وهذا ما اريده بالضبط شكرا لك
    1 point
  23. السلام عليكم اخي عبد الفتاح كلامك يكون صحيح ، اذا لم تكن هذه الفقرة في الموضوع: جعفر
    1 point
  24. ما حدث هو أنه تم تحديد مجموعة من مربعات النصوص و التسميات وكليك يمين بالماوس و تم اختيار إزالة من التخطيط
    1 point
  25. وعليكم السلام السبب الوحيد اللي يجي في بالي ، هو ان هناك كود في التقرير يعمل/عمل على تجميع الحقول هكذا ، وقمتي بحفظ التقرير ، فظل التصميم بهذه الطريقة!! ويمكنك ارفاق هذه الجزئية من برنامجك للنظر فيها. جعفر
    1 point
  26. السلام عليكم ورحمة الله أخي الكريم، المشكل الذي ذكرته ليس في الأوفيس وإنما في ملف Registry الخاص بالويندوز... وإن شاء الله حل هذه المشكلة يكون بتنفيذ الأداة في الملف المرفق وهي تقوم بتصحيح الخلل في ملف Registry تلقائيا والمتعلق بخصائص HTM/HTML... أرجو أن تفيدك هذه الأداة... أخوك بن علية html_association_fix.zip
    1 point
×
×
  • اضف...

Important Information