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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      15

    • Posts

      9,814


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

    سليم حاصبيا

    أوفيسنا


    • نقاط

      12

    • Posts

      8,723


  3. أبوبسمله

    أبوبسمله

    الخبراء


    • نقاط

      4

    • Posts

      3,254


  4. ابوآمنة

    ابوآمنة

    الخبراء


    • نقاط

      3

    • Posts

      713


Popular Content

Showing content with the highest reputation on 03 مار, 2020 in all areas

  1. الآن سؤالك كامل وواضح 🙂 لما تُدخل البيانات ، سؤاء في الجدول او الاستعلام او النموذج ، ترى ان طرف السجل عليه هذه العلامة : . هذه العلامة معناها انك في وضع إدخال المعلومة / تعديلها / تحديثها ، ولكنك لم تحفظها بعد ، فلما تخرج من السجل (خروجك من الحقل الى حقل آخر معناه انك لازلت على نفس السجل) ، سواء الى السجل السابق او التالي او اي سجل او حتى خروجك من الجدول / الاستعلام / النموذج (لأن الاكسس تلقائيا يحفظ السجل في هذه الحالات) ، هنا فقط الاكسس يحفظ بيانات السجل ، وعليه تختفى هذه العلامة 🙂 بعض الاوقات في النموذج نكون نُدخل البيانات ، والاكسس لا يكون قد حفظ السجل ، لهذا السبب ، لا تظهر هذه المعلومة الجديدة في التقرير (لانها اصلا غير محفوظة في الجدول) 🙂 والطريقة هي ان نُجبر البرنامج على حفظ السجل قبل طباعة التقرير ، وهناك عدة طرق لذلك ، ومنها : 1. النقر على زر Refresh All (مثل ما عملت انت) والذي يضطر البرنامج الى دفع ثمن باهض ، بتحديثه سجلات جميع الجداول (وهذا يأخذ وقت اذا كان عدد الجداول كثير او في شبكة) التي في البرنامج (واذا كنت تشتغل في بيئة اكثر من مستخدم وهناك من يدخل البيانات ، فحتى بياناتهم يتم تحديثها غصبا عنهم) ، 2. استخدام الكود ، قبل سطر طباعة التقرير (هذا الكود الاسرع) : يحفظ البيانات فقط اذا تم عمل تغيير عليها if me.dirty then me.dirty=false او سيتم حفظ البيانات بغض النظر اذا تم تعديل عليها او لا docmd.runcommand accmdsaverecord 3. استخدام الكود ، قبل طباعة التقرير (وهذا ابطئ ، لأنه يضطر الى تحديث بيانات الجدول ، ثم جلبها الى النموذج) : me.Refresh او me.Requery . جعفر
    3 points
  2. السلام عليكم ورحمة الله استخدم هذا الكود Sub UnhideSheets() Dim Sh As Worksheet For Each Sh In Worksheets Sh.Visible = xlSheetVisible Next End Sub
    3 points
  3. اذا اردت ان تحدد الصفوف المكررة في جدول ما اليك هذا الملف Find_dup_rows.xlsm
    2 points
  4. السلام عليكم مرفق نموذج لحساب الضريبة اضافة الضريبة للمبلغ او اقتطاع من المبلغ TAX.rar
    2 points
  5. معادلة ممتازة لكن: اكتب في اي خلية نص مثلاً A وليس رقم و ترى النتيجة
    2 points
  6. هذه المعالة واسحب نزولاً (لا تحصل على نتيجة الا اذا كانت الخلية F و الخلية G غير فارغتين وتحتوي اعداداً فقط) =IF(OR(NOT(ISNUMBER(F8)),NOT(ISNUMBER(G8))),"",G8*F8) الملف مرفق Alpha.xlsx
    2 points
  7. السلام عليكم عمل قائمة فرعية لفتح النماذج انظر للملف المرفق اتمنى يفيدك للامانه هذه الاكواد منقولة تحباتي اختبار.rar
    2 points
  8. احد المؤسسات التي تستعمل احد برامجي ، عندها 16 مستخدم ، وحوالي 2200 عملية تعامل مع البيانات يوميا ، من سجلات جديدة ، او تحديث او حذف ، او تصفح ، واكثر من مليون ونصف سجل بين مختلف جداول البرنامج ، لهذا السبب ، مافي مجال إلا ان يكون البرنامج في كامل لياقته 🙂 جعفر
    2 points
  9. شكراً لك إضافة جميلة للملتقى
    2 points
  10. السلام عليكم 🙂 نعمل البرنامج ، ثم نقسمه الى قسمين ، FE الواجهة و BE الجداول ، ولما نعطيه للمستخدم ، نربط الجداول بمسار خاص به ، ويعمل البرنامج. ولما المستخدم يحتاج الى تعديل/اضافات ، ويرسل لنا نسخته بالايميل (انا ممكن اكون مسافر وبعيد عن نسختي) ، فيجب علينا ان نغير مسار الجداول ليتناسب مع مجلدات الكمبيوتر عندنا ، ولما ننتهي من التعديل ، نرسله بالايميل ، وهناك يجب على المستخدم ان يغير المسار الى ذلك الذي به BE الاصل 🙂 المشكلة انه: 1. بعض الاوقات نكون قد وضعنا الـ BE في مكان لا يجب ان يعرفه المستخدم ، فلا نريد تدخل منه لهذا التغيير ، 2. بعض الاوقات المستخدم لا يعرف مكان الـ BE اصلا ، 3. وبعض الاوقات ، المستخدم لا يكون فني ليعرف كيف يختار مكان الـ BE 🙂 صادفتني هذه المشكلة مراراً ، ومرة دفعت الثمن غالي لما ربطوه بالـ BE الغلط ، ربطوه بنسخة الـ Backup بدل عن النسخة الاصل 😁 الى ان اهتديت الى هذه الطريقة 🙂 الفكرة هي عبارة عن اضافة جدول tbl_ReLink_To_Original في الـ FE فيه سجلين ، سجل يحتوي على مسار BE المستخدم ، وسجل يحتوي على مسار BE المبرمج ، وبدل هذا الجدول ، ممكن ان نضع ملف نص txt في مجلد FE ، ونكتب فيهم السجلين ، ثم نقرأهم ، ولكن الجداول في الـ FE تناسبني اكثر ، فإستعملتها 🙂 1. لمعرفة مسار BE المستخدم: . . ثم ننسخه من (1) جدول MSysObjects الى السجل الاول (Seq = 1) في جدولنا (2) tbl_ReLink_To_Original . ثم في السجل الثاني (Seq = 2) ، نكتب مسار الـ BE حسب مجلدات الكمبيوتر عندنا (3) . طريقة العمل: نعمل ماكرو Macro باسم Autoexec ، والذي يقوم الاكسس بفتحه وتنفيذ اوامره اول ما يفتح البرنامج ، 1. نقوم بتشغيل الكود الذي سيربط الـ BE الى المسار الصحيح للمستخدم (اما المبرمج فلا يسنخدم هذا الماكرو ، وانما يدخل في البرنامج بمسك مفتاح الشفت) ، 2. اذا لم يحصل البرنامج على المسار الصحيح ، فيجب ان نخبره ان يعطينا نافذة نختار منها المسار الصحيح ، وهناك عدة طرق ، واخترت طريقتي هنا ، 3.4.5.7.8 هذه لإخفاء جميع كائنات البرنامج من جداول واستعلامات ونماذج وماكرو وتقارير ووحدات نمطية ، وتوسيع البرنامج لحجم الشاشة (فلا نحتاج ان نجعل النموذج منبثق ، والذي به الكثير من المشاكل) ، 5. فتح النموذج الاول من البرنامج ، . هذه هي الوحدة النمطية التي تقوم بالعمل (1) اعلاه : Public Function f_ReLink_To_Original(Optional Seq As Integer = 1) 'On Error GoTo err_f_ReLink_To_Original On Error GoTo Exit_f_ReLink_To_Original ' ' The client have his own path to the linked BE tables, ' yet for Development when we want to do change and modifications on the FE, ' we want to link this FE to our local BE tables, for testing, ' and we are done, we will send this FE back to the client, which will have our BE path!! ' ' Although the FE have a code on startup, which will prompt for the new BE path, but not all clients know how to use it!! ' So I added a table tbl_ReLink_To_Original to the FE, and the path to the client BE path, as Seq = 1 , ' and for the Developer BE, the Seq is 2 or other numbers. ' ' for the Development BE path, we call this Function, for the immediate window: ' ?f_ReLink_To_Original(2) ' ' or from a normal Event: ' Call Call f_ReLink_To_Original(2) ' ' and enter the DB with Shift key, ' ' and when the FE goes to the client, this Function will call Seq = 1 by default, thus returning their correct Path. ' ' ' by jjafferr ' ' v1. 24-Feb-2020 ' Dim db As dao.Database Dim tdf As dao.TableDef Dim ConnectionString As String, Linked_Connection As String Set db = CurrentDb 'which BackEnd the user selected ConnectionString = DLookup("[DB_Path]", "tbl_ReLink_To_Original", "[Seq]=" & Seq) 'the existing BackEnd Linked_Connection = DLookup("[Database]", "MSysObjects", "[flags] = 2097152") 'if the existing BackEnd = User Selected, then No need to connect again, just exit If ConnectionString = Linked_Connection Then GoTo Exit_f_ReLink_To_Original For Each tdf In db.TableDefs ' Only make a change if the table is a linked table If Len(tdf.Connect) Then tdf.Connect = ";DATABASE=" & ConnectionString tdf.RefreshLink End If Next Exit_f_ReLink_To_Original: Exit Function err_f_ReLink_To_Original: If Err.Number = 3170 Then 'MsgBox "رجاء التاكد من مسار القاعدة الموجوده في الجدول" & vbCrLf & "tbl_ReLink_To_Original" 'Resume Next Resume Exit_f_ReLink_To_Original Else MsgBox Err.Number & vbCrLf & Err.Description Resume Exit_f_ReLink_To_Original End If End Function . اما للمبرمج ، فيجب عليه ان يدخل الكود ويكتب (لاحظوا اننا استخدمنا الرقم Seq = 2 ، ليشير الى السجل الثاني في الجدول ، المشير الى مسار الـ BE حسب مجلدات الكمبيوتر عندنا (3) : من نافذة الكود السفلى: immediate ?f_ReLink_To_Original(2) او من اي حدث Call f_ReLink_To_Original(2) . واذا اردت الاستفادة من هذه الطريقة لبرامجك ، فيجب عليك استيراد هذه الكائنات الى برنامجك (مع الاخذ في الاعتبار تغيير اسم النموذج في ماكرو autoexec ) : جعفر Relink Tables.zip
    1 point
  11. السلام عليكم 🙂 رجاء مراجعة موضوع النسخة 2 من هنا : واجهة هذه النسخة: البرنامج يقوم بهذه الخطوات التي يوصي بها المحترفين (كما هو موضح في الصورة اعلاه) ، طريقة العمل: 1. اختار ملف اكسس ، 2. اذا الملف محمي بكلمة سر ، فيمكن كتابته في المربع المخصص ، حيث سيتم حفظه في ذاكرة الكمبيوتر ، والتي يجب عليك ان تدخلها يدويا للقيام بالخطوات 2 و 3 لمرة واحدة ، بينما البرنامج سيدخلها تلقائيا للخطوات التالية ، 3. يجب ان تمسك مفتاح الشفت ، ثم تضغط على زر Decompile ، ولا تترك الزر إلا لما ينتهي البرنامج من عمله ، عندما نرى الخطوات 8 و 9 🙂 هذه النسخة اسرع من النسخة السابقة ، وافضل 🙂 جعفر Decompile_3.zip
    1 point
  12. تفضل 🙂 1174.RemainFocus_OutsideForm.accdb
    1 point
  13. الحمدلله 🙂 الظاهر القلة من الاعضاء يعرف اهمية هذا البرنامج (وخصوصا بنسخته الاخيرة 🙂 ) فياريت ، وبدون امارة عليكم اخواني @kaser906 و @محمد سلامة و @سلمان الشهراني ان تعطونا بعض تجاربكم ، حتى يستفيد الجميع 🙂 جعفر
    1 point
  14. هذه طريقة اخرى Private Sub Command2_Click() 'Me.Child0.SetFocus Screen.PreviousControl.SetFocus End Sub جعفر
    1 point
  15. وعليكم السلام اخى الفاضل هل هذا ما تريد ؟ تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق New 1.accdb
    1 point
  16. السلام عليكم و رحمة الله و بركاته اخواني و اساتذتي رواد منتدانا الغالي كل عام و انتم و الامه الاسلاميه بخير و صحة و عافيه و عيدكم مبارك هديتي متواضعه كعلمي و ارجو من الله ان يكون بها فائدة لاخواني المبتدئين على وجه الخصوص برنامج المعاملات : يقوم بحفظ بيانات المعاملات و من ثم يتم تصنيف المعاملات الى 6 فئات 1: منجزة تحت الاجراء : لم تتجاوز الثلاثة ايام و ينطبق على الفئة الرابعة 2: منجزة متأخرة : ما بين 4 الى 10 ايام و ينطبق على الفئة الخامسة 3: منجزة متأخرة جداً : اكثر من 10 ايام و ينطيق على الفئة السادسة 4: غير منجزة تحت الاجراء : 5: غير منجزة متأخرة 6: غير منجزة متأخرة جداً - تدوين كامل بيانات المعاملة واضافة اكثر من مرفق للمعاملة الواحدة و تصفح المرفقات ( يتم فك الضغط عن الملف بالدرايف C و حفظ جميع صور المعاملات المراد استعراضها من البرنامج بالملف Photos و يمكن تغيير المسار بالدخول على الكود ) علماً بأن الصور فقط بالامتداد JPEG - هناك عملية متابعه يتم من خلالها عرض المعاملات الغير منجزة و عرض تقرير بها - تقرير يشتمل على رسوم بيانيه للاحصاء و المقارنة يوضح النسبة المئويه لعدد المعاملات المنجزة لجهة او اربعة جهات كحد اقصى كما يوجد احصاء لجميع المعاملات المنجزة و الغير منجزة ( تقريرين حسب نوع المقارنة ) - ارسال بريد الكتروني لجميع المعاملات التي لم تنجز في اكثر من 3 ايام و تدوين تاريخ و وقت ارسال الايميل تلقائي - التحكم في نص الرسالة و و عنوانها و الجهة المراد ارسال نسخة من البريد اليها - صلاحيات للمستخدمين تتكون من مستويين : 1: كامل الصلاحيات : و بتحديدها يتم الدخول على كامل البرنامج 2: صلاحية محدودة : وفيها فقط يتم استعراض السجلات و عمل الاحصائيات و المقارنات 3: تحديد كامل الصلاحية او الصلاحية المحدودة يتم من خلال مربع اختيار CheckBox 4: شاشة لمتابعة دخول و خروج المستخدمين ليتابعها المسئول مع ملاحظة بأن سجلات هذا الجدول ستكون في ازدياد بعدد مرات الدخول الى البرنامج و ينصح بشدة التخلص منها و حذفها في حالة عدم الحاجة اليها . البرنامج مفتوح و بدون الشفت او اخفاء الاكسس ايضاً ليتمكن اخواني المبتدئين من الاستفادة من الاكواد الموجودة فيه اسأل الله عز و جل التوفيق للجميع اخوكم : يوسف Documentation.rar
    1 point
  17. ربنا يوفقك ويعينك وييسرلك امرك انت وجميع المسلمين ان شاء الله
    1 point
  18. السلام عليكم ..... لدي نموذج listbuy يحتوي على نموذج فرعي المشكلة عندما اريد اضافة اسم الصنف في النموذج الفرعي قبل اسم المادة لايقبل وتظهر رسالة الخطاء كما في الصورة المرفقة لكن عند كتابة اسم المادة قبل الصنف لاتكون هناك مشكلة ارجو المساعدة تحياتي test1.accdb
    1 point
  19. حياك الله أخي @أحمد الفلاحجى اشغلتنا مشاغل الدنيا كنت قبل اسبوع اقدم برنامج تدريبية في جهة عملي عن إنشاء قواعد البيانات باستخدام برنامج اكسيس ودللتهم على هذا المنتدى المبارك ومشرفيه وخبراء المتميزين . والفترة القادمة سأحاول تعلم لغة #C بتقنية asp.net الله يسهل دعواتكم اشكر لك سؤالك
    1 point
  20. وعليكم السلام بارك الله فيك وجزاك الله كل خير منور اخى صالح @ابوآمنة تقبلوا تحياتى وتمنياتى لكم وللجميع بالتوفيق وعليكم السلام بارك الله فيك وجزاك الله كل خير منور اخى صالح @ابوآمنة تقبلوا تحياتى وتمنياتى لكم وللجميع بالتوفيق وعليكم السلام بارك الله فيك وجزاك الله كل خير منور اخى صالح @ابوآمنة تقبلوا تحياتى وتمنياتى لكم وللجميع بالتوفيق
    1 point
  21. تحيه وتقدير للقائمين على هذا الصرح الكبير لقد ادمنت هذا المنتدى يوميا وبفترات طويله لحبى للتعلم وهذا الصرح اصبح هو الخيار الاول لى شكرا لكم مع التمنى بالتقدم والازدهار
    1 point
  22. حياك الله 🙂 الكود الذي عندك يشتغل ، لما عندك سجلات ، ولكن في بداية السنه ، وحيث لا يوجد سجل ، اي الحقل no لا توجد له قيمة ، المعادلة ستعطيك نتيجة Null وبالتالي ستحصل على رسالة خطأ ، فلازم نعالج هذا الموضوع ، و أحد الطرق هي الدالة nz ، والتي نطلب منها استبدال Null بالرقم صفر ، فيعمل الكود بالطريقة الصحيحة 🙂 بدلا عن t2 = DMax("[no]", "hesab", j) + 1 استعمل t2 = nz(DMax("[no]", "hesab", j),0) + 1 جعفر
    1 point
  23. مشكور اخي تم الكود عمل بشكل صحيح
    1 point
  24. بارك الله فيك أخى الكريم ونوت المنتدى
    1 point
  25. وعليكم السلام 🙂 انا ما اعرف اسماء الحقول في الجدول ، لذلك يجب ان تغير اسمائها في الكود 🙂 الموجود عندك j = "Year(datee) = " & Year(Me.datee) t2 = DMax("[no]", "hesab", j) + 1 اضف السطر الثاني j = "Year(datee) = " & Year(Me.datee) j = j & " And [Sanad]='" & Me.t1 & "'" t2 = DMax("[no]", "hesab", j) + 1 غير [Sanad] الى اسمه الصحيح في الجدول ، وغير Me.t1 الى اسمه الصحيح في النموذج 🙂 جعفر
    1 point
  26. عندما اقوم بادخال بيانات مثل خصم علي الفاتورة واذهب لطباعة الفاتورة من تقرير لايعطيني صافي الفاتورة الا عندما اقوم بعمل refresh All من قائمة home كما هو موضح في الصورة اريد كود بديل لزر refresh all
    1 point
  27. جرب هذا الملف My_Book10.xlsx
    1 point
  28. الاخول الكرام عندي في المرفق مجلد فيه ملفات اكسيل وملف اخر رئيسي والكل مخزن بسطح المكتب في الملف الرئيسي كود للاستاذ المحترم عماد غازي اريد فضلا تعديل الكود لاستدعاء اسماء الملفات كما موضح في الشرح بالمرفق تحياتي Desktop.rar
    1 point
  29. مع انك لم ترفق ملفاً للمعاينة جرب هذا الملف Wajba.xlsx
    1 point
  30. حياكم الله 🙂 لما انتهي من برنامج ، او عمل تعديل على برنامج ، وقبل ان ارسله الى الزبون ، فاقوم بتمريره عبر هذا البرنامج ، والذي يضمن لي ان البرنامج اصبح في كامل لياقته ، وهذه العملية إجبارية لي ، وليست اختيارية 🙂 جعفر
    1 point
  31. شكراً استاذ محسن و لي انا بهذا الشأن هذا الماكرو (عسى ان ينال الإعجاب) Option Explicit Sub S_H_Test_NEW() Dim D As Worksheet: Set D = Sheets("Data") Dim M As Worksheet: Set M = Sheets("المطلوب") Dim ARR(): ARR = Array("S", "G", "C", "H") Dim Obj As Object, i%, Chek%, t% Set Obj = CreateObject("Scripting.Dictionary") M.Range("K2").CurrentRegion.ClearContents i = 2 Do Until D.Range("F" & i) = vbNullString For t = 1 To 4 Chek = Chek + (UCase(M.Cells(2, t)) = _ UCase(D.Cells(i, ARR(t - 1)))) Next If Chek = -4 Then _ Obj.Add i, D.Cells(i, "F") i = i + 1: Chek = 0 Loop If Obj.Count Then _ M.Cells(2, "k").Resize(Obj.Count) = _ Application.Transpose(Obj.items) Set Obj = Nothing: Set D = Nothing: Set M = Nothing Erase ARR End Sub الملف من جديد MY_search_MD_SH.xlsm
    1 point
  32. المنتدى مليئ بشريط للتحميل مثلا انظر .....
    1 point
  33. اخى الفاضل استخدم واخبرنا بالنتيجه nz([text]);0) او ارفق مثال تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق
    1 point
  34. تم التعديل على الملف ليعمل كما تريد لا حاجة لادراج الترقيم (اكسل يفعلها أوتوماتيكياً) يمكنك التحرك داخل الشيت حتى ولو كان اليوزر ظاهراً Sort_Please.xlsm
    1 point
  35. السلام عليكم اخى الفاضل تفضل الملف بعد التعديل ارجو ان يفيد و يفى بالغرض مطلوب النقل.xlsm
    1 point
  36. السلام عليكم معكم ساجدة العزاوي من العراق اول مشاركة لي في المنتدى فديو مميز سهل رائع لاقى صدى واسع ينفع للكل للمدارس لدوائر الدولة للقطاع الخاص فديو عملته بـ 8 اجزاء ولما شفت كثيرين استفادوا منه عملت فديوين بعنوان في الاكسل متعة وسعادة وفرح فاصبح 10 اجزاء وساكمله باجزاء اخرى ... لانه رائع ومميز وسريع هناك من يريد تنسيبه لنفسه اترككم مع الفديو بحث بالاسم في TEXTBOX فيتم الفلترة الى LISTBOX وثم الى TEXTBOXES اكسل ساجدة العزاوي
    1 point
  37. كيف يمكن تعبئة جدول مرتيب ابجديا فقط من خلال الكتابة في الصف رقم 2 للمزيد انظر الى هذا الملف WRITE_JUST IN ROW_2.xlsm
    1 point
  38. ربما يكون المطلوب Sub creatB() Dim OBJECTfso Dim OBJECTfolder Dim OBJECTfils Dim ws As Worksheet Set ws = ActiveSheet ws.Range("a2:a100").ClearContents Set OBJECTfso = CreateObject("scripting.filesystemobject") Set OBJECTfolder = OBJECTfso.getfolder("C:\Users\pc\Desktop\med") ws.Cells(1, "a").Value = "the file founf in " & OBJECTfolder.Name & "Are" For Each OBJECTfils In OBJECTfolder.Files ws.Range("a" & Rows.Count).End(xlUp).Offset(1) = OBJECTfils.Name 1: Next Set OBJECTfolder = Nothing Set OBJECTfils = Nothing Set OBJECTfso = Nothing End Sub
    1 point
  39. هل هذه النتيجة مرضية ؟ التصدير الى ملف اكسل معد مسبقا.rar
    1 point
  40. العفو العفو اخي الكريم عامر ... لو وزعت هذه الكلمات علي اعضاء المنتدى لكفتهم .. بارك الله فيك
    1 point
×
×
  • اضف...

Important Information