اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

  1. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      17

    • Posts

      11641


  2. kanory

    kanory

    الخبراء


    • نقاط

      11

    • Posts

      2317


  3. Moosak

    Moosak

    أوفيسنا


    • نقاط

      7

    • Posts

      2206


  4. أبو آدم

    أبو آدم

    أوفيسنا


    • نقاط

      6

    • Posts

      3292


Popular Content

Showing content with the highest reputation on 08/24/22 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. أكثر ما أكرهه في البرمجة هو تكديس الأكواد للوصول إلى أقصر كود. من الحالات التي مرت علي أذكر منها حالتين: الأولى صاحبها يستخدم الفاصلة بين الأسطر ":" ولا يستخدم أسطر فارغة بين الدوال ليخرج ويعلن أن كوده هو الأفضل لأنه الأقصر!! والأخرى صاحبها يستخدم نتائج بعد تحضيرها منفصلة خارج الكود الأصل ، ثم يستخدمها كثوابت ويستخدم أسطر بيانات تصل طول السطر فيها إلى ما يقارب الألف حرف ليعلن أن كوده هو الأقصر والأسرع. ملاحظة أخرى عملية السرعة ليست مطلوبة في كل الأوقات ، نحتاجها أكثر في العمل الذي به حسابات كثيرة ومتكررة وهذا نادر جدا ، أما لو كانت عملية تحويلات لملف بيانات قديمة ولمرة واحدة مثلا فلا داعي للإنشغال بالسرعة والإختصار فالكود سوف يستخدم مرة أو مرتين ثم يهمل/يترك/يرمى لانتهاء الحاجة له. حركتوا مشاعري المدفونة.
    1 point
  16. وعليكم السلام 🙂 1. خلينا نشوف اللي يشوفه الكمبيوتر ، استعمل هذا الكود ، خليه يشتغل ، وشوف النتائج في النافذة اسفل شاشة الكود (ثم الصقها في المنتدى علشان نشوف اذا في شيء منها غلط) : Private Sub Command_Click() Dim FileName As String Dim FilePath As String Dim FilePath1 As String FileName = Me.[bankcode] & Right(Year(Date), 2) & "0" & Month(Date) & Day(Date) & "100000" FilePath = Me.[FPath] & FileName & ".txt" FilePath1 = Me.[FPath] & FileName & ".PDF" debug.print Me.[bankcode] debug.print Right(Year(Date), 2) debug.print Month(Date) debug.print Day(Date) debug.print Me.[FPath] debug.print FilePath debug.print FilePath1 DoCmd.OutputTo acOutputReport, "word", acFormatPDF, FilePath1 DoCmd.OutputTo acOutputReport, "empdataa", acFormatTXT, FilePath MsgBox "Done" & " " & Me.FPath, vbInformation, "alert massege" End Sub . كذلك مو على العادة تسمية الزر باسم command ، عادة يكون command1 او command2 او ... ، فالظاهر اسم الزر خطأ في الكود ، لذا فالافضل عمل زر جديد ، ولصق الكود فيه ، ثم التجربة 🙂 جعفر
    1 point
  17. استخدم الكود الاتى 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
  18. 1 point
  19. طيب .. هناك بعض الأمور غير موضحة لا في السؤال ولا في المرفق .. 1- لمن سترسل الرسالة ؟ ( أين ستضع إيميل من سترسل له ؟) 2- أين يوجد المرفق ؟ هل سينشئه البرنامج ثم يرسله ؟ أم أنه مرفق ثابت فقط ستضع مسار الملف في الكود ؟ 3 - هل تريد البرنامج أن يرسل تقارير جميع الطلاب ؟ أم الطالب الحالي فقط ؟ ( لأنك وضعت حلقة تمر على جميع الطلاب في الكود ) 4 - تريد أن يفتح الآوتلوك ويقف وأنت ستضغط زر الإرسال ؟ أم يرسلها تلقائيا نيابة عنك ؟ هذه البيانات مهمة لكتابة الكود 🙂
    1 point
  20. بما أن الأستاذ خالد قام بإحياء هذا الموضوع من جديد أحببت أن أدلو بدلوي 😁 هذه طريقتي لفصل الأرقام من النص .. والعكس نزع الحروف من بين الأرقام .. أولا : استخراج الأرقام من النص وحذف الحروف : Public Function ExtractNumbersFromText(strText As String) Dim x As Long Dim L As String Dim r As String For x = 1 To Len(strText) L = Mid(strText, x, 1) If IsNumeric(L) Then r = r & L End If Next x ExtractNumbersFromText = r End Function ثانيا : اسخراج الحروف وحذف الأرقام : Public Function RemoveNumbersFromText(strText As String) Dim x As Long Dim L As String Dim r As String For x = 1 To Len(strText) L = Mid(strText, x, 1) If Not IsNumeric(L) Then r = r & L End If Next x RemoveNumbersFromText = r End Function abc.rar
    1 point
  21. لاحظت شي 🙂 DoCmd.RunSQL "DELETE sanduk.yat , sanduk.DAT , sanduk.SAH FROM sanduk WHERE " & myCriteria & ";"
    1 point
  22. وعليكم السلام 🙂 هذا مثال: وهذا محاولة للتطبيق على مثالك (يجب مراعاة نوع الحقل: نص ، رقم ، او تاريخ) : 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
  23. تأكد من انواع الحقول وتنسيق كتابتها : نص او رقم او تاريخ ....
    1 point
  24. جرب المرفق ......... بحث احترافي.accdb
    1 point
  25. جرب المرفق هناك معادلة في العمود m من m3:m انسخها الى الاسفل حسب عدد البيانات ولا تعدل في الخلية m2 اتركها بون معادلة الرجاء المساعده (1).xlsm
    1 point
  26. 1 point
  27. وعليكم السلام -يمكنك ذلك بجعل التنسيق هكذا [$-,2000000]0.00_);[Red](0.00) TEST1.xlsx
    1 point
  28. اتفضل اسف كنت مستعجل ولم انتبه لتلك النقطة جدول البرامج-v3.accdb
    1 point
  29. و جرب هذي الطريقة منع الحاق سجل تم الحاقه سابقة له نفس التاريخ.zip
    1 point
  30. أخى أحمد تأكد من الفورم جيدا فهو يعمل معى وسأرسل لك صورة دليل على أنه يعمل ويفبل ادخال الصفر ..بارك الله فيك وجزيت خيرا
    1 point
  31. لقد تم الرد من قبل الأستاذ سليم فى مشاركة أخرى ولكم جزيل الشكر
    1 point
  32. تغضل اخى هذا من أعمال وإبداعات أستاذنا الكبير زيزو العجوز له منا كل المحبة والفخر والإعتزاز والإحترام جزاه الله كل خير وجعله فى ميزان حسناته وجعله الله دائما وابدا زخرا وعطاء لنا المطلوب اظافة شرط , عدم تجاوز درجة الطالب للدرجة الكبرى للمادة-فى الفورم.xls
    1 point
  33. أنا بصراحة عندى الإكسيل 2007 وهى تعمل عندى بكل بساطة -فلا يوجد عندى 2010 كى اجربها لك ولكن لا أعتقد أنها لا تعمل عليه فانها معادلة بسيطة من if ممكن تحاول تستخدم معادلة الأستاذ سليم
    1 point
  34. تفضل هذا الملف ولكن لابد أن تقوم يتغيير أسماء الصفحات الى أسماء الموظفين لديك بشكل مساوى لما هو وارد بجهاز البصمة فبناءاً عليه يكون الترحيل من الصفحة الرئيسية الى كل موظف على حده كود ترحيل بدون تكرار من صفحة إلى عدة صفحات.xlsm
    1 point
  35. تفضل أخى شرح المعادلة يارب يكون كافى وواضح : Book1.xlsx
    1 point
  36. وعليكم السلام أخى مرحبا بك فى منتدانا الكريم لو إفترضنا ان الرقم المستخدم فى المعادلة موجود فى الخلية B1 فالمعادلة كالتالى : IF((B1*28/100)>100,100,(B1*28/100))= بارك الله فيك
    1 point
  37. 1 point
  38. مع فائق تقديري لهذا الجهد المبارك أتمنى من الأستاذ آدم أن يضع عناوين لهذه الكشاكيل في المشاركة الأولى ويربطها بمواضعها حتى تساعدنا في الوصول إلى المعلومة دون الحاجة إلى قراءة كافة المشاركات
    1 point
  39. اجعل الأسطر المتكررة في وظيفة إذا رأيت أن هناك أسطرا مكررة في الأكواد التي تكتبها فقم بتحويلها إلى وظيفة وذلك لأن الكود الذي يتكرر مرة واحدة أسهل في صيانته واختباره واستخدامه والتعديل عليه ، بخلاف الكود الذي يتكرر مرات عديدة. ولتوضيح هذا نفرض أن لديك أسطر خمسة من كود تكررت في برنامجك عشرين مرة ، ثم رغبت في التعديل عليها أو اكتشفت أن فيها خطأ ، حينئذ يلزمك أن تقوم بالتعديل عليها في 20 موضعا ، وربما تنسى بعض المواضع أو تخطئ فيها فينتج عن هذا عدد من الأخطاء الأخرى. أما إذا كنت استخدمت وظيفة كتبت فيها هذه الأسطر الخمسة وقمت باستدعائها في العشرين موضعا ، فسيكون كل ما عليك هو التعديل في هذه الوظيفة
    1 point
  40. إخوتي الفضلاء طبعاً يتعذر في مثل هذه المواضيع قبول المشاركات ... لا تقليلاً لاسمح الله من أهميتها ولكن منعاً لتضخم الموضوع ومشاركاته ، وما يتبع ذلك من جهد تنقيح المشاركات للقادمين من بعدنا. ولكنني التمس من اخوتي المساهمة بالتعبير عن إستفادتهم من الموضوع ومشاركاته وأجزائه المتلاحقة بإذن الله . وذلك بالضغط على زر التقدير في أسفل يسار المشاركة التي يكون قد استفاد منها أو أعجبته أو إستخدم ما تحوى وشكرا للجميع تقديركم وتشجيعكم لي للمتابعة ....
    1 point
  41. نطاق السنوات ... 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
  42. بناء الجمل ومحددات الصيغ ......... 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
  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