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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      22

    • Posts

      9995


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

    • نقاط

      11

    • Posts

      1755


  3. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      5

    • Posts

      3491


  4. Amr Ashraf

    Amr Ashraf

    الخبراء


    • نقاط

      3

    • Posts

      946


Popular Content

Showing content with the highest reputation on 01/19/18 in مشاركات

  1. بالعكس اخوي ابو ياسين ، ادلو بدلوك كذلك ، فزيادة الخير خيرين جعفر
    3 points
  2. السلام عليكم وبعد البحث ، والتجربة: استعمل هذا الكود في وحدة نمطية: Option Compare Database Option Explicit #If VBA7 Then Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As LongPtr) As LongPtr Private hWnd As LongPtr #Else Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Public hWnd As Long #End If Public Function Activate_This_AccessApp() As Boolean 'Brings the DB to the front of all open windows Call SetForegroundWindow(Application.hWndAccessApp) End Function Public Function Activate_Another_AccessApp() As Boolean 'Brings the DB to the front of all open windows Dim appTarget As Access.Application Set appTarget = GetObject(CurrentDb.Name) ActivateAccessApp = Not SetForegroundWindow(appTarget.hWndAccessApp) = 0 Set appTarget = Nothing End Function ثم ننادي هذه الوحدة النمطية هكذا: Private Sub Form_Load() Call Activate_This_AccessApp DoCmd.Maximize SendKeys "{BS}", False Me.SetFocus Me.id.SetFocus End Sub جعفر 883.Bring_Access_to_Front.mdb.zip
    3 points
  3. اما انا فمتوقف ، لأني واخيرا استطعت ان اوصل خطأ الفكرة الى ابو ياسين جعفر
    2 points
  4. السلام عليكم انا لا احب input mask ، لأنه يقيد المستخدم ، ولازم تبدأ تكتب من اول السطر ، واذا اخطأت واردت ان تتراجع وووو لذلك اليك طريقة اسهل: اكتب اللي تريده في التنسيق ، هكذا . والبرنامج راح يغيره الى . والنتيجة . جعفر 885.Dash.accdb.zip
    2 points
  5. السلام عليكم أخي الكريم سليم الكود الذي وضعته بهذه السرعة رائع جدا جازاك الله خير الجزاء وبارك الله فيك وفي علمك وزاده الله في ميزان حسناتك... بالنسبة لأرقام الجلوس أعتقد أنها تلقائية وتسلسلية مثلها مثل أرقام اللجان (وهي بمعادلات)، من المفروض أن لا يخصها الترتيب تبعا لترتيب الأسماء... قمت ببعض التعديل على كودك الجميل وربطه بالملف على أن يكون الترتيب للأسماء فقط وان تكون النتيجة في العمود الثاني (الخاص بالأسماء)... أرجو أن يفي ذلك المطلوب... بن علية حاجي تجهيز الكنترول -1 ابتدائي- مرفق كود الأخ سليم معدل.rar
    2 points
  6. اتفضل اخي ابو زاهر طباعه الفاتوره.rar
    2 points
  7. نشكرك .. لكن تقدر تستخدم دالة if مرة واحدة بدل 100 مرات هكذا Static intCount As Integer intCount = intCount + 1 If intCount = 1 Then Me.pr = "تقدم مؤشر التحقق 1%" Else If intCount = 2 Then Me.pr = "تقدم مؤشر التحقق 2%" Else If intCount = 3 Then Me.pr = "تقدم مؤشر التحقق 3%" Else If intCount = 4 Then Me.pr = "تقدم مؤشر التحقق 4%" Else If intCount = 5 Then Me.pr = "تقدم مؤشر التحقق 5%" Else If intCount = 6 Then Me.pr = "تقدم مؤشر التحقق 6%" Else If intCount = 7 Then Me.pr = "تقدم مؤشر التحقق 7%" Else If intCount = 8 Then Me.pr = "تقدم مؤشر التحقق 8%" Else If intCount = 9 Then Me.pr = "تقدم مؤشر التحقق 9%" Else If intCount = 10 Then Me.pr = "تقدم مؤشر التحقق 10%" Else If intCount = 11 Then Me.pr = "تقدم مؤشر التحقق 11%" Else If intCount = 12 Then Me.pr = "تقدم مؤشر التحقق 12%" Else If intCount = 13 Then Me.pr = "تقدم مؤشر التحقق 13%" Else If intCount = 14 Then Me.pr = "تقدم مؤشر التحقق 14%" Else If intCount = 15 Then Me.pr = "تقدم مؤشر التحقق 15%" Else If intCount = 16 Then Me.pr = "تقدم مؤشر التحقق 16%" Else If intCount = 17 Then Me.pr = "تقدم مؤشر التحقق 17%" Else If intCount = 18 Then Me.pr = "تقدم مؤشر التحقق 18%" Else If intCount = 19 Then Me.pr = "تقدم مؤشر التحقق 19%" Else If intCount = 20 Then Me.pr = "تقدم مؤشر التحقق 20%" Else If intCount = 21 Then Me.pr = "تقدم مؤشر التحقق 12%" Else If intCount = 22 Then Me.pr = "تقدم مؤشر التحقق 22%" Else If intCount = 23 Then Me.pr = "تقدم مؤشر التحقق 23%" Else If intCount = 24 Then Me.pr = "تقدم مؤشر التحقق 24%" Else If intCount = 25 Then Me.pr = "تقدم مؤشر التحقق 25%" Else If intCount = 26 Then Me.pr = "تقدم مؤشر التحقق 26%" Else If intCount = 27 Then Me.pr = "تقدم مؤشر التحقق 27%" Else If intCount = 28 Then Me.pr = "تقدم مؤشر التحقق 28%" Else If intCount = 29 Then Me.pr = "تقدم مؤشر التحقق 29%" Else If intCount = 30 Then Me.pr = "تقدم مؤشر التحقق 30%" Else If intCount = 31 Then Me.pr = "تقدم مؤشر التحقق 31%" Else If intCount = 32 Then Me.pr = "تقدم مؤشر التحقق 32%" Else If intCount = 33 Then Me.pr = "تقدم مؤشر التحقق 33%" Else If intCount = 34 Then Me.pr = "تقدم مؤشر التحقق 34%" Else If intCount = 35 Then Me.pr = "تقدم مؤشر التحقق 35%" Else If intCount = 36 Then Me.pr = "تقدم مؤشر التحقق 36%" Else If intCount = 37 Then Me.pr = "تقدم مؤشر التحقق 37%" Else If intCount = 38 Then Me.pr = "تقدم مؤشر التحقق 38%" Else If intCount = 39 Then Me.pr = "تقدم مؤشر التحقق 39%" Else If intCount = 40 Then Me.pr = "تقدم مؤشر التحقق 40%" Else If intCount = 41 Then Me.pr = "تقدم مؤشر التحقق 41%" Else If intCount = 42 Then Me.pr = "تقدم مؤشر التحقق 42%" Else If intCount = 43 Then Me.pr = "تقدم مؤشر التحقق 43%" Else If intCount = 44 Then Me.pr = "تقدم مؤشر التحقق 44%" Else If intCount = 45 Then Me.pr = "تقدم مؤشر التحقق 45%" Else If intCount = 46 Then Me.pr = "تقدم مؤشر التحقق 46%" Else If intCount = 47 Then Me.pr = "تقدم مؤشر التحقق 47%" Else If intCount = 48 Then Me.pr = "تقدم مؤشر التحقق 48%" Else If intCount = 49 Then Me.pr = "تقدم مؤشر التحقق 49%" Else If intCount = 50 Then Me.pr = "تقدم مؤشر التحقق 50%" Else If intCount = 51 Then Me.pr = "تقدم مؤشر التحقق 51%" Else If intCount = 52 Then Me.pr = "تقدم مؤشر التحقق 52%" Else If intCount = 53 Then Me.pr = "تقدم مؤشر التحقق 53%" Else If intCount = 54 Then Me.pr = "تقدم مؤشر التحقق 54%" Else If intCount = 55 Then Me.pr = "تقدم مؤشر التحقق 55%" Else If intCount = 56 Then Me.pr = "تقدم مؤشر التحقق 56%" Else If intCount = 57 Then Me.pr = "تقدم مؤشر التحقق 57%" Else If intCount = 58 Then Me.pr = "تقدم مؤشر التحقق 58%" Else If intCount = 59 Then Me.pr = "تقدم مؤشر التحقق 59%" Else If intCount = 60 Then Me.pr = "تقدم مؤشر التحقق 60%" Else If intCount = 61 Then Me.pr = "تقدم مؤشر التحقق 61%" Else If intCount = 62 Then Me.pr = "تقدم مؤشر التحقق 62%" Else If intCount = 63 Then Me.pr = "تقدم مؤشر التحقق 63%" Else If intCount = 64 Then Me.pr = "تقدم مؤشر التحقق 64%" Else If intCount = 65 Then Me.pr = "تقدم مؤشر التحقق 65%" Else If intCount = 66 Then Me.pr = "تقدم مؤشر التحقق 66%" Else If intCount = 67 Then Me.pr = "تقدم مؤشر التحقق 67%" Else If intCount = 68 Then Me.pr = "تقدم مؤشر التحقق 68%" Else If intCount = 69 Then Me.pr = "تقدم مؤشر التحقق 69%" Else If intCount = 70 Then Me.pr = "تقدم مؤشر التحقق 70%" Else If intCount = 71 Then Me.pr = "تقدم مؤشر التحقق 71%" Else If intCount = 72 Then Me.pr = "تقدم مؤشر التحقق 72%" Else If intCount = 73 Then Me.pr = "تقدم مؤشر التحقق 73%" Else If intCount = 74 Then Me.pr = "تقدم مؤشر التحقق 74%" Else If intCount = 75 Then Me.pr = "تقدم مؤشر التحقق 75%" Else If intCount = 76 Then Me.pr = "تقدم مؤشر التحقق 76%" Else If intCount = 77 Then Me.pr = "تقدم مؤشر التحقق 77%" Else If intCount = 78 Then Me.pr = "تقدم مؤشر التحقق 78%" Else If intCount = 79 Then Me.pr = "تقدم مؤشر التحقق 79%" Else If intCount = 80 Then Me.pr = "تقدم مؤشر التحقق 80%" Else If intCount = 81 Then Me.pr = "تقدم مؤشر التحقق 81%" Else If intCount = 82 Then Me.pr = "تقدم مؤشر التحقق 82%" Else If intCount = 83 Then Me.pr = "تقدم مؤشر التحقق 83%" Else If intCount = 84 Then Me.pr = "تقدم مؤشر التحقق 84%" Else If intCount = 85 Then Me.pr = "تقدم مؤشر التحقق 85%" Else If intCount = 86 Then Me.pr = "تقدم مؤشر التحقق 86%" Else If intCount = 87 Then Me.pr = "تقدم مؤشر التحقق 87%" Else If intCount = 88 Then Me.pr = "تقدم مؤشر التحقق 88%" Else If intCount = 89 Then Me.pr = "تقدم مؤشر التحقق 89%" Else If intCount = 90 Then Me.pr = "تقدم مؤشر التحقق 90%" Else If intCount = 91 Then Me.pr = "تقدم مؤشر التحقق 91%" Else If intCount = 92 Then Me.pr = "تقدم مؤشر التحقق 92%" Else If intCount = 93 Then Me.pr = "تقدم مؤشر التحقق 93%" Else If intCount = 94 Then Me.pr = "تقدم مؤشر التحقق 94%" Else If intCount = 95 Then Me.pr = "تقدم مؤشر التحقق 95%" Else If intCount = 96 Then Me.pr = "تقدم مؤشر التحقق 96%" Else If intCount = 97 Then Me.pr = "تقدم مؤشر التحقق 97%" Else If intCount = 98 Then Me.pr = "تقدم مؤشر التحقق 98%" Else If intCount = 99 Then Me.pr = "تقدم مؤشر التحقق 99%" Else If intCount = 100 Then Me.pr = "تم إكتمال التحقق 100%" End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If End If غيره الى هذا Static intCount As Integer intCount = intCount + 1 If intCount Then Me.pr = "تقدم مؤشر التحقق " & intCount & "%" End If
    2 points
  8. احي ابو زاهر كيف اقدر اجعل البيانات تظهر في النموذج الفرعي؟ وتقدر تختار النموذج وتحوله الى تقرير تلقائيا ، هكذا مثلا: تختار النموذج: . . ويصير عندك تقرير على نفس شكل النموذج ، وتقدر تخليه كتقرير فرعي داخل التقرير الرئيسي ، وتعمل رابط بينهم (كما تفعل بين النموذج الرئيسي والنموذج الفرعي). جعفر
    2 points
  9. السلام عليكم ورحمة الله وبركاته هذا الموضوع اُثير اكثر من مرة في الآونة الاخيرة ، ورأيت من الافضل ان اضع مثال ليقتدي به الجميع وقبل ان نبدأ ، اود ان اشير الى انني اعمل على اكسس 32 بت ، ولا املك نسخة من اكسس 64 بت احب ان اشير الى الرابط الذي شرحت فيه ان مايكروسوفت توصي بتنصيب الاوفيس / اكسس 32 بت ، بغض النظر عن نوع الوندوز المنصّب على الكمبيوتر ، سواء كان 32 بت او 64 بت: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ ولكن ، ماذا نفعل اذا عملنا برنامجنا على اكسس 32 بت ، واتضح ان الزبون عنده جهاز فيه اكسس 64 بت المثال التالي يشتغل على 32 بت و 64 بت ، ونستطيع ان نستفيد منه لعمل برنامجنا البرنامج المرفق ، بعد فك الضغط ، سيحتوي على 3 برامج: . هذا برنامج No_Password_BE.accdb ، وبه جدول واحد ، ولا يحتاج الى كلمة سر لفتحه: . هذا برنامج Password_is_jj_BE.accdb ، وبه جدول واحد ، وكلمة السر لفتحه هي jj: . البرنامج: JStreetAccessRelinker2.accdb من الرابط http://www.jstreettech.com/downloads.aspx ، وبه ماكرو ووحدات نمطية تعمل على 32 بت و 64 بت (فالفضل في هذا المثال يعود للبرنامج وليس لي ) ، وقد قمت بإضافة نموذج لربطه مع احد برنامج الجداول اعلاه ، ومبدئيا فهو مرتبط مع البرنامج No_Password_BE.accdb ، . وعند فتح البرنامج لأول مرة ، سوف يفتح نافذة تطلب معرفة مكان برنامج الجداول No_Password_BE.accdb ، وتستطيع ان تنقر على الزر Link Another BE ، وستفتح لك نافذة تطلب منك معرفة مكان برنامج الجداول الجديد الذي تريد ان تربطه (بدل البرنامج No_Password_BE.accdb) : . وبما ان البرنامج هذا محمي بكلمة سر ، فسوف تظهر لك نافذة لإدخال كلمة السر (لاحظ ان الادخال مشفر) : . وعندما يتم الربط ، سترى رسالة التاكيد: . الرجاء من الشباب الذين لديهم نسخة من الاكسس 64 بت ، التاكد من ان البرنامج يشتغل على كمبيوترهم بدون اخطاء. عندما نريد ان نعمل برنامج يشتغل على النسختين 32 و 64 بت ، فكود النماذج هو نفسه بين نسختي 32 بت و 64 بت ، والشئ الوحيد الذي يتغير هو دوال الوحدات النمطية API ، والكود الذي ينادي هذه الوحدات (بغض النظر سواء كان في نموذج او في وحدة نمطية مستقلة) ، هنا سوف اعطي مثال واحد من الكود عن طريقة العمل للنسختين 32 و 64 بت: الكود التالي يستعمل دالة API فتح نافذة اختيار ملف ، والدالة هي 32 بت (لاحظ comdlg32.dll ) : Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long الان اذا اردنا ان نجعل هذه الداله API تعمل على 64 بت كذلك ، فالكود يجب ان يكون: #If VBA7 Then 'هذه لنسخة 64 بت Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Boolean #Else 'وهذه لنسخة 32 بت Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long #End If ولاحظ في كود البرنامج ، انه تم جمع جميع الدوال مع بعض ، وجمعها في if# و else# و end if# واحدة. وهناك اصدار جديد لكود الربط ، ويمكن انزاله من هنا: http://www.jstreettech.com/files/JStreetAccessRelinker2.zip جعفر 238.Work_on_32Bits_and_64Bits.zip
    1 point
  10. بسم الله الرحمن الرحيم عليه نتوكل وبه نستعين، نحمده سبحانه كما ينبغي أن يحمد، ونصلي ونسلم على رسوله محمد وعلى آله وصحبه والتابعين . وبعد ها هو منتدانا وصرحنا أوفيسنا يضيف أقسام جديدة تضيف إلى رصيده العلمي منابر عدة للباحث العربي ، ليفتح آفاقًا رحبة للبحث العلمي في مجالات لها أهميتها البالغة في تنمية مهارات الفرد والباحث ، و يأمل منكم دعمكم وإثراءكم بمشاركاتكم ودراساتكم، ومقترحاتكم، لكي يكتب للأقسامه الجديدة النجاح والاستمرار وتتمكن من القيام بدورها الذي أنشئت من أجله. سائلين الله تعالى أن ينفع به وأن يكون عملا خالصا له سبحانه فيتصل ولا ينقطع، وأن يجازي بالخير كل من أسهم فيه ولو بكلمة طيبة. وانتهز الفرصة بالتوجه بالشكر للمهندس محمد طاهر وفريق العمل ولجميع الأعضاء بالمنتدي وشكري الخاص لأخواني الذين راسلوني على الخاص للاطمئنان علي اثناء انقطاعي عن المنتدي ونظرا لبعض الطلبات لأخواني بالمنتدي لتطوير برنامج تسجيل لروضة اطفال كنت انتهيت من فترة من بعض الاضافات الي الاصدار الأول واضافة صورة للطفل وطباعة أي دي بطاقة تعريف الطفل ولمزيد من الشرح حول البرنامج في الاصدار الأول رابط الاصدار الأول بعض الصور التوضيحية للبرنامج الملف بالمرفقات ويسعدني بتلقي ملاحظاتكم تم تعديل الملف واضافة خيار اضافة صورة من الفورم وحفظة تلقائيا KG_VII_B_Dahy.rar
    1 point
  11. السلام عليكم ورحمة الله وبركاته إخواني الكرام .. قد يكون موضوع الكسر موضوع شائك وفيه خلاف ، ولكن ربما يكون مفيد لصاحب العمل نفسه ، حيث أنه معرض لنسيان الباسورد الذي تم وضعه على محرر الأكواد .. الموضوع مميز لأنه يقوم بكسر الحماية بدون برامج على الإطلاق ..وبدون AddIns وبدون الاستعانة بأية برامج مجانية أو مدفوعة !! كسر محرر الأكواد بالأكواد نفسها (قنبلة الموسم) وعلى رأي المثل : علمته رمي السهام فلما اشتد ساعده رماني .. الكود قليل الأصل !! محفظش الجميل للبيئة اللي هو منها ، لأنه كسر بيئة محرر الأكواد !!! Sub HackVBA() Open "C:\Users\Future\Desktop\Test.xls" For Binary As #1 Put #1, 1, Replace(Input(LOF(1), 1), "DPB=", "DPX=", , 1) Close Workbooks.Open "C:\Users\Future\Desktop\Test.xls" End Sub المطلوب فقط أن تغير مسار الملف المراد كسره داخل الكود ، والمسار يوضع بين أقواس تنصيص .. أترككم مع الفيديو عله ينال إعجابكم وتستفيدوا منه إن شاء المولى .. ولا تنسونا من اللايكات على اليوتيوب !!!!! ....أكرر اللايكات على اليوتيوب ..فضلاً لا أمراً تقبلوا تحيات أخوكم أبو البراء
    1 point
  12. اخواني الكرام ، السلام عليكم عندما يكون جهاز الحاسب خاص ببرنامج محدد فاننا نعمل على جعل البرنامج يفتح مع الاقلاع مثلا برنامج حضور بواسطة قارىء البطاقة سنجعل نموذج البداية يفتح على كامل الشاشة وسيكون المؤشر مرتكز على حقل التسجيل المشكلة : ان التركيز احيانا وفي بعض الاجهزة يكون خارج الفورم (على شريط المهام) مما يضطر معه الى النقر على الحقل بواسطة الفأرة السؤال : انا استخدم في نهاية حدث عند تحميل الفورم العبارة التالية : SendKeys "{BS}", False Me.id.SetFocus من اجل نقل التركيز الى الفورم ثم الى حقل id ولكن اكسس لا يقبل السطر الأول فهل من حل أو بديل ؟ db1.rar
    1 point
  13. اخوي ابو ياسين انا قلت لك: . يعني لازم تغير في الجدول حركات وتضيف اسم_المورد ، وعليه نقدر نعمل المقارنه. جعفر
    1 point
  14. تفضل جرب الآن Me.[Nd] = UmFormat(UmDateAdd("d", Val(Me.Md) - 1, Me.[Bd]), Nd.Format) Me.[Ad] = UmFormat(UmDateAdd("d", Val(Me.Md), Me.[Bd]), Ad.Format) ejazat_hejri_mdb1.rar
    1 point
  15. فيك الخير والبركه استاذنا ابو الجعافر نتمنا ان يحصل استاذنا ابو ياسين على مراده تحياتي اليكم
    1 point
  16. ههههههههههه اقصد نموذج سند_صرف
    1 point
  17. اذا كان قصدك نموذج وجدول سند_صرف (وليس رقم_السند ، لأنه اصلا لا يوجد في برنامجك نموذج او جدول بهذا الاسم) ، فمافي فرق تأخذ المعلومة من ايهم ، لأن مصدر بيانات النموذج هو الجدول سند_صرف ايضا!! . جعفر
    1 point
  18. هل تريد ان يظهر هكذا في الاعلى
    1 point
  19. آعتذر منك ، من قراءتي السريعة للموضوع اعتقدت بأنها شيء جديد فالظاهر يجب ان تتجه الى شراء برنامج يقوم بإخفاء المجلدات ، ولكن يجب التأكد من انه تستطيع السيطرة عليه عن طريق Command line ، والذي تستطيع من الاكسس التحكم فيه. جعفر
    1 point
  20. الرابط اللي اعطيتك في اول مشاركة ، فيه رابطين ، الرابط الثاني فيه طلبك ، حتى كيفية عرض اسماء الملفات في المجلد: . الروابط تعطيك جميع الاكواد اللي تحتاج لها في عمل البرنامج جعفر
    1 point
  21. 1 point
  22. طيب اخي جعفر انا اريده من النموذج وليس من الجدول اقصد من نموذج رفم_السند وليس من جدول رقم السند ماينفع بهذه الطريقه
    1 point
  23. استاذي الفاضل ابو ياسين السلام عليكم ورحمة والله وبركاته نعم احسنت هذا حل اخر بارك الله فيك وجزاك الله خيرا وجعلها الله جل وعلا في ميزان حسناتك يارب اساتذتي الافاضل الاستاذ جعفر والاستاذ ابو ياسين بارك الله فيكم وجزاكم الله خيرا سائلا الله جل وعلا ان يمن عليكما بالصحة والعافية يارب يارب
    1 point
  24. السلام عليكم نعم هو هذا ما اقصده يعني الآن رجعنا الى مقارنة: قيمة حقل البيان اللي في النموذج ، مع الحقل البيان في الجدول حركات ، وقيمة حقل التاريخ اللي في النموذج ، مع الحقل تاريخ الحركة في الجدول حركات. للأسف هذا غير كاف للمقارنه ، فانت محتاج الى حقل ثالث للمقارنه ايضا ، اخبرك ليش: يوم 18/01/2018 جاءك المرسام وطلب دفعة من الحساب ، فيقارن الكود بيانات النموذج والجدول حركات ، ولا يلاقي هذا التاريخ ولا البيان ، فيتم حفظ التاريخ والبيان في جدول حركات ، ثم في نفس اليوم 18/01/2018 جاءك عالم النسيج وطلب دفعة من الحساب ، فيقارن الكود بيانات النموذج والجدول حركات ، ويلاقي هذا التاريخ و البيان ، فلن يحفظ هذا السجل !! لا يتم حفظ سجل عالم النسيج ، مع انه لا علاقة بين عالم النسيج والمرسام !! لهذا السبب انت بحاجة الى حقل ثالث للمقارنة ، وهو حقل اسم_المورد ، ولكن هذا الحقل لا يوجد في جدول حركات (انظر صورة الجدول في الصورة في الاسفل) ، لذا لا تستطيع ان تقوم بالمقارنة الصحيحة ، وعليه كود مقارنة الحقلين غير مجدي وغلط. . البارحة ، وقبل ان اعمل اي شيء ، قمت بتنسيق الكود الذي على الزر ، حتى يكون مفهوما لي: Private Sub أمر29_Click() Dim str1SaveMssage As String Dim strSaveMssage As String DoCmd.Beep If Not IsNull(Me.supplier_name) Then str1SaveMssage = " ســيــتــم تـرحـيـل : " str1SaveMssage3 = " عـلـى حـسـاب : " str1SaveMssage = str1SaveMssage & Me.[payment_amount] & " ريـال " str1SaveMssage3 = str1SaveMssage3 & Format(Me.supplier_name, " ") If MsgBox(str1SaveMssage & str1SaveMssage2 & str1SaveMssage3 & vbCrLf & "", vbYesNo, " بـرنـامـج الـخـيـاط ") = vbNo Then Exit Sub End If criteria = "[البيان]='" & Me.payment_info & "'" criteria = criteria & " and [تاريخ الحركة]=#" & Me.payment_date & "#" Debug.Print criteria If DCount("*", "حركات", criteria) > 0 Then 'If DCount("*", "حركات", "[البيان]='" & Me.supplier & "'" & "and [تاريخ الحركة]<>#" & Me.payment_date & "#") > 0 Then ' Exit Sub 'If DCount("*", "حركات", "[البيان]<>'" Me.supplier & "'" & "and [التاريخ]<>#" & Me.payment_date & "#") > 0 Then 'If supplier = Nz(DLookup("البيان", "حركات"), 0) And Me.payment_date = Nz(DLookup("[تاريخ الحركة]", "حركات"), 0) Then DoCmd.Beep MsgBox "لـقـد تـم تـرحـيـل عـلـى حـسـاب : " & Format(Me.[supplier_name], " ") & " مـن قـبـل ", , " بـرنـامـج الـخـيـاط : " Else DoCmd.SetWarnings False DoCmd.CancelEvent DoCmd.RunSQL ("INSERT INTO حركات ([نوع السند], البيان, الاسم, [تاريخ الحركة], مدين, [user] ) SELECT = ""الموردين"" AS Expr6," & _ """ دفعة "" & [Forms].[سند_صرف]![supplier_name] AS Expr4, = ""الخزينه"" AS Expr2, [Forms].[سند_صرف]![payment_date] AS Expr3," & _ "[Forms].[سند_صرف]![payment_amount] AS Expr5, [Forms].[login]![a] AS Expr1;") DoCmd.SetWarnings True Beep If Not IsNull(Me.supplier_name) Then strSaveMssage = " مـبـلـغ : " strSaveMssage = " تـم تـرحـيـل : " strSaveMssage2 = " عـلـى حـسـاب : " strSaveMssage1 = strSaveMssage1 & " بنـجـاح " strSaveMssage = strSaveMssage & (Me.[payment_amount]) & " ريـال " strSaveMssage3 = strSaveMssage3 & Format(Me.supplier_name, " ") MsgBox (strSaveMssage) & (strSaveMssage2) & (strSaveMssage3) & (strSaveMssage1), vpInFormation, " بـرنـامـج الـخـيـاط " End If 'Not IsNul End If 'DCount End If 'Not IsNul Me.Refresh End Sub جعفر
    1 point
  25. تشابهت الطرق ولكنك كنت انت المبدع استاذ جعفر
    1 point
  26. جرب هذا الملف تم العمل في الصفحة Salim و ذلك لعدم العبث بالصفحة الرئيسية اذا اعجبك الماكرو يمكنك التعديل عليه ليتناسب مع المعطيات عندك الماكرو فيما بعد (لبطء النت) Salim.rar
    1 point
  27. دائما انت السباق اخي جعفر لكن والله لم اشاعد ردك الى الان بقوم برفع طريقتي ثم بشوف طريقتك للعل الكل يستفيد
    1 point
  28. العفو اخي ابو زاهر
    1 point
  29. الله يسعدك جزاك الله خير استاتذي ابو ياسين كذا تمام شكرا اليك
    1 point
  30. انا انزلت المرفق لكن بعد لا اعرف وين المشكلة لان عندي كل شيء تمام فتحت النموذج والاشارة في الحقل id ... لكن انا استخدم هذه الطريقة لكي نجعل التركيز على الحقل مثلا نريد ان يكون التركيز على نموذج1 في حقل اي دي استخدم هذا من اي نموذج او من اي مكان تستخدمه سيكون فعال حسب تجربتي Form_نموذج1.id.SetFocus لكن يجب ان يكون صفحة الاكواد النموذج اللي تجعل تركيز عليه مثلا (نموذج 1 ) جاهز اي يجب ان يكون اسمهم موجود هناك
    1 point
  31. :: فقط تأكد من مصدر بيانات النموذج والحقول وتعديل الكود الخاص بالزر ... If Me.Text39 = Me.SerialNumber Then Me.Text5.Visible = False Else Me.Text5.Visible = True End If
    1 point
  32. طيب انا جربت انى اضغط على شريط المهام وطبقت طريقتك وحاولت الالتفاف حول المشكلة عن طريق اغلاق الفورم وفتحه برمجيا فى حدث عند التوقيت ونجحت الفكرة بيعيد التركيز للحقل المطلوب حتى لو التركيز خارج الأكسس DoCmd.Close: DoCmd.OpenForm "نموذج1" بس على حسب طبيعة عمل الفورم انا غير متأكد هل هتنفعك الطريقة ام لا طريقة اخرى فى حدث عند التوقيت ايضا كما اشار استاذ جعفر ولكنى فكرت فيها قبله Forms![äãæÐÌ1].SetFocus Me.id.SetFocus db2.rar
    1 point
  33. السلام عليكم استاذى الفاضل هل المثال التالى قد يساعدك .؟ Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Run Calculator. AppActivate ReturnValue ' Activate the Calculator.
    1 point
  34. الاخ مصطفى اسف على التأخير فى الرد لسفرى الايام دى الملف تم تعديل ال 3 صفحات الاولى واضافة بعض الصفحات وادخال الصوت كمل باقى الاسئلة بنفس الطريقة مسابقة خيارات متعددة لإصدار 2003.rar
    1 point
  35. و عليكم السلام و رحمة الله و بركاته الله المستعان جزاك الله خيراً
    1 point
  36. استخدم هذه الصيغة =TRIM(MID(B4;SEARCH(" ";B4);100))
    1 point
  37. ان شاء الله اكون عملت المطلوب دالة IF.rar
    1 point
  38. لم تذكر شيئاً بالنسبة لـــ نقل ملكية مركبة؟ ما هي الاسعار
    1 point
  39. Public Function Parse_to_Rich_Text(TextIn As String) As String Dim var() As String Dim delim As String Dim i As Integer Dim T As String 'Exit when No value If Len(TextIn & "") = 0 Then Parse_to_Rich_Text = "" Exit Function End If 'get the delimiter separator For i = 1 To Len(TextIn) If Not IsNumeric(Mid(TextIn, i, 1)) Then delim = Mid(TextIn, i, 1) Exit For End If Next i 'split the text to two values var = Split(TextIn, delim) T = "<div " 'Start, Make HTML code 'Left side T = T & "<font" 'font info, First Line T = T & " size=4" 'size T = T & ">" 'close T = T & "</font>" 'font info, Last Line T = T & " <b>" 'Bold, begin T = T & var(0) & delim 'Text T = T & "</b>" 'Bold, Close 'Right side T = T & "<font" T = T & " size=2" T = T & " color=red" T = T & ">" T = T & var(1) T = T & "</font>" T = T & "</div>" 'Close, Make HTML code 'Debug.Print T Parse_to_Rich_Text = T End Function اوامر HTML التي يمكننا استعمالها في حقل Rich Text في الاكسس: https://support.office.com/en-us/article/Insert-or-add-a-rich-text-field-9f86237d-dbbc-4a85-b12c-9d8dca824630?CorrelationId=e5ac3d8a-72c2-4ac2-8f74-c70704f01a2f&ui=en-US&rs=en-US&ad=US&ocmsassetID=HA010014097 وبرمجة هذه الاوامر ممكن ان نبحث عنها هنا ، لكي نعمل الجملة المطلوبة https://www.w3schools.com/TAgs/default.asp جعفر 878.RichText.accdb.zip
    1 point
  40. مشاركة مع اخي شفان عملت تعديل على الوحدة النمطية لتأخذ جميع انواع الفواصل Public Function ParseText(TextIn As String, X) As Variant On Error Resume Next Dim var As Variant Dim delim As String For i = 1 To Len(TextIn) If Not IsNumeric(Mid(TextIn, i, 1)) Then delim = Mid(TextIn, i, 1) Exit For End If Next i var = Split(TextIn, delim, -1) ParseText = var(X) End Function . وانا افضل لو نعمل كود الحقل في الوحدة النمطية مباشرة كذلك ، لأنك ستحصل على النتائج بضعف السرعة (اسرع مرتين) ، لأنك ستنادي الوحدة النمطية مرة لكل حقل جعفر
    1 point
  41. هل تريد ان يظهر هكذا انا استخدمت هذا =IIf(Len([Champ1] & "")=0;"";"<div align=right dir=RTL><font size=4>" & ParseText([Champ1];0) & "</font>.<font size=2>" & ParseText([Champ1];1) & "</font></div>") مع هذا فانكشن Public Function ParseText(TextIn As String, X) As Variant On Error Resume Next Dim var As Variant var = Split(TextIn, ".", -1) ParseText = var(X) End Function Data.rar
    1 point
  42. مشاءالله ابداع ياستاذ ضاحي جزاك الله الف خير واجعله في ميزان حسناتك يارب
    1 point
  43. الاستاذ الفاضل ضاحى الغريب . عمل ولا اروع جعله الله فى ميزان حسناتك . واذا سمحت عندى طلب ثقيل شوى ولاكنى امل الا تخيبى رجائى . اود ان ادمج ملفين منفصلين اكسل ليصبحوا فى ملف واحد فقط ليساعدنى فى ادارة مشروعى وهو انا اقوم بالبرنامج الاول بتسجيل الاصناف الموجوده عندى . ويقوم البرنامج الاخر الذى هو من انتاج حضرتك ( الفاوتير ) بقرائه البيانات التى اقوم باضافتها وتصبح موجوده به UserForm Flexibles.rar فاتورة مبيعات اوفيسنا_2.rar
    1 point
  44. الطريقه العاشره :- تعبئه الكمبوبوكس بأستخدام Set هذه هى الطريقه الاخيره من طرق الكمبوبوكس وعلشان هى الاخيره والاعمال بالخواتيم اللهم ارزقنا جميعا حسن الخاتمه فطريقه اليوم طريقه سهله جدا وتتميز بالبساطه يعنى هنقزز كدا شوى مع بعض ونتسلى ( استراحه متعلم ) لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر شاهد الصوره يوجد طريقتين الطريقه الاولى :- لو نطاق البيانات عندى ثابت كما هو بالجدول من A2: b5 هستخدم الكود التالى Dim R As Range Set R = Sheet1.Range("A2:b5") Me.ComboBox1.List = R.Cells.Value كود سهل جدا وبسيط السطر الاول الاعلان عن المتغيرر وقمت بتسميته R ( وممكن تسميه اى اسم كيفما شئت) وانه ان المتغير ده من النوع Range وعايز احول المتغير ده الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن القاعده الخاصه بـ Set هى الكائن = المتغير set ("Set R = Sheet1.Range("A2:b5 بعد ما عرفت الكائن وحددت نطاقه دلوقتى اقدر استخدمه واتعامل معه Me.ComboBox1.List = R.Cells.Value هذا السطر يعنى ان قائمة الكمبوبوكس تساوى النطاق قيمة كل خليه فى النطاق R الطريقه الثانيه :- لو نطاق البيانات عندى متغير كما هو بالجدول من A2: b5 ولكن يمكن اضافه اسماء جديده او حذف اسماء موجود فى هذه الحاله هو نفس الكود ولكن هيتم تعريف اخر صف به بيانات هستخدم الكود التالى Dim R As Range Set R = Sheet1.Range("A2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Me.ComboBox1.List = R.Cells.Value وطبعا اتكلمنا قبل كدا ماذا يعنى سطر تعريف اخر خليه بها بيانات يبقى تحديد وقت تنفيذ الكود وزى ما اتفقنا قبل كدا ان وقت تنفيذ الكود انت اللى بتحدده ولكن على سبيل المثال فى حدث فتح الفورم Private Sub UserForm_Initialize() Dim R As Range Set R = Sheet1.Range("A2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Me.ComboBox1.List = R.Cells.Value End Sub طبعا فى طرق اخرى ولكن لا ارى جدوى منها فنكتفى بعشر طرق تم تناولها لننتقل الى شروحات اخرى فأنا والله لم ابخل عليكم بمعلومه فكل ما يهمنى ويشغل بالى هو تبسيط المعلومه بعيدا عن الكلمات المعقده واكون دائما حريص على تنوعها ففى تعبئة الكمبوبوكس اتكلمت عن عشر طرق كان بالامكان اكتفى بطريقه او طريقتين ولكن الامانه العلمية وحبى لكم تقتضى على ان اعرفكم بكل شئ عايزكم تكونو احسن منى مش بس زى انا وما يحزننى هو احساسى بان الناس مش مهتمه بالموضوع لسبب او لاخر أحيانا الانسان لما بيزرع شجره بيكون عايز يشوف ثمرة جهده وعرقه فأنا مستمر فى غرس الشجر مهما كانت العواقب والعواصف أن شاء الله بعد الانتهاء من كل الشروحات هيتم تحويله الى كتيب الكترونى Pdf وان شاء الله يكون اول كتاب باللغه العربيه فى شروحات الفورم اللى بيدخل فى ادق التفاصيل واعمقها والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد انتظرونا تقبلوا تحياتى
    1 point
  45. الأخ الكريم/enterco السلام عليكم ورحمة الله وبركاته أبدأ بإستئذان الأساتذة الأفاضل من شاركوا في الحل قبلي - بترتيب المشاركة - مع حفظ الألقاب والمقامات الأستاذ/رجب جاويش والأستاذ/م / ياسر فتحى البنا والأستاذ/محمود الاسيوطى والأستاذ/أبو حنين والأستاذ/احمد عبد الناصر المرفق تصور لتوجيه البحث ناحية الحروف المدخلة - لعل به إفادة - تقبل تحياتي ComboBox as Validation List.rar
    1 point
×
×
  • اضف...

Important Information