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

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

  1. Amr Ashraf

    Amr Ashraf

    الخبراء


    • نقاط

      19

    • Posts

      946


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      14

    • Posts

      9,814


  3. محمد ايمن

    محمد ايمن

    الخبراء


    • نقاط

      11

    • Posts

      1,667


  4. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

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


    • نقاط

      9

    • Posts

      13,165


Popular Content

Showing content with the highest reputation on 11 ماي, 2017 in all areas

  1. الفرق بين ByVal و ByRef Byval يقصد بها الاستدعاء بالقيمة ByRef يقصد بها الاستدعاء بالمرجع الكود التالي سيوضح الفكرة أكثر لنفرض لدينا عددين و نريد تطبيق كود معين او معادلة ما على هذين العددين 'نضع هذا الكود خلف زر امر في نموذج dim x as intger dim y as intger dim i as intger x=10 y=5 'استدعاء كود الجمع بالقيمة و اظهار الناتج i=add1(x,y) msgbox i msgbox x 'استدعاء كود الجمع بالمرجع و اظهار الناتج i=add2(x,y) msgbox i msgbox x 'كود الجمع باستخدام Byval private function add1(byval n1, byval n2) as intger add1=n1+n2 n1=3 end function 'كود الجمع باستخدام ByRef private function add2(byref n1, byref n2) as intger add2=n1+n2 n1=3 end function الشرح في المثال انشئت وظيفة بسيطة لجمع عددين هما X Y عرفت متغيرين و وضعت قيم فيها وهي (x=10) و (y=5) الوظيفة Add1 انشئت وظيفة اسمها Add1 تستقبل عددين هما n1 و n2 ( بالقيمة ) Byval تقوم الوظيفة بجمع العددين و ارجاع الناتج ( و هنا الناتج 15 ) من خلال هذا السطر add1=n1+n2 ثم غيرت قيمة العدد الاول من 10 الى 3 من خلال هذا الكود n1=3 هذا يعني ان x يجب ان تصبح قيمتها 3 ولكن ستجد ان قيمة X مازالت 10 !!!!!!!!!!!!!!!! ( لاحظ انه بعد تعديل قيمة X من الوظيفة وضعت رسالة لتعطي قيمة x ) الوظيفة Add2 الوظيفة Add2 في نفس الوظيفة Add1 لكن الفرق ان الوظيفة Add2 تستقبل القيم n1 و n2 ( بالمرجع ) ByRef تقوم الوظيفة بجمع العددين و ارجاع الناتج ثم غيرت قيمة العدد الاول من 10 الى 3 ولكن هنا ستجد ان قيمة X اصبحت 3 !!!!!!!!!!!!!!!! السبب ان Byval تحافظ على القيمة الاصلية للمتغير المرسل لها اما Byref فهي تغير القيم للمتغير المرسل لها ارجو ان اكون قد وفقت في الشرح
    4 points
  2. السلام عليكم ورحمة الله وبركاته أخوتى واساتذتى الكرام لكم منى أجمل تحية ,,, انا عملت الموضوع ده لانى نظرت لوضع قسم الأكسس ولقيت انه اصبح بنسبة 90% قسم للطلبات والاستفسارات وينقصه مواضيع وشروحات جديدة طبعا المنتدى يزخر بكنوز من المعلومات وخبرات أناس تعلمنا على يدهم الكثير وطبعا انا كمبتدئ استفدت كتيير جدا من الاساتذة والخبراء بالمنتدى وبعدها فكرت انا حتى الان لم اقدم اى افادة لهذا الصرح العظيم وأنا كهاوى محب للبحث فى مواضيع الأكسس وتصميماته وأكواده والأدوات المساعدة للتصميم تجولت كثيرا فى المواقع الاجنبية وحصلت على الكثير من الادوات المفيدة جدا لأى مبرمج او حتى المبتدأين فكرت انى ممكن أعمل موضوع يخص الاداوت المساعدة فى التصميم مع شرح لبعض الادوات وذلك لانى لم أجد اى ذكر لهذه الادوات المهمة فى المنتديات العربية ولكون الموضوع سيأخذ الكثير من الجهد بالنسبة لى قلت لازم أخد رأى الاساتذة الاول هل اطرح موضوع به عدد من الادوات المساعدة وشرحها من باب اثراء المنتدى الذى استفدنا منه الكثير أم ان الموضوع ليس بهذا القدر من الأهمية ؟ مستنى أرائكم دمتم فى رعاية الله
    3 points
  3. وعليكم السلام وتوضيحا لجواب اخي شفان = "(" & format([حقل التاريخ],"yyyy/mm/dd") & ")" او = "(" & format([حقل التاريخ],"dd/mm/yyyy") & ")" او = "(" & format([حقل التاريخ],'yyyy/mm/dd') & ")" او = "(" & format([حقل التاريخ],'dd/mm/yyyy') & ")" جعفر
    3 points
  4. السلام وعليكم اساتذتى الاقاضل اثناء تصفحى اليوم لمنتدى اجنبى وجدت اداة مفيدة جدا لحفظ الاكواد وبها الكثير من الامثلة المحفوظة بداخلها وتعمل على 2003 حبيت اشاركها مع الاخوة فقمت بتحويل نسخة منها لتعمل على 2010 حتى يستفيد اكبر عدد ممكن فى صورة فى المرفقات للاداة دمتم فى رعاية الله CodeStore2003.rar CodeStore2010.rar
    2 points
  5. حياالله أخوي رمهان وهذا اللي عملته ، بإستخدام DMax اولا للحصول على القيمة العليا للحقل ID ، اي Order by ID desc ، ثم استخدام قيمة هذا الحقل ، للحصول على الحقول الصحيحة من السجل الصحيح جعفر
    2 points
  6. حبيت انبه هنا الشي معين دوال المجال ومنها dlast خصوصا والتي تعتمد على ترتيب البيانات في المصدر فانه : قد لا تحصل على نتيجة متوقعه اذا كان المصدر جدول لان البيانات في الجدول لايحكمها ترتيب معين في خصوصا اذا الحقل الداخل في الداله ليس مفهرس كما انها ليست عمليه اذا لديك سجلات ضخمة في الجدول هنا اعمل استعلام ثم قم بعمل ترتيب بشكل صريح في الاستعلام ثم اجعل الاستعلام مصدر للدالة . هنا ستاتي اخر قيمة في الاستعلام لاني اعلم ان البيانات مرتبه بالشكل الذي اريده تحياتي
    2 points
  7. وعليكم السلام المنتدى لدعم اي شيء يمكن ان يساعد احدنا في برامجه ، فأهلا وسهلا بفكرتك جعفر
    2 points
  8. اتفضل علي بركة الله ونحن سندعمك ببعض الادوات في مكتبتي لبعض الاساتذة الكبار مثل اداة لربط الجداول اداة للنسخ الاحتياطية للجداول الخلفية اداة لاخفاء خلفية الاكسس ...الخ
    2 points
  9. استأذنك أخى شيفان فى افادة الاخ صاحب الموضوع فيه طريقة اسهل شوف الحقل اللى انتا عاوز تطبق عليه الكود سواء تكست بوكس أو كومبوبوكس فى حدث BeforeUpdate اكتب الكود التالى مع تغيير المسميات If IsNull(Me.Gender) then Cancel = Msgbox ("لا يمكن ترك هذا الحقل فارغ") جرب ووافنا بالنتيجة
    2 points
  10. لم تنفع Thin لكن جربت Sizable ونفعت واعطت النتيجة المطلوبة مشكورين على المرور
    2 points
  11. وعليكم السلام جرب الكود التالي Sub Test() Dim ws As Worksheet Dim sh As Worksheet Dim arr As Variant Dim temp As Variant Dim i As Long Dim j As Long Dim c As Long Dim b As Boolean Dim t As Double Set ws = Sheets("السجل") Set sh = Sheets("وصل") arr = ws.Range("A4:J" & ws.Cells(Rows.Count, 1).End(xlUp).Row).Value ReDim temp(1 To UBound(arr, 1), 1 To 4) sh.Range("A4:D" & Rows.Count).ClearContents For i = LBound(arr, 1) To UBound(arr, 1) If arr(i, 2) = sh.Range("A2").Value Then If b = False Then sh.Range("B2").Value = arr(i, 3) sh.Range("G4").Value = arr(i, 8) b = True End If j = j + 1 For c = 4 To 7 temp(j, c - 3) = arr(i, c) Next c t = Application.WorksheetFunction.Sum(t, arr(i, 9)) End If Next i If j > 0 Then sh.Range("F4").Value = t sh.Range("A4").Resize(j, UBound(temp, 2)).Value = temp End If End Sub
    2 points
  12. استاذي القدير / ابو البـراء جزاك خيراً استاذي الحبيب و كل عام وحضرتك بخير خالص حبي وتقديري لشخصك المحترم
    2 points
  13. وعليكم السلام ورحمة الله وبركاته بارك الله فيك أخي الحبيب خالد الرشيدي .. حل ممتاز ورائع وأفضل من استخدام الأكواد في هذه الحالة جزاك الله خير الجزاء تقبل وافر تقديري واحترامي
    2 points
  14. السلام عليكم حتى تعين اخوانك على مساعدتك ، حاول ان تضع طلبا واحد فقط في كل مرة
    2 points
  15. 1. الحمدلله 2. الاكسس لا يستعمل ملف خارجي مؤقت لحفظ البيانات عند عمل إضافات سجلات في الجدول ، فهو يُدخل البيانات اولا: أ- ثم يسأل اذا المستخدم موافق او لا (هذه رسالة التأكيد التي تظهر لنا قبل الحاق/إضافة السجلات) ، ب- وثم يتأكد من شروط الحقل اذا تنطبق عليه او لا (مثلا يجب ان يكون الرقم في الحقل بين 1-12 مثلا) وعليه ، فكلما اضاف سجل جديد ، فتلقائيا يكون لكل سجل رقم تلقائي جديد ، والرقم التلقائي اللي ينحذف ما يرجع وفي مثل حالتك ، الرقم 2 راح عليك لأنه بين الارقام ، اما اذا اردتي الرقم التلقائي يبدأ من الرقم 4 ويواصل ، فيجب عليك حذف الارقام 34 و35 ، ثم عمل ضغط واصلاح للبرنامج ، ثم ستجدين ان الرقم التلقائي يبدأ من 5 ، الى ان تقومي بعملية الالحاق والالغاء ونرجع لنفس المشكلة في الواقع هذه ليست مشكلة في البرنامج ، وانما مشكلة المبرمج ، حيث قلت مرارأ وهذه الروابط ستفيدك و جعفر
    2 points
  16. السلام عليكم ورحمة الله أستأذن استاذي القدير / ابو البـراء جزاه الله عنا كل خير في عرض حل بطريقة معادلات التنسيق الشرطي ... كطريقة اخرى للحل =IF(SUM($B2:$N2)/COUNTIF($B2:$N2,"<>")=MAX($B2:$N2),0,1) كل عام وحضراتكم بخير تجربة_2.rar
    2 points
  17. السلام عليكم جرب الكود التالي Sub Test() Dim r As Long Dim c As Long Dim t As Variant Dim b As Boolean Application.ScreenUpdating = False For r = 2 To Cells(Rows.Count, 1).End(xlUp).Row b = False For c = 2 To 14 If Not IsEmpty(Cells(r, c)) Then t = Cells(r, c) Next c For c = 2 To 14 If Cells(r, c) <> t And Not IsEmpty(Cells(r, c)) Then b = True If b And Not IsEmpty(Cells(r, c)) Then Cells(r, 1).Interior.Color = vbCyan Cells(r, c).Interior.Color = vbGreen End If Next c Next r Application.ScreenUpdating = True End Sub
    2 points
  18. اهلا بك اخي الكريم private تعني خاص مثال private sub total في السطر السابق قمت بتعريف كود على انه خاص اي ان هذا الكود يستدعى و يعمل ضمن النموذج المكتوب فيه الكود و اذا حاولت استدعائه من غير نموذج لن يجدي ذلك نفعا public تعني عام مثال public sub total في السطر السابق قمت بتعريف كود على انه كود عام اي انك اذا وضعت الكود السابق في نموذج فيمكنك استدعائه من نموذج آخر دون الحاجة لكتابة الكود مرة اخرى global تعني عالمي Global Strcod as String في السطر السابق تم تعريف متغير من نوع نص على انه عالمي و المقصود هنا ان المتغير يمكن استخدامه في اي مكان من قاعدة البيانات مع ملاحظة انه يمكنك ايضا تعريف المتغيرات بكلمة Public Public Strcod as String لكن عندما تريد استخدام المتغيرات لكافة النماذج يجب عليك وضعها ضمن وحدة نمطية كلمة ( Global ) هي كلمة قديمة و حاليا يحل محلها كلمة ( Public ) dim كلمة يقصد بها تعريف متغير Dim ii as Intger في السطر السابق تم تعريف المتغير ii على انه متغير من نوع رقمي set وتعني ضبط dim db as dao.database set db=currentdb في الكود السابق dim ii as intger المتغير في هذه الحالة يملك قيمة افتراضية وهي 0 اما في السطر السابق قمت بتعريف المتغير Db كقاعدة بيانات و لكنه مازال بحاجة الى تعريف قاعدة البيانات التي عرفته بها لذلك تستخدم كلمة Set و في هذا المثال ضبطت المتغير على قاعدة البيانات الحالية يتبع الفرق بين Sub و Function sub تعني موضوع او كود في في هذه الحالة الكود ينفذ دون ارجاع قيمة مثال public sub Amsg msgbox "aa" end sub عرفت الكود ليعطي رسالة مكتوب فيها aa و يستدعى بهذا الشكل call Amsg لاحظ هنا ان الكود لا يعيد قيمة هو فقط يعطي رسالة اما Function فهي وظيفة و هي تعيد قيمة مثال Public Function AdNum (ii as intger,ss as intger) as intger adnum=ii+ss end function في هذا المثال عرفت الوظيفة لتقوم بجمع عددين وتعطي الناتج حيث يمثل Adnum اسم الوظيفة و ii العدد الاول و ss العدد الثاني تستدعى بهذا الشكل call AdNum(10,15) لاحظ هنا ان الوظيفة تعيد قيمة وهي ناتج جمع العددين يتبع
    2 points
  19. 1 point
  20. السلام عليكم ورحمة الله وبركاته الجزء الاول تم مناقشته هنا هذا الجزء رقم 2 من مشروع متكامل لتصوير الاشخاص والمستندات بإستخدام الكاميرات والماسح الضوئي (Scanner) ، والمشروع يتكون من: يعني مو بس البرامج الكبيرة تستخدم هذه التقنيات ، وإحنا بعد وهذه الاجهزة ستكون لتصوير الاشخاص والمستندات ، ان شاء الله التصوير عن طريق كاميرا هاتف اندرويد ، وتمت التجربة على هاتف اندرويد Galaxy S3 بنظام 4.4 و Huawei Mate 7 بنظام اندرويد 6 ، التصوير عن طريق WebCam ، وتمت التجربة على Logitec HD c615 ، و Creative Live (VF0610)e ، التصوير عن طريق الكامرات الكبيرة من نوع DSLR ، وتمت التجربة على Nikon D5100 او Canon Mark iii ، تطويع الماسح الضوئي لتصوير المستند/المستندات ، وحفظ المستندات الى اي مجلد ، بصيغة pdf او jpg والعمل غير مكتمل 100% ، هذا البرنامج يشتمل على الرقم 1 كذلك (وهو نفس نسخة الرابط اعلاه وبدون تغيير) ، هذا البرنامج يعتمد على البرنامج الخارجي (RobotEyez.exe) ، وهذا رابطه: https://batchloaf.wordpress.com/2011/11/27/ultra-simple-machine-vision-in-c-with-roboteyes/ وهذا كود برنامج التصوير عن طريق كاميرا Webcam: Dim cmmd As String 'how long does it take to take the picture istart = Timer 'set BE_Path Call BE_or_FE 'RobotEyez location App_Location = BE_Path & "Camera_App\WebCam\RobotEyez.exe" Save_images_to = BE_Path & "images\" 'Debug.Print App_Location iview_Folder = BE_Path & "image_App\i_view32.exe" File_Path = Save_images_to & Me.Employee_ID & ".jpg" SetCurrentDirectory Save_images_to 'cmmd = App_Location & " /devnum 1 /delay 1000 /width 1920 /height 1080 /bmp" cmmd = App_Location & " /devnum 1 /delay 1000 /width 1280 /height 720 /bmp" 'Debug.Print cmmd Call ShellWait(cmmd, vbHidden) 'convert bmp to jpg Call ShellWait(iview_Folder & " " & Save_images_to & "frame.bmp" & " /convert=" & File_Path, vbNormalFocus) 'Delete the bmp image Kill Save_images_to & "\frame.bmp" 'show the picture in the Form Me.Pic.Picture = Save_images_to & Me.Employee_ID & ".jpg" MsgBox Timer - istart . المرفق فيه جميع البرامج المطلوبة لجعل هذا البرنامج يعمل ، ولكن ، 1. المطلوب اولا معرفة حجم الصورة التي تستطيع Webcam التقاطها ، فاذا ادخلت رقم خطأ ، فستظهر لك رسالة بعدم الحصول على الصورة frame.bmp ، فرجاء تغيير هذه الارقام: width 1280 /height 720 فتجربتي على الكاميرتين كانا: Logitec HD c615 : 1920 x 1080 Creative Live (VF0610)e : 1280 x 720 وهذه قائمة بالاحجام العامة للكاميرات ، وانا انصح بالبدء بالحجم 640x480 ، وعند ظهور الصورة ، تستطيع ان تزيد الحجم بالتجربة: . 2. اذا عندك اكثر من Webcam ، مثلا تستخدم كاميرا اللابتوب واخرى خارجية ، فيجب تغيير الرقم الى 2: devnum 1 وهذا هو سطر الكود الذي يحتاج الى تغيير: cmmd = App_Location & " /devnum 1 /delay 1000 /width 1280 /height 720 /bmp" . وبما ان هذا البرنامج للتجربة ، فالرجاء ابداء ملاحظاتكم جعفر Camera_Scanner.zip
    1 point
  21. اولا: شروط المنتدى لا تسمح بهذا ، ثانيا: البرنامج الذي استفيد منه ، اشتريه ، وخصوصا اذا استعماله خلال الفترة التجريبية اثبت جدارته جعفر
    1 point
  22. سأبدأ أنا ان شاء الله بيتم تجهيز الموضوع حالياً
    1 point
  23. على بركة الله .. فأمثالي ممن فقدوا جميع بياناتهم بسبب مشكلة في الهارد يحتاجون الى تلك الادوات بشدة ولانها غير متوفرة في المنتدى فاننا نعاني بشدة للوصول اليها .. توكل على الله
    1 point
  24. بصراحة يا استاذ أمير ويشهد الله علي اني لازلت اتذكرك جيداً ودائماً ما اتفرج على اكوادك البرمجية التي كانت لدي واتعلم منها .. اتمنى وجودك المستمر معنا وعدم الانقطاع عن هذا المنتدى الرائع الذي فيه اساتذة محترفين ومحترمين جداً لم اكن اتخيل وجودهم مجتمعين هنا في مكان واحد .. حفظك الله واياهم اجمعين وبارك الله بكم على مجهوداتكم الرائعة . تحياتي
    1 point
  25. السلام عليكم احد اهم الحقول اللي عندك هو حقل الترقيم التلقائي ، والذي دائما سيعطي الرقم المسلسل لإدخالك ، فإستعماله سيحل لك المشكلة: Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer) Dim x() As String MX = DMax("[ID]", "Transactions", "[Qty in]<>0") DL = DLookup("[add_doc] & '|' & [zdate]", "Transactions", "[ID]=" & MX) x = Split(DL, "|") Me.Text53 = x(0) Me.Text48 = x(1) End Sub جعفر
    1 point
  26. بارك الله بك و جزاك الله خيراً اخي ياسر ولكن عندي تساؤل لماذا لم تستعمل الحلقة For Nxet Private Sub CommandButton1_Click() Sheets(1).Activate lrow = Range("d" & Rows.Count).End(xlUp).Row + 1 Range("d" & lrow).Value = ComboBox1.Value For i = 1 To 6 Range("d" & lrow).Offset(0, i).Value = Controls("TextBox" & i).Value Controls("TextBox" & i).Value = "" Next End Sub
    1 point
  27. السلام عليكم الموضوع ظاهرا ليس ببسيط ، فياريت مرفق ، ونجرب عليه جعفر
    1 point
  28. الخطأ كان في هذا السطر بشكل خاص lrow = Range("d" & Rows.Count).End(xlUp) حيث يشير إلى نطاق والمطلوب أن يكون معبر عن رقم آخر صف لذا تمت إضافة الخاصية .Row وهي تجلب رقم آخر صف ... وبما أننا نريد وضع بيانات في صف جديد فتم إضافة الرقم 1 إذا أردت الإشارة لورقة عمل أخرى سيكون عليك أن تغير رقم فهرس الورقة من خلال السطر التالي Sheets(1).Activate
    1 point
  29. 'متغير لفتح سجلات الجدول الاول Dim rs1 As DAO.Recordset 'متغير لفتح سجلات الجدول الثاني Dim rs2 As DAO.Recordset 'متغير نصي لتخزين اسم الصورة Dim s1 As String 'شرط اذا كان حقل الموظف فارغا يعطي رسالة تنبيه و يخرج من الكود If IsNull(Me.Text11) Then MsgBox "يجب اختيار رقم الموظف اولا", vbCritical Exit Sub ' في حال تم اختيار رقم الموظف Else 'نفتح سجلات الجدول الاول table2 و تتم تصفية السجلات حسب رقم الموظف الذي تم اختياره من النموذج Set rs1 = CurrentDb.OpenRecordset("select * from table2 where table2.emp_id =" & Me.Text11) 'نفتح سجلات الجدول الثاني IETEM_NEM و تتم تصفية السجلات حسب رقم الموظف الذي تم اختياره Set rs2 = CurrentDb.OpenRecordset("select * from IETEM_NEM where IETEM_NEM.ITEM_NO =" & Me.Text11) 'حلقة دورانية للدوران على كافة سجلات جدول Table2 التي تم تحديديها برقم الموظف Do While rs1.EOF = False 'يستخرج اسم الصورة من الجدول table2 s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) 'Debug.Print s1 'السماح بالتعديل على الحقل ' الرقم 5 يرمز الى حقل اسم الصورة لان الترقيم يبدا من 0 و الحقل مسار الصورة رقمه 5 - اذا بدأنا عد الحقول من 0 rs1.Edit ' تعديل مسار الصورة ' اسم الصورة + ننسخ القيمة من الجدول الاول و نضيف اليها مسار الصورة rs1.Fields(5) = rs2.Fields(5) & "\" & s1 'تحديث الحقل rs1.Update 'الذهاب الى السجل التالي rs1.MoveNext 'تكرار دوران الحلقة Loop 'اعادة تحديث النموذج الفرعي بعد الانتهاء من تحديث مسار الصورة Form_form1.subform1.Requery End If s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) هذا السطر يحتوي على ثلاث دوال ساقوم بتقسيمها لسهولة الشرح InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare) هذا السطر يبحث في سلسلة نصية عن قيمة معينة ويعيد الينا مكان تواجد هذه القيمة هنا بحثت عن السطر المائل \ في الجدول table2 لاستخرج اسم الصورة وطبعا هذه الدالة تبدا البحث من نهاية القيمة مثلا C:\Users\pcHome\Desktop\All_Files\123\2017-05-11_02.55.07_11.jpg الدالة تبدا من الحرف g وتبحث عن السطر المائل \ وعندا ايجاده تعيد الينا مكان تواجده Len(rs1.Fields(5)) هذا السطر يعيد الينا طول احرف السلسة اي اننا هنا نعرف عدد الاحرف الموجودة في حقل اسم الصورة Right(rs1.Fields(5), عدد الاحرف ) هذا السطر يعيد الينا قيمة نصية من قيمة معينة مع تحديد عدد الاحرف المطلوب اعادتها حيث تبدا الدالة من يمين القيمة النصية المحددة مثلا right("ayman",3) ستعيد الدالة man وبدمج هذه الدوال الثلاثة يصبح ليدنا هذا الكود s1 = Right(rs1.Fields(5), Len(rs1.Fields(5)) - InStrRev(rs1.Fields(5), "\", -1, vbBinaryCompare)) تعيد الدالة من يمين الحقل مسار الصورة نص طول حروفه هو عدد طول حروف النص في حقل مسار الصورة - مكان السطر المائل في حقل مسار الصورة ارجو ان اكون قد وفقت في الشرح
    1 point
  30. وعليك السلام اخي الفاضل : يجب تحديد الارقام الاربعة المراد اخدها وفي اي خلية يتم وضعها ويفضل كتابةالنتائج المتوقعة في الخلية حتى يتضح المطلوب لك خالص تحياتي
    1 point
  31. تمام سأرى تعديلك إن شاء الله بالنسبة لسؤالك : الأفضل أن نستخدم الأرقام للدلالة على الأسماء ويتم تخزينها بالجدول وفي نفس الوقت يمكن ظهور الاسم في الجدول أو الاستعلام بالرغم من وجوده بالجدول كرقم ، مثل التعديل بالمرفق والتعديل : كان أمامي عدة اختيارات : الأول : أن تختار الموقع ثم تختار الفرع استناداً إلى ذلك الموقع الثاني : أن تختار القطاع ثم تختار الموقع استناداً إلى القطاع ثم تختار الفرع استناداً إلى الموقع الثالث : أن تختار القطاع أو الموقع أو كلاهما ثم تختار الفرع استناداً إلى اختيارك لأحدهما أو كليهما الرابع : أن تختار القطاع أو الموقع أو الفرع بأي ترتيب تريد بحيث يتم التصفية تدريجياً حسب اخيتارك. وقد اخترت الخيار الثالث ، لكن القرار لك طبعاً Backup_2.rar
    1 point
  32. العفو أخي عمرو ، كنت بهزّر مع اخونا أوس وهذه طريقتي في طلب معلومات في مشاركاتي لفهم الموضوع ومعرفة المشكلة جعفر
    1 point
  33. 1 point
  34. جرب التعديل التالي Private Sub CommandButton1_Click() Sheets(1).Activate lrow = Range("d" & Rows.Count).End(xlUp).Row + 1 Range("d" & lrow).Value = ComboBox1.Value Range("d" & lrow).Offset(0, 1).Value = TextBox1.Value Range("d" & lrow).Offset(0, 2).Value = TextBox2.Value Range("d" & lrow).Offset(0, 3).Value = TextBox3.Value Range("d" & lrow).Offset(0, 4).Value = TextBox4.Value Range("d" & lrow).Offset(0, 5).Value = TextBox5.Value Range("d" & lrow).Offset(0, 6).Value = TextBox6.Value ComboBox1.Value = "" TextBox1.Value = "" TextBox2.Value = "" TextBox3.Value = "" TextBox4.Value = "" TextBox5.Value = "" TextBox6.Value = "" End Sub
    1 point
  35. اعمل كما قال السيد @Rebaz Bahram وانا جربت ذلك ونفعت لكن الايقونة اكسس ما يظهر في شريط
    1 point
  36. مشكور على مرورك ولكن لم تنفع الطريقة
    1 point
  37. تفضل اخى الكريم علة المطلوب =VLOOKUP(DAY($D$3),INDIRECT("'"&C13&"'!C14:Z44"),MONTH($D$3)*2,FALSE) البحث في جداول متعددة.rar
    1 point
  38. مطلوبك غير واضح حاول صياغة سؤالك بطريقة أخرى
    1 point
  39. تمام بس تأكيد على طلبك : القطاع يحتوي أكثر من فرع ثم الفرع يحتوي أكثر من شركة ؟ أم : القطاع يحتوي أكثر من شركة ثم الشركة تحتوي أكثر من فرع ؟ ------------ سؤال آخر للاحتفاظ ببياناتك : الجدول الذي بياناته بها : ( أكتوبر - شل و ABB و ATM ..... ) هو جدول للأفرع أم للشركات ؟ والجدول الذي بياناته بها : (QNB و بنك المشرق ..... ) هو جدول للأفرع أم للشركات ؟ ------------- سؤال آخر : مصطلح الموقع تقصد به : فرع أم شركة أم قطاع ؟
    1 point
  40. 1 point
  41. استأذن من الاستاذ @ابو زاهر اخي حمادة اكتب الكود في اي مكان تريد اذا تريد وضع في زر حقل جديد او عند خروج من احد الحقول لكن من الافضل ان تضع في فورم قبل تحديث هناك ملاحظة : الكود فقط لا يخليك ان يخلي المربع النصي فارغا اما كومبو بوكس و ليست بوكس ما بها علاقة تحياتي
    1 point
  42. الفرق بين Class و module الوحدة النمطية يخزن بها كود يستدعى من اي مكان في قاعدة البيانات وهو يخفف من كتابة الكود و تسهيل تطوير قاعدة البيانات في المثال السابق عندما عرفنا الوظيفة AdNum وهي تقوم بجمع عددين لنفرض انه لدينا 10 نماذج و نحن بحاجة لتطبيق كود الجمع في جميع هذه النماذج من غير المنطقي تكرار كتابة الوظيفة في كل نموذج اي اننا سنكتب الكود السابق 10 مرات و اذا اردنا ان نعدل او نطور الكود ستكون العملية صعبة و مملة و قابلة للخطا لذلك ننشئ وحدة نمطية ونضع الكود داخلها و بذلك يمكن استدعاء الكود من اي مكان class الكلاس هي تقريبا نفس الوحدة النمطية و لكن يوجد بعض الفروق الاساسية بينهما يتم التعامل مع الوحدة النطية باسم الكود المكتوب ضمنها مثال لنفرض لدينا وحدة نمطية اسمها Mod1 وبداخلها عشرة اكواد code 1 code 2 code 3 وهكذا و انا بحاجة الى استخدام الكود الاول في النموذج اقوم باستدعائه بهذا الشكل call code1 اما الكلاس فالموضوع يختلف لنفرض لدينا كلاس اسمها Class1 و بها عشرة اكواد code1 code2 code3 الخ وانا اريد استخدام الكود الثاني لا يمكن ابدا كتابة الاستدعاء هكذا Call Code2 السبب لانه عليك تعريف متغير يحتوي على الكلاس اولا ثم استخدامه ويتم تعريفها بهذا الشكل dim Cl = new class1 cl.code2 يتبع
    1 point
  43. اشرح ماترید بالتفصیل ما فهمت قصدک
    1 point
  44. السلام عليكم ارجو ان يكون المطلوب تحياتي Tbl_ResultPrep_xls.rar
    1 point
  45. السلام عليكم اخي العزيز ارجو توضيح المطلوب ( هل يشمل هذه المعلومات ( حالة الإبصار-بلد الطالب-نوع الجنسية-المذهب) او الدرجات فقط) او الصفحة كاملة تحياتي
    1 point
  46. 1 point
  47. http://im40.gulfup.com/Ltirv.jpg هذا الكتاب يعد اول كتاب باللغه العربية لتعلم لغه ال VBA http://im35.gulfup.com/saxzs.png يتناول الكتاب ما يلى:- ❑ تخزين المعلومات في المتغيرات والمصفوفات ❑ صنع القرار في التعليمات البرمجية ❑ الحلقات ❑ معالجة الأخطاء ❑ اليوزر فورم رابط التحميل http://www.mediafire.com/download/dj01xxwnczia62k/VBA+Excel.rar (هذا الكتاب يعد عمل مترجم ولا يعبر عن فكر شخصى إلا فى اجزاء منه)
    1 point
  48. وعليكم السلام استبدل الكود بهذا =DLookUp("[g3s4]";"es4";"[g1s1]= [g1s1]")
    1 point
×
×
  • اضف...

Important Information