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

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

  1. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      17

    • Posts

      11,630


  2. kanory

    kanory

    الخبراء


    • نقاط

      11

    • Posts

      2,256


  3. Moosak

    Moosak

    أوفيسنا


    • نقاط

      7

    • Posts

      1,997


  4. أبو آدم

    أبو آدم

    أوفيسنا


    • نقاط

      6

    • Posts

      3,292


Popular Content

Showing content with the highest reputation on 24 أغس, 2022 in all areas

  1. هل هذا ما تريد مرفق الشكل النهائى try1.rar
    5 points
  2. تفضل هذا كود تكرار السجل : 🙂 Private Sub DublicateRecBtn_Click() On Error GoTo Err_DublicateRecBtn_Click DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.RunCommand acCmdRecordsGoToNew DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdPaste Exit_DublicateRecBtn_Click: Exit Sub Err_DublicateRecBtn_Click: MsgBox Err.Description Resume Exit_DublicateRecBtn_Click End Sub
    4 points
  3. طريقة اخرى على قد حالي طبعا حسب طلب الاستاذ يونس نسخ الحقول ماعدا حقل التفاصيل وانا استثنيت حقل id لانه ترقيم تلقائي وحقل التاريخ يكون تاريخ تكرار السجل ويمكن اعادته للمصفوفة ليكون a(5) ممكن نعمل مصفوفة نحمل فيها فقط الحقول المطلوب تكرارها If Me.NewRecord Then Exit Sub Dim x As Variant Dim a As Variant x = ([NSSA] & "|" & [NSSB] & "|" & [NSSC] & "|" & [RQMA] & "|" & [NSSE]) DoCmd.GoToRecord , , acNewRec a = Split(x, "|") [NSSA] = a(0) [NSSB] = a(1) [NSSC] = a(2) [RQMA] = a(3) [NSSE] = a(4) [TAREKA] = Date DoCmd.GoToControl "RQMB" وممكن نستغني عن المصفوفة باستخدام حلقة تكرارية تمر على الحقول وتستثني حقل الملاحظات والترقيم التلقائي ثم تكرر الحقول غير المستثناه وهنا لا داعي لكتابة اسماء الحقول ولكني ساكتفي بهذه المشاركة --------------------------------------------------- رجاء خاص من لم تعجبه المشاركة فليقل خيرا او يصمت لا تكرهونا في موقع اصبح متنفسنا الوحيد ملاحظة انا مبرمج متقاعد من عدة سنوات وتعاملي مع اكسس قليل جدا واغلب معلوماتي قديمة منذ نظام التشغيل dos واعترف بان اغلب المشاركين يفوقوني علما ومعرفة فخذ ما يعجبك او اترك
    2 points
  4. اخي الكريم الاجابة غير موفقة ، ومما تعلمنا ان فهم السؤال نصف الإجابة السائل يريد نسخ سجل كامل بجميع حقوله ولصقه في سجل جديد وقد اجاب الاخ موسى قبلك واجاد القائمن على المنتدى يهمهم ان تكون المشاركات مفيدة تعالج الفكرة نفسها ... ويطبقون المثل : ما قل ودل
    2 points
  5. السلام عليكم مشاركه مع اخى @عمر ضاحى فى حدث فالحالى للنموذج الفرعى Private Sub Form_Current() If Not Me.NewRecord Then Me.AllowEdits = False End Sub بالتوفيق try1.accdb
    2 points
  6. مع اعادة تنسيق للمطلوب النوع + تفاصيل النوع.xlsx
    2 points
  7. السلام عليكم 🙂 اي شيء يُكتب بعد الامر DoCmd.Quit مثل (acQuitPrompt او acQuitSaveAll او acQuitSaveNone) هو لحفظ التغيير في تصميم النموذج/قاعدة البيانات ، وليس لحفظ السجل 🙂 فالامر DoCmd.Quit يكون كافيا 🙂 ولكن هناك ملاحظة في مساعد الاكسس: فإذن الامر الاصح للخروج من البرنامج هو : Application.Quit جعفر
    2 points
  8. انت تريدها في استعلام ام قائمة منسدلة ..... لأن مثالك الاخير لايوحي بذلك ؟؟؟؟؟؟؟ هل تريدها في الاستعلام هكذا ؟؟؟؟؟؟
    2 points
  9. السلام عليكم ورحمة الله من تبويب Formula اختر Calculation Option ثم Automatic و ينتهى الامر
    1 point
  10. وعليكم السلام ورحمة الله تعالى وبركاته تفضل اخي بعد تحميل الملف المضغوط سوف تجد مجلد باسم DATA C قم بنسخه الى القرص ثم افتح ملف سجل القيد وقم باستدعاء البيانات عادي الكود المستخدم Sub MH_data() Application.ScreenUpdating = False Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("C:\DATA\Sheet1.xlsx") sourceworkbook.Worksheets("Sheet1").Range("a2:d500").Copy currentworkbook.Activate currentworkbook.Worksheets("Sheet1").Activate lastcell = Cells(Rows.Count, 2).End(xlUp).Row + 1 currentworkbook.Worksheets("Sheet1").Cells(lastcell, 2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False sourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet1").Activate Worksheets("Sheet1").Range("A4").Select Application.ScreenUpdating = True End Sub ملاحظة: يمكنك تغيير مسار الملف من هنا في حالة عدم توفر جهازك على قرص باسم C Set sourceworkbook = Workbooks.Open("C:\DATA\Sheet1.xlsx") سجل القيد_MH.rar
    1 point
  11. السؤال واضح وضوح الشمس في النهار اسمح لي اخوي لوكان ردي يزعلك : ردك اعلاه ما فهمت منه شي ، هل انت عربي ؟؟ اذا انت لست عربيا عذرناك
    1 point
  12. جرب حسب فهمي للموضوع .. delete_t.accdb
    1 point
  13. انتبه من فضلك فعليك استخدام خاصية البحث بالمنتدى ,فطلبك تكرر كثير جداً وشوف بنفسك https://www.officena.net/ib/search/?q=متفرقة&quick=1&type=forums_topic&nodes=135
    1 point
  14. أكثر ما أكرهه في البرمجة هو تكديس الأكواد للوصول إلى أقصر كود. من الحالات التي مرت علي أذكر منها حالتين: الأولى صاحبها يستخدم الفاصلة بين الأسطر ":" ولا يستخدم أسطر فارغة بين الدوال ليخرج ويعلن أن كوده هو الأفضل لأنه الأقصر!! والأخرى صاحبها يستخدم نتائج بعد تحضيرها منفصلة خارج الكود الأصل ، ثم يستخدمها كثوابت ويستخدم أسطر بيانات تصل طول السطر فيها إلى ما يقارب الألف حرف ليعلن أن كوده هو الأقصر والأسرع. ملاحظة أخرى عملية السرعة ليست مطلوبة في كل الأوقات ، نحتاجها أكثر في العمل الذي به حسابات كثيرة ومتكررة وهذا نادر جدا ، أما لو كانت عملية تحويلات لملف بيانات قديمة ولمرة واحدة مثلا فلا داعي للإنشغال بالسرعة والإختصار فالكود سوف يستخدم مرة أو مرتين ثم يهمل/يترك/يرمى لانتهاء الحاجة له. حركتوا مشاعري المدفونة.
    1 point
  15. استخدم الكود الاتى Private Sub Form_Close() On Error GoTo QuitApp_Err DoCmd.Quit acSave QuitApp_Exit: Exit Sub QuitApp_Err: MsgBox Error$ Resume QuitApp_Exit End Sub
    1 point
  16. 1 point
  17. لاحظت شي 🙂 DoCmd.RunSQL "DELETE sanduk.yat , sanduk.DAT , sanduk.SAH FROM sanduk WHERE " & myCriteria & ";"
    1 point
  18. وعليكم السلام 🙂 هذا مثال: وهذا محاولة للتطبيق على مثالك (يجب مراعاة نوع الحقل: نص ، رقم ، او تاريخ) : dim myCriteria as string 'امثلة ' myCriteria = "[detach]='Male'" 'نص ' myCriteria = myCriteria & " [ID]=12" 'رقم ' myCriteria = myCriteria & " [iDate]=#29-05-2015#" 'تاريخ myCriteria = "sanduk.yat= " & FORMS!edaa1![ser] myCriteria = myCriteria & " AND" myCriteria = myCriteria & " sanduk.daf= " & forms!edaa1![daf] myCriteria = myCriteria & " AND" myCriteria = myCriteria & " sanduk.dat= #" & forms!edaa1![dat] & "#" DoCmd.RunSQL "DELETE sanduk.yat , sanduk.DAT , sanduk.SAH FROM sanduk WHERE " & myCriteria . جعفر
    1 point
  19. تأكد من انواع الحقول وتنسيق كتابتها : نص او رقم او تاريخ ....
    1 point
  20. جرب المرفق ......... بحث احترافي.accdb
    1 point
  21. 1 point
  22. وعليكم السلام -يمكنك ذلك بجعل التنسيق هكذا [$-,2000000]0.00_);[Red](0.00) TEST1.xlsx
    1 point
  23. اتفضل اسف كنت مستعجل ولم انتبه لتلك النقطة جدول البرامج-v3.accdb
    1 point
  24. و جرب هذي الطريقة منع الحاق سجل تم الحاقه سابقة له نفس التاريخ.zip
    1 point
  25. 😅 اوك .. انظر لهذا الكود فى حدث On Time Private Sub Form_Timer() Dim x, x1, dx As Integer x = DCount("*", "جدول2") Debug.Print x If Time = TimeValue("14:22:00") Then DoCmd.SetWarnings False DoCmd.OpenQuery "الحاق_من_ج1_الى_ج2" DoCmd.SetWarnings True x1 = DCount("*", "جدول2") Debug.Print x1 dx = x1 - x Debug.Print dx If dx >= 0 Then MsgBox ("تم اضافة عدد " & dx & " سجل ") End If End Sub اذا اتى الوقت المكتوب فى الشرط سيتم تشغيل استعلام الالحاق وظهور رسالة تبين عدد السجلات التى تم الحاقها وبهذه الطريقة ستعرف اذا نجحت العملية ام لا (هذه الفكرة التى اتتنى بخصوص طلبك اكيد فيه طريقة اخرى اذا لم يعجبك الحل ) ملاحظة : طبعا الكود لازم يتم وضعه فى نموذج مفتوح دائما وليكن شاشتك الرئيسية .. مرفق القاعدة .. بالتوفيق 1053855661_AppendOneTime-Amrv2.0.accdb
    1 point
  26. أخى أحمد تأكد من الفورم جيدا فهو يعمل معى وسأرسل لك صورة دليل على أنه يعمل ويفبل ادخال الصفر ..بارك الله فيك وجزيت خيرا
    1 point
  27. لقد تم الرد من قبل الأستاذ سليم فى مشاركة أخرى ولكم جزيل الشكر
    1 point
  28. تغضل اخى هذا من أعمال وإبداعات أستاذنا الكبير زيزو العجوز له منا كل المحبة والفخر والإعتزاز والإحترام جزاه الله كل خير وجعله فى ميزان حسناته وجعله الله دائما وابدا زخرا وعطاء لنا المطلوب اظافة شرط , عدم تجاوز درجة الطالب للدرجة الكبرى للمادة-فى الفورم.xls
    1 point
  29. ممكن تجرب هذا الشيت Reminder HaNcOcK-تذكير بأستحقاق الشيكات.xls وهذا الملف نظرا لكبر حجمه فقد رفعته على موقع خارجى ربما أيضا يفيدك https://up.top4top.net/downloadf-8040f5381-rar.html
    1 point
  30. أنا بصراحة عندى الإكسيل 2007 وهى تعمل عندى بكل بساطة -فلا يوجد عندى 2010 كى اجربها لك ولكن لا أعتقد أنها لا تعمل عليه فانها معادلة بسيطة من if ممكن تحاول تستخدم معادلة الأستاذ سليم
    1 point
  31. السلام عليكم معلش إتاخرت عليك رجاءا أن تترك رقم الصفحات بالترتيب يبدأ بأى رقم تريده بعد رقم 1 والترتيب بعد ذلك يكون متسلسل ولكم منى جزيل الشكر ترحيل.xlsm
    1 point
  32. طبعا ممكن بس غير اسم الصفحة برقم الموظف وفعلا قابل للزيادة كل ماتحتاج تفتح صفحة جديدة قم بفتحها وسميها برقم الموظف والكود بالفعل سيعمل
    1 point
  33. تفضل هذا الملف ولكن لابد أن تقوم يتغيير أسماء الصفحات الى أسماء الموظفين لديك بشكل مساوى لما هو وارد بجهاز البصمة فبناءاً عليه يكون الترحيل من الصفحة الرئيسية الى كل موظف على حده كود ترحيل بدون تكرار من صفحة إلى عدة صفحات.xlsm
    1 point
  34. تفضل أخى شرح المعادلة يارب يكون كافى وواضح : Book1.xlsx
    1 point
  35. وعليكم السلام أخى مرحبا بك فى منتدانا الكريم لو إفترضنا ان الرقم المستخدم فى المعادلة موجود فى الخلية B1 فالمعادلة كالتالى : IF((B1*28/100)>100,100,(B1*28/100))= بارك الله فيك
    1 point
  36. 1 point
  37. مع فائق تقديري لهذا الجهد المبارك أتمنى من الأستاذ آدم أن يضع عناوين لهذه الكشاكيل في المشاركة الأولى ويربطها بمواضعها حتى تساعدنا في الوصول إلى المعلومة دون الحاجة إلى قراءة كافة المشاركات
    1 point
  38. اجعل الأسطر المتكررة في وظيفة إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود الذي يتكرر مرات عديدة. ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل عليها أو اكتشفت أن فيها خطأ ، حينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى. أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون كل ما عليك هو التعديل في هذه الوظيفة
    1 point
  39. إخوتي الفضلاء طبعاً يتعذر في مثل هذه المواضيع قبول المشاركات ... لا تقليلاً لاسمح الله من أهميتها ولكن منعاً لتضخم الموضوع ومشاركاته ، وما يتبع ذلك من جهد تنقيح المشاركات للقادمين من بعدنا. ولكنني التمس من اخوتي المساهمة بالتعبير عن إستفادتهم من الموضوع ومشاركاته وأجزائه المتلاحقة بإذن الله . وذلك بالضغط على زر التقدير في أسفل يسار المشاركة التي يكون قد استفاد منها أو أعجبته أو إستخدم ما تحوى وشكرا للجميع تقديركم وتشجيعكم لي للمتابعة ....
    1 point
  40. نطاق السنوات ... Year Loop نحتاج قائمة تحرير وسرد توفر لنا في صفوفها لإختيار السنوات عشرٌ مرت وعشرٌ قادمات ، بحيث لا يكون مصدر الصف جدول أو قائمة قيم ، بحيث تكون متغيرة عبر السنوات بدون أن نضطر لتغييرها وتعديلها ، مستندة للسنة الحالية !! كل ما عليك فعله : إنشاء وحدة نمطية جديدة ولصق الكود التالي بها ، ومن ثم حفظها ... Function YearLoop() As String Dim YearHold As Date Dim strSQL As String Dim i As Integer Dim n As Integer n = 10 strSQL = "" For i = -10 To n YearHold = DateSerial(Year(Date) + i, 1, 1) strSQL = strSQL & Format(YearHold, "yyyy") & "; " Next i YearLoop = strSQL End Function وفي حدث عند الفتح للنموذج نضع الكود لتكون نتائج الوحدة النمطية مصدر الصف لقائمة التحرير والسرد Text7 Private Sub Form_Load() Me.Text7.RowSource = YearLoop() End Sub وحين نفتح النموذج يكون أمامك عشر سنوات سابقة بالاضافة للسنة الحالية وعشر سنوات قادمات ......... للإختيار منها
    1 point
  41. بناء الجمل ومحددات الصيغ ......... The syntax & delimiters عند كتابة معايير لقيمة منطقية (صواب/خطأ)، أرقام، السلاسل، والتواريخ، يتطلب بناء الجملة محددات للسلاسل (الجمل) والتواريخ. ويكون بناء الجملة في حالاتها كما يلي : للقيم المنطقية والارقام لا نستخدم شيئا مميزا >> Boolean & numbers x = DLookUp("[MyField]", "MyTable", "[OtherField] = " & Me.txtTextbox سلاسل استخدام صيغ (أو "علامات الاقتباس المفردة"). >> Strings x = DLookUp("[MyField]", "MyTable", "[OtherField] = '" & Me.txtTextbox & "'" وللتاريخ تستخدم الصيغة الخاصة بها مع علامة المربع المشهورة. >> Dates x = DLookUp("[MyField]", "MyTable", "[OtherField] = #" & Me.txtTextbox & "#"
    1 point
  42. إسدال مربع التحرير والسرد .... combo box drop down في النموذج الخاص بادخال البيانات وعند الوصول لمربع التحرير والسرد نحتاج احيانا ان تنسدل محتويات المربع فورا دون الضغط على مؤشر المربع... !! لمحة جمالية واحترافية وملفتة لنظر المستخدم. استخدم الكود التالي : Private Sub cboName_GotFocus() Me!cboName.DropDown End Sub قضي الأمر ....... ...........
    1 point
  43. حذف السجلات Deleting Records ويروق لي أن اسمي هذا الموضوع بالحذف الحقيقي و الحذف الافتراضي. في غالب التطبيقات نجد من الضرورة ، أن نضيف في مكان ما من نماذجنا وحسب الحاجة زر أمر نقوم من خلاله بحذف السجلات التي نظن أنها لا تلزمنا أو لسبب ما لا بد من حذفها من قاعدة بياناتنا. ولسبب ما ( مرتبط بالتجربة الطويلة ولأسباب علمية وعملية) ينصح أهل الخبرة في قواعد البيانات ومن يعتبرون من المطورين المعول على كلامهم وتجربتهم ، أن عملية الحذف الحقيقي عملية مؤلمة ومكلفة في آن واحد ، فحين تقرر حذف سجل معين فإنك تقرر الاستغناء عن جزء من المنظومة المعلوماتية التي مرت على هذه القاعدة ، وبالتالي خسارتها للأبد ، ويزيد الامر تعقيدا حين نتعامل مع عملية الحذف المقترن بجداول مرتبطة ، نخسر فيها أطرافا متعددة من العناصر المعلوماتية. وهنا سأورد الرأي بتصرف مضيفا بعضا من خبرتي المتواضعة، فينتهي القول الى: بديل مناسب لعملية الحذف الحقيقي ، وتتمثل ببساطة بإضافة الحقول التالية للجداول الرئيسية التي ستتعرض لعمليات الحذف (الافتراضي ) وهي حقل نعم/لا ، وحقل تاريخ وحقل نصي ، وتتلخص العملية بأن تكون هذه الحقول الثلاثة هي محور الحذف الافتراضي ، فحين نقرر عدم حاجتنا للسجل ، ما علينا الا ان نغير قيمة (لا) الافتراضية في الحقل الاول الى (نعم) ، ونضيف عبر الكود التاريخ الى الحقل الثاني Now و اسم المستخدم للحقل الثالث. هنا طبعا يفترض اننا سنقوم بالاجمال باسناد مصادر السجلات في جميع نماذجنا ونبني استعلاماتنا على اساس افتراضي تكون فيه القيمة للحقل الاول هي (لا) حتى نتجنب السجلات المحذوفة افتراضيا. هذه العملية البسيطة قد لا تجدها مجدية او ذات اهمية وتتحمس للحذف الحقيقي ، ولكن : حين تتعرض لخسارة سجلات مهمة حذفت من قبلك عن طريق الخطأ او عن طريق اي مستخدم حين تمر السنوات على تطبيقك وياتي يوم تحتاج فيه لاحصاءات ومقارنات وتحليلات وتقارير تتعلق بتاريخ قاعدة البيانات ، سواء لحاجاتك انت او بطلب من ادارتك او عميلك ستتعرف لأهمية هذا الروتين البسيط. فحين تتعرض لطلبات لا يقوى عليها صاحب الحذف الحقيقي ، ستكون اجابتك (ممكن ... فكل شيئ متاح) اما البديل الخاص بالحذف الحقيقي ان صممت عليه فهو الكود: If Msgbox ("You are about to delete data, do you want to continue?", vbYesNo + vbCritical,"Confirm Delete") = vbYes Then CurrentDb.Execute "DELETE MyID FROM MyTable WHERE MyID = " & Me.MyIDControl, dbFailOnError End If مع ضرورة التنبيه قبل اجراء عملية الحذف لأنه .... حقيقي....!!! ..............
    1 point
×
×
  • اضف...

Important Information