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

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

  1. kanory

    kanory

    الخبراء


    • نقاط

      29

    • Posts

      2313


  2. أ / محمد صالح

    أ / محمد صالح

    أوفيسنا


    • نقاط

      17

    • Posts

      4474


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      8

    • Posts

      12901


  4. د.كاف يار

    د.كاف يار

    الخبراء


    • نقاط

      7

    • Posts

      1681


Popular Content

Showing content with the highest reputation on 07/16/21 in all areas

  1. جرب هذا الكود .... On Error Resume Next Me.Refresh Dim i i = Me.IDED If MsgBox("هل تريد إرجاع جهاز وطباعة الإستمارة؟", _ vbCritical + vbYesNo, _ "") = vbNo Then Exit Sub Else DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO EMPDEV_ARCHIVES ( IDED, IDE, IDD, DATEG, STATUS, SystemS, NOTES2, DATER, RECEIPT, NOTES, IDD1, IDD2, Choix ) " & _ " SELECT EMPDEV.IDED, EMPDEV.IDE, EMPDEV.IDD, EMPDEV.DATEG, EMPDEV.STATUS, EMPDEV.SystemS, EMPDEV.NOTES2, EMPDEV.DATER, EMPDEV.RECEIPT, EMPDEV.NOTES, EMPDEV.IDD1, EMPDEV.IDD2, EMPDEV.Choix " & _ " FROM EMPDEV " & _ " WHERE (((EMPDEV.Choix)=True));" DoCmd.RunSQL "DELETE EMPDEV.Choix, EMPDEV.* " & _ " FROM EMPDEV " & _ " WHERE (((EMPDEV.Choix)=True));" DoCmd.SetWarnings True End If Me.Requery 'Me.Visible = False DoCmd.OpenReport "SCDEV_ARCHIVES", acViewPreview ', , "[IDED]=Forms![EMPDEVMENU]![IDED]", acWindowNormal DoCmd.Close acForm, Me.Name, acSaveNo 'DoCmd.OpenForm "mod1", , , "mcod=" & i
    5 points
  2. ملفك رائع وبسيط أحييك على هذا العمل تكمن مشكلة بطء الملف في اعتمادك على معادلات المصفوفات بكثرة واستعمالها في عدد كبير من الصفوف 15000 صف لذلك إذا اقتصرنا على عمود واحد فيه هذه المعادلة التي تجلب الأرقام الفريدة في عمود الموديل سيكون الملف أسرع وعليه لقد قمت بإضافة عمود M في شيت الوارد وبه معادلة الموديل بدون تكرار (يمكن إخفاء هذا العمود) وسحبتها إلى 20 صفا فقط وإذا زادت أعداد الموديلات يمكن سحب المعادلة لأسفل أي عدد من الصفوف ولكن بدون زيادة عن الحاجة ثم قمت بجلب القيم الموجودة في هذا العمود في شيت المخازن والتسعير بمعادلة خفيفة جدا وتم سحب معادلات سيت المخزون والتسعير إلى 1000 صف فقط حيث أنه من غير المنطقي التعامل مع أكثر من 1000 صنف وإذا احتجت زيادة يمكن سحب المعادلات إلى أي عدد من السفوف بالتوفيق 2 نموزج مخازن معتز.xlsb
    3 points
  3. هذا تعديل على ملفك ....... ولكن الملف الثاني افضل من حيث الادخال بحيث تستطيع ادخال اكثر من سلوك للطالب الواحد في اكثر من حصة """" KEN66.accdb ‏‏KEN55.accdb
    3 points
  4. نسخة البرنامج مصممة على اوفيس قديم .... حول البرنامج الى نسخة احدث وذلك بحفظ باسم ثم اختر نسخة احدث غير 2000
    3 points
  5. اخي الكريم هناك اعتقد مواضيع في المنتدى تتحدث حول ذلك الامر ... ولكن بشكل سريع يمكن من خلال التنسيق انظر الصورة
    3 points
  6. ضع هذا الكود .... On Error GoTo err: ' Requires reference to Microsoft Office 15.0 Object Library. Dim fso As Object Set fso = CreateObject("scripting.filesystemobject") Dim fDialog As Office.FileDialog Dim varFile As Variant Dim destpath As Variant ' Clear listbox contents. Me.PicPath2 = "" ' Set up the File Dialog. Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog ' Allow user to make multiple selections in dialog box .AllowMultiSelect = False ' Set the title of the dialog box. .title = "Please select one image" ' Clear out the current filters, and add our own. .Filters.Clear .Filters.Add "png image", "*.jpg" .Filters.Add "jpg image", "*.bmp" .Filters.Add "jpeg image", "*.png" .Filters.Add "jpg image", "*.jpeg" .Filters.Add "All Files", "*.*" ' Show the dialog box. If the .Show method returns True, the ' user picked at least one file. If the .Show method returns ' False, the user clicked Cancel. If .Show = True Then 'Loop through each file selected and add it to our list box. For Each varFile In .SelectedItems destpath = Application.CurrentProject.Path & "\" & "Pictures" & "\" & Me.Key & "." & Right$(varFile, Len(varFile) - InStrRev(varFile, ".")) FileCopy varFile, destpath Kill (varFile) Me.PicPath2 = destpath Me.Refresh Next Else MsgBox "لقد قمت بالنقر فوق إلغاء الأمر في مربع حوار الملف." End If End With Exit Sub err: MsgBox err.Description & " " & err.Number تم اضافة هذا الجزء Kill (varFile)
    3 points
  7. اخي الكريم لما تفتح موضوع لا تكرر الموضوع مرة اخرى .... حتى يتمكن الزملاء من الاجابة تفضل ..... Me.kanory.DefaultValue = "#" & "7 / 11 / 2021" & "#"
    3 points
  8. تفضل .... Me.kanory.DefaultValue = "#" & "7 / 11 / 2021" & "#"
    3 points
  9. طيب قلنا انت كيف استخدمته ,,, وضح لنا .... أو ارفق مثال توضيحي لما تريد حتى نفهم ....
    3 points
  10. و عليكم السلام و رحمة الله و بركاته تقبل الله من الجميع =INDEX(D3:M3;;MATCH(MAX(D5:M5);D5:M5;0)) اعلى-ادنى.xlsx
    2 points
  11. تفضل أخي الكريم ضع هذه المعادلة في الخليةF5 واسحب يمينا =SUM(OFFSET($C$2,(COLUMN()-6)*3,0,3)) مع مراعاة إبعاد المجموع من آخر صف حيث يتم جمعه مع آخر خلية
    2 points
  12. ملفك بعد التعديل السابق يعمل بكفاءة عالية حتى وإن وصلت الموديلات إلى 15000 ولكن هذا كود نسخ القيم الفريدة Sub mas_copyUnique() Sheets("الوارد").Range("D2:D15000").AdvancedFilter 2, , Sheets("المخزون").Range("B2"), 1 MsgBox "Done" End Sub للعلم ستحتاج إلى تنفيذ الكود بعد كل إضافة لموديل جديد فريد وهذه ميزة المعادلات عن الأكواد بالتوفيق
    2 points
  13. أخي الكريم الفاصلة تختلف من جهاز لآخر حسب إعدادات النظام وتقريبا في حالتك الفاصلة هي الفاصلة المنقوطة وليست الفاصلة فقط لذلك يمكنك استعمال الفاصلة المنقوطة في المعادلة بدلا من الفاصلة لتصبح =IFERROR(INDEX(الرصيد!$J:$J;MATCH(C2;الرصيد!$C:$C;0));"") وهكذا في أي معادلة تنسخها من المنتدى تجعلها أولا موافقة لنظام جهازك بالتوفيق
    2 points
  14. يمكنك إضافة عمود بعنوان الكمية المتبقية وتضع فيه المعادلة التالية في جدول1 و2 و3 و4 قبل عمود الملاحظات =IFERROR(INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0)),"") وهي لجلب الكمية المتبقية لهذا الاسم ويمكنك استعمال التنسيق الشرطي لتلوينها إذا قلت عن صفر بالتوفيق
    2 points
  15. اخي الكريم اتبع الشرح التالي في حال اردت اضافة بيانات الى جدول من حقول في النموذج غير منضمة اسهل طريقة بما أنك مبتدئ ان تستخدم الإستعلام الإلحاقي كما يلي بمجرد اختيار الجدول الذي سيتم الحاق البيانات به تبدء الأن اختيار حقول الجدول قم بإختيار الحقول التي ترغب بإضافة القيمة لها من النموذج تبقى الأن اضافة الحقول من النموذج داخل الإستعلام و هذا هو النموذج المستخدم كما ترى الحقول غير منضمة الأن نذهب للإستعلام لإضافة حقول النموذج داخل الإستعلام لإلحاق البيانات من النموذج الى الجدول ثم تضع اسماء الحقول كما يلي بعد تعبئة الحقول و حفظ الاستعلام الالحاقي تضع ازرار داخل النموذج لتشغيل الاستعلام و في حديث عند الضغط تضع التالي DoCmd.SetWarnings False DoCmd.OpenQuery " ضع هنا اسم الاستعلام الإلحاقي " DoCmd.SetWarnings True و كذلك الاستعلام التحديث بنفس الطريقة
    2 points
  16. واذا اردت استخراج اسماء الطابعات برمجيا هذه الوحدة النمطية للحصول على اسماء الطابعات المثبتة في جهازك Public Function GetPrinters() As String Dim prn As Printer Dim strPrinter As String If Application.Printers.Count > 0 Then For Each prn In Application.Printers strPrinter = strPrinter & """" & prn.DeviceName & """;" Next GetPrinters = Left$(strPrinter, Len(strPrinter) - 1) End If End Function ويمكنك مناداة الوحدة النمطية اعلاه واظهار الاسماء في مربع تحرير داخل النموذج اكتب هذا الكود في حدث الفتح او التحميل للنموذج Dim strMsg As String Dim strTemp As String strTemp = GetPrinters() If Len(strTemp) = 0 Then Cancel = True strMsg = "No installed printers found." Else Me.cboPrinter.RowSource = strTemp End If باعتبار Me.cboPrinter هو اسم مربع التحرير في النموذج
    2 points
  17. تفضل Private Declare Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long Private Sub cmdprt_Click() ' تعيين الطابعة الافتراضية SetDefaultPrinter ("hp LaserJet 1000") ' أمر الطباعة DoCmd.OpenReport "yourReport", acViewNormal End Sub لست بحاجة الى ip حيث تجد اسم الطابعة في الحاسب الرئيس في شاشة الاجهزة والطابعات صحيح قد تكون الطابعات من النوع والاسم نفسه ولكن تجد في آخر الاسم ما يدل على الموقع
    2 points
  18. و عليكم السلام و رحمة الله وبركاته في الخلية Q3 ضع الدالة التالية =SUBSTITUTE(TRIM(P3);CHAR(10);" -") قد يكون هذا طلبك و الله اعلم
    1 point
  19. استخدم NZ هذه الدالة تحول قيمة الحقل الفارغ الى صفر
    1 point
  20. شكرا لكلماتك الطيبة وإذا كان ولابد ظهور رسالة يمكنك وضع المعادلة التالية في عمود الملاحظات في حالة وجود الكمية المتبقية في العمود F =IF(F2<0,"لا يمكن بيع هذه الكمية. لأن الكمية المتبقية بالسالب.","") ثم سحبها لأسفل
    1 point
  21. اجسنت استاذي الفاضل الله يبارك فيك ويحفظك يا طيب جزاك الله خيرا اتعبت معاي نعم هذا هو المطلوب ممنون منك يا طيب ربي يخليك يارب
    1 point
  22. أخي الفاضل لقد سبق وأخبرتني أن هذا الملف يتم مشاركته عبر الانترنت وأعتقد أنه في هذه الحالة لا يدعم أكواد vba التي تصنع الرسائل لذا اقترحت عليك هذه المعادلة لعرض الكمية المتبقية فلا يبيع أكثر من الكمية المتبقية
    1 point
  23. ضع في القيمة الإفتراضية لحل السنة المالية ما يلي DLast("NowYaer", "EndYaer")
    1 point
  24. لإضافة قيم لأكثر من جدول في نفس الوقت اتبع التالي Dim db As DAO.Database Dim sSQL As String On Error GoTo errorhandle ' الجدول الأول Set db = CurrentDb sSQL = "INSERT INTO [Table_Name1] (Column1, Column2,...) VALUES (Value1, Value2,....) " db.Execute sSQL ' الجدول الثاني sSQL = "INSERT INTO [Table_Name2] (Column1, Column2,...) VALUES (Value1, Value2,....) " db.Execute sSQL MsgBox "تم اضافة البيانات الى الجداول بنجاح", vbInformation + vbMsgBoxRight, "تأكيد" errorhandleexit: Exit Sub errorhandle: MsgBox Err.Description Resume errorhandleexit
    1 point
  25. الملف المرفق يعمل عندي بدون مشاكل يا الله لم ألحظ أنك تستعمل أوفيس 2003 ودالة iferror غير مدعومة فيه لذا أنصحك بالتحول لأوفيس 2019 جرب استخدام if مع isna لتعمل مع أوفيس 2003 =IF(ISNA(INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0))),"",INDEX(الرصيد!$J:$J,MATCH(C2,الرصيد!$C:$C,0))) بالتوفيق
    1 point
  26. استاذي الفاضل جزاك الله خيرا ربي يحفظك يا طيب ايضا لم تنجح الطريقة معي وهذه الصورة في المرفقات جزاك الله خيرا
    1 point
  27. استاذي الفاضل محمد صالح .... اولا الله يبارك في حضرتك على سرعة الرد والمساعدة الكبيرة التي تقدمها لكل زملائنا في هذا المنتدى الاكثر من رائع جزاك الله خيرا ثانيا عملت ما تفضلت به حضرتك لكن لم افلح وكانت هذه النتيجة كما في الصورة المرفقة تحياتي لشخصك الكريم
    1 point
  28. اين المشكلة انقري على الصف الذي به الكمية في العمود D وسيتم انشاء صفحة جديدة
    1 point
  29. دعنا نجرب غير السطر الاول الذي هو في اعلى المحرر بهذا : Private Declare PtrSafe Function SetDefaultPrinter Lib "winspool.drv" Alias "SetDefaultPrinterA" (ByVal pszPrinter As String) As Long فقط تم اضافة PtrSafe اعتقد لا يلزم لانه عند النقر على الزر فالحدث يقوم بتغيير الطابعة الافتراضية الى الأمر الجديد اولا ثم تتم الطباعة
    1 point
  30. السلام عليكم اولا وقبل كل شي انا مبتدي لا احد يقولي ما هكذا تورد يا سعد الابل ولكن حبيت اشارك بالي اعرفه قد يكون ليس المطلوب وليس حوله ولكن هي دلو ادلي بها مع الكل وتقبلو اكلامي بصدر رحب Request.accdb
    1 point
  31. يا مرحبا بمعلمي أبو جودي الطريقة الأولى فيها شبه من الدوت نت تحميل المعلومات المدخلة للجدول المعين في الكود مع مربعات النصوص والحقول المرتبطة بها عن طريق الكود بالنسبة للاسرع كلا الطرق تؤدي إلى روما وأنا مع معلمي واستاذي جعفر لا نبحث عن التعقيد الطريق الموصول إلى الهدف بيسر وسهولة ويؤدي الغرض على اكمل وجه نسلكه والله اعلم وأجل
    1 point
  32. اصغر من اي شيء؟
    1 point
  33. وعليكم السلام 🙂 جرب هذا التعديل ، ورجاء تغيير المتغير XXX برقم صحيح : If [mo] = 1 Then Me.موعد1.Visible = Not (موعد1.Visible) Else Me.موعد1.Visible = False End If If [br] <= XXX Then Me.z.Visible = Not (z.Visible) Else Me.z.Visible = False End If جعفر
    1 point
  34. تفضل التعديل لعرض كلمة المرور ضع المؤشر داخل حقل كلمة المرور قاعدة البيانات للمستخدمين.zip
    1 point
  35. وعلشان يكتمل الموضوع ، ومن ارشيفي ، ولا اعرف من عمل هذه البرامج ، اليك مرفقين: 1. تحديد عدد السجلات في التقرير ، 2. تحديد عدد السجلات في النموذج المستمر ، جعفر عدد السجلات للنموذج المستمر v.2.mdb تحديد عدد السجلات في التقرير.mdb
    1 point
  36. شكرا لكلماتك الطيبة صعب جدا الفلتر بمعامل or لكن الحمد لله الذي وفقني في التوصل إليها يمكنك تغيير المعادلة في G4 وهي هذه المعادلة =@INDEX('6'!B:B,INDEX(4^8-LARGE((رصيد>0)*(رصيد>=$E$1)*(4^8-ROW(رصيد)),ROWS(G$4:G4)),0)) طريقة تغيرها كما يلي: 1- تكتب في الخلية E1 المبلغ المراد وهو -60000 2- حدد الخلية G4 ثم اضغط ( Ctrl+shift+سهم لأسفل ) ليقوم بتحديد النطاق من G4:G68 3- اكتب في شريط المعادلة ما يلي: =IFERROR(INDEX('6'!B:B,SMALL(IF($E$1>رصيد,ROW(رصيد),IF(رصيد>0,ROW(رصيد),"")),ROW()-3)),"") 4- اضغط Ctrl+shift+enter لأنها معادلة مصفوفات بالتوفيق
    1 point
  37. أ/ محمد صالح حقيقة انا مستغرب كيف عمل معك الملف ظهر لي نفس الخطا عند الضغط على زر تنفيد الملف كان في وضع المشاركة تم الغاء تفعيله حتى يعمل تحياتي
    1 point
  38. السلام عليكم =========== اخى الحبيب يجيى بارك الله فيك على الكود الصغير جدا "كبير جدا فى المقام" اخى اللحبيب عماد "ابداع" الحبيب الغالى ابو عبدالله " تعبتنا معاك يا عم الحاج" مافيش اروع من كده اخى goda509129 --------------- ولاثراء الموضوع هذا الكود الذى يتميز بعدة مميزات 1) يمكن طباعة الورقة طوليا او عرضيا بتغير هذا الجملة فى الكود CenterVertically = True Orientation = xlPortrait الى CenterHorizontally = True Orientation = xlLandscape كما يمكنك تحديد "هد" للصفحة يتكرر مع كل صفحة ويمكنك تغيرة فى الجملة PrintTitleRows = "$1:$1" كما يمكنك تظبيط الصفحة اتوماتيكيا من الجملة FitToPagesWide = 1 FitToPagesTall = 1 الميزة الثالثة والاخيرة يخيرك بين عدة طباعات اذا كان لديك اكثر من طباعة تحياتى Copy of كود طباعة مدى متغير.rar
    1 point
  39. السلام عليكم تظهر رسالة تجاوز السعة عندما اريد انشاء استعلام حسابي و لا اعرف السبب و انا متاكد ان المعادلة صحيحة و لكن هل المشكلة بسبب عدد الاستعلامات الكثيرة الي انشئتها و هل هناك حل؟
    1 point
  40. بسم الله الرحمن الرحيم لا أدري ماذا أصاب برامج مايكروسوفت بجهازي فكلما حاولت الدخول إلى الأكسس أو الوورد... تظهر لي رسالة تبلغني بأنني قمت بعملية غير شرعية وعندما حاولت إزالة Office XP من جهازي تظهر لي رسالة أخرى مفادها أن Msiexec قام بعملية غير شرعية وسيتم إيقافه وعندما حاولت تنصيب Microsoft Office 97 أو 2000 تظهر لي نفس الرسالة فماذا علي أن أفعل ساعدوني أرجوكم :') :') :') :') :') :') :') :')
    1 point
  41. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته،، لدي مشكلة أود التخلص منها . وهي عند تنفيذ النموذج (يحوي عدد من السجلات والأوامر ) إذا حركت السكرول الموجود في الفأرة فإن البيانات تنتقل للسجل الذي يليه، أي لو كان لدي جدول بيانات طلاب مدرسة، ولنفرض أن أول سجل هو للطالب محمد والسجل الثاني للطالب سعد، بطيعة الحال لو نفذت النموذج للجدول فإنه يخرج لي بيانات أول سجل، أي المتعلقة بالطالب محمد. الملاحظ وانا داخل النموذج لو حركت السكرول ( الزر الدائري الموجود بين الزر الايمين والايسر في الفأرة ) للاسف يعطيني السجل الثاني اي بيانات الطالب سعد .. السؤال : كيف أمنع المستخدم من التنقل بين السجلات عن طريق السكرول الموجود في الفأرة ؟ وشكرا
    1 point
  42. مرفق مثال لنموذج فاتورة يتكون من نموذج F1 وآخر فرعي F2 عند ادخال بيانات الفاتورة وبعد الانتقال الى النموذج F2 وعند حقل رقم الصنف قم بالضغط على زرF9 سيظهر نموذج يوضح رقم الصنف واسمه وسعر بيعه ورصيده . لادخال الصنف فى الفاتورة اضغط F9 مرة أخرى . المشكلة هنا : النموذج الفرعي ( F2 ) لا يقبل أصناف أخرى .وطبعا أي فاتورة ممكن تحتوى على أكثر من صنف . كانت هناك طريقة قديمة وشغالة وهي قم باستبدال النموذج F2_11 بدلا من النموذج F2 واربطه مع النموذج F1 ستجد أن الفاتورة تقبل أكثر من صنف . لعل المطلوب يكون واضح . بالمناسبة فكرة F9 مقتبسه من أفكار خبيرنا أبو هادي . أشرف خليل F9.rar
    1 point
  43. السلام عليكم عندي نموزج ويوجد عملية بسيطة به وهي الطرح فعندما مثلا نطرح الرقم 623.5 من 435.6 تظهر القيمة 187.90000000000001 ومن الممكن ايظا يحدث عند حساب مثلا 623.5 يطرح منه 623.5 يكون الناتج ُُE87668686+23223 لماذا يحدث هذا الخطا وكيف معالجته حيث انه لا يظهرفي كل مرة أ رجوا المساعدة علي فهم كيف يحدث هذا الخطأ وكيفية معالجته حيث انني لا أريد ان يكون الرقم محدود بأرقام عشرية ======= مع تحياتي
    1 point
  44. السلام عليكم عندي مجلد في المستندات يحتوي على 6000 صورة تقريبا , هل هناك من إمكانية بعمل جدول على الأكسس بأسماء هذه الصور مرة واحدة ... أقصد أن لا أقوم بفتح جدول على الأكسس وأقوم بتسجيل إسماء الصور... صورة صورة ... طبعا هذه تحتاج لوقت كبير ...هل من حل لأختصار هذا الوقت ... الرجاء الأفادة فالموضوع يعني لي الكثير ...ويخفف عني عناءا كبيرا..
    1 point
  45. السلام عليكم ،، سأرسرد لكم هذا الكود لتوضحو لي شيئا منه: If Me.RecordsetClone.RecordCount = 0 Then MsgBox "لايوجد شرح حسب بحثك.", vbOKOnly, "تنبيه" Me.FilterOn = False Me!زر_البحث.Caption = "البحث عن شرح" Else نتيجة.Visible = True Me.RecordsetClone.MoveLast نتيجة.Caption = "عدد الشروحات حسب البحث :" & vbCrLf _ & Me.RecordsetClone.RecordCount End If ما هي وظيفة RecordsetClone في هذا الكود ؟ وماذا تعني كلمة vbCrLf ؟ وشكرا جزيلا لكم....
    1 point
  46. أخوتي السلام عليكم وبعد عندي استعلام فيه بيانات مكرره - حسب الجدول - سؤالى ما هو الطريق لجعل الاسم يظهر بدون تكرار
    1 point
×
×
  • اضف...

Important Information