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

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

  1. أبوبسمله

    أبوبسمله

    الخبراء


    • نقاط

      20

    • Posts

      3463


  2. محمد أبوعبدالله

    • نقاط

      18

    • Posts

      1998


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      17

    • Posts

      9937


  4. kha9009lid

    kha9009lid

    الخبراء


    • نقاط

      12

    • Posts

      1347


Popular Content

Showing content with the highest reputation on 04/03/20 in مشاركات

  1. السلام عليكم ورحمة الله وبركاته أهديكم برنامج لقراءة حركات الكلمة أي قراءة تشكيل الحروف . مثلاً كلمة ( الرَّحْمَنِ ) يقرأ البرنامج حركاتها هكذا ( شدة ، فتحة ، الصفر المستدير ، فتحة ، كسرة ) ولا أخفيكم أن أحد الأخوة الزملاء المهتمين بالقرآن الكريم في منتدانا الحبيب طلب مني ذلك على الخاص فأردت أن شارككم . البرنامج قابل للتطوير إن وجد أخطاء . ولا تنسونا من دعائكم ،، Read_HarakatV20_1.zip
    5 points
  2. جزاكم الله خيرا اخوانى واساتذتى @ابو البشر و @محمد ابوعبد الله ومنورين المنتدى بالتوفيق اخوانى
    3 points
  3. وعليكم السلام ورحمة الله وبركاته قبل اضافة الحقول الى النموذج تحتاج الى ضبط الجداول وعمل علاقات فيما بينها بطريقة صحيحة مثال سريع ومختصر للفكرة جدول الاباء : كود الاب + اسم الاب جدول الابناء : كود الابن + اسم الابن + كود الاب ( حقل غريب ) جدول الاحفاد : كود الحفيد + اسم الحفيد + كود الابن ( حقل غريب ) بعد تصميم الجداول بهذه الطريقة نقوم بعمل علاقات فيما بينها كود الاب في جدول الاباء مع كود الاب في جدول الابناء ( علاقة رأس باطراف ) كود الابن في جدول الابناء مع كود الابن في جدول الاحفاد ( علاقة رأس باطراف ) بهذه الطريقة يمكن وضع الحقول التي احتاجها في النموذج بدون مشاكل باذن الله تحياتي
    3 points
  4. وعلكيم السلام ورحمة الله وبركاته برجاء مراجعة المرفق الاستعلام kan3 ارجو ان يكون هو المطلوب K_1_3.rar تحياتي
    3 points
  5. اخي الفاضل محمد انا كان ردي على كود الاستاذ جعفر Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If ولم اجرب التعديلات الاخيرة في رد الاستاذ جعفر لكونك وجدت ان الحل مناسب لك وهذا هو المطلوب اما بخصوص الرد الاخير للاستاذ جعفر فهوا الحل المناسب Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") تقبل من اخيك اطيب ايات التقدير والاحترام
    3 points
  6. الحمد لله ان الحل نفع معك علما باني قد تجاوزنة بالامر a' or 't'='t واعدت المحاولة بزيادة المسافة وايضا تم تجاوز كلمة المرور
    3 points
  7. هذة ثغرة للاستعلامات البنيوية تمكن مستخدمها من الدخول على قواعد البيانات في حالات معينة وخطرها ليس فقط بامكانية تسجيل الدخول وانما يمكن تنفيذ اوامر sql مثل DROP TABLE وغيرها من الاوامر يتم الدخول باستخدام a' or 't'='t ' or '1'='1 ' or 1='1 هل هي مقتصرة على قواعد البيانات الحقيقة يمكن استخدامها مع تطبيقات php التي تستخدم قواعد البيانات ولكن التوسع في مثل هذه الامور اجده غير نافع في حالتك اخي جرب في كودك الاصلي ان تغيير تنسيق حقل الباس الى رقم عام ستجد ان الثغرة لن تعمل مع ذلك من الافضل ان تستخدم الكود الذي وضعه الاستاذ الفاضل @jjafferr If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If هذا والله اعلم
    3 points
  8. وعليكم السلام 🙂 انا ما فهمت السؤال ، ولكن وجدت خطأ في الكود 🙂 وعلشان تعرف وين الخطأ ، دائما استعين بـ Debug.print ، وفي حالتك : Debug.Print "login='" & Me.Texte1 & "'" & "and passe='" & Me.Texte3 & "'" والنتيجة login='mmm'and passe='bb' . وتلاحظ انه ما في مسافة قبل and لهذا السبب ، الكود بعد التعديل يصير : Dim rs As dao.Recordset Set rs = CurrentDb.OpenRecordset("select * from test1", dbOpenDynaset) ' If Not rs.EOF Then rs.MoveFirst Debug.Print "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'" rs.FindFirst ("login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") If rs.NoMatch = True Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If rs.close Set rs = Nothing . وتستطيع ان تستعمل كود اخف : If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If . ولكن هذين الكودين يعتمدون على المعيار ، لذلك اعطيك طريقتي في عمل المعيار ، واللي يسهل عليك : . فيكون الكود في حالتك : Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe rs.FindFirst myWhere او If DCount("*", "test1", myWhere) > 0 Then جعفر
    3 points
  9. استاذنا الفاضل @ابا جودى ليست المشكلة في استخدام Long Integer ولكن المشكلة انه استخدم Long Integer لعدد كبير جدا من الحقول مع عدم وجود داعي لذلك وهذا سؤثر سلباً على قاعدة البيانات وعلى حجمها فتنسيق Long Integer يحجز في الذاكرة 2,147,483,648 2,147,483,647 وهو سوف يسجل درجات مواد وهو بحاجة اقصى الى 6 او 7 ارقام فقط والله اعلم تحياتي
    2 points
  10. اخي الكريم انت تسخدم لدرجات المواد Long Integer وهذا غير صحيح ما رأيك باستبداله كما في الصورة تحياتي
    2 points
  11. Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) تحياتي
    2 points
  12. ملاحطة أخي الكريم ....... ماذا لو تساوت مدرستان في عدد الطلاب والنسبة ...... المفرض هناك اول واول مكرر مثلا وهكذا .....
    2 points
  13. استغفر االه انت معلمنا ونحن مجرد طلاب علم وقد وعدت سابقا بان اشرح كود الوارد اولا صادر اولا وهذا جزء من ذاك الكود لذا اسمحلي ان افتح موضوع جديد لشرح كود الوارد اولا صادر اولا او اخيرا ولان جهاز الكمبيوتر لدي بطيء بعض الشيء ولكي لا بفصل النت ويضيع ما اكتب ساكتب بعدة مشاركات ان شاء الله
    2 points
  14. يمكننا بهذه الطريقة التغلب على هذه الحركات في اسم المستخدم او كلمة السر ، بحيث نستبدل اشارة ' بـ _ ونقارن الكلمات بالجدول : Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") والآن جربها على اي من الطرق التي اقترحتها : Dim rs As dao.Recordset Dim u, p As String u = Replace(Me.Texte1, "'", "_") p = Replace(Me.Texte3, "'", "_") ' Set rs = CurrentDb.OpenRecordset("select * from test1", dbOpenDynaset) ' If Not rs.EOF Then rs.MoveFirst ' Debug.Print "login='" & u & "'" & " and passe='" & p & "'" ' rs.FindFirst ("login='" & u & "'" & " and passe='" & p & "'") ' If rs.NoMatch = True Then ' MsgBox "????" ' Else ' DoCmd.OpenForm "test2", acNormal ' DoCmd.Close acForm, Me.Name, acSaveNo ' End If ' ' Set rs = Nothing ' If DCount("*", "test1", "login='" & u & "'" & " and passe='" & p & "'") = 0 Then ' MsgBox "????" ' Else ' DoCmd.OpenForm "test2", acNormal ' DoCmd.Close acForm, Me.Name, acSaveNo ' End If Dim myWhere As String myWhere = "login='" & u & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & p & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere ' rs.FindFirst myWhere ' ' او If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If . جعفر
    2 points
  15. مرحبا اخي جعفر يمكن تجاوز كلمة المرور الافضلاستخدام كودك التالي If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") > 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If
    2 points
  16. شكرا جزيلا اخوي خالد 🙂 يا ريت اخوي محمد (rey360) اعطيتنا هذه التفاصيل من البداية 🙂 على العموم ، انا ارفقت لك هذا الكود في مشاركاتي السابقة ، فرجاء تجربه : Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If جعفر
    2 points
  17. منور اخى محمد @حلبي وعافانا الله واياكم وجميع المسلمين ان شاء الله برحمته جزاهم الله خيرا اخوانى واساتذتى
    2 points
  18. انشاء الاستعلام وقت الحاجة بالكود وحذفه بعد الانتهاء من عمله بالكود كذلك قطعا افضل ولكن التعديل بتلك الطريقه لن يكون يسيرا على الجميع ان امكن ذلك فبها ونعم
    2 points
  19. السلام عليكم احببت ان اخدمك واستخدمت طريقة التكلفة في اعمار الذمم وكانت النتيجة 24000سجل في اقل من ثواني معدودة طلعت النتيجة https://drive.google.com/file/d/1HWuQXyYFpT2KXRGS2dYlYhFRIbFUm53Z/view?usp=sharing السلام عليكم احببت ان اخدمك واستخدمت طريقة التكلفة في اعمار الذمم وكانت النتيجة 24000سجل في اقل من ثواني معدودة طلعت النتيجة https://drive.google.com/file/d/1HWuQXyYFpT2KXRGS2dYlYhFRIbFUm53Z/view?usp=sharing
    2 points
  20. شكرا جزيلا 🙂 انا ارد على السؤال اثناء تناول الغداء ، فمعذور فالمعادلة الصحيحة تكون : If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") = 0 Then جعفر
    2 points
  21. الكثير من العادلات تقوم بهذا الشيء بالاضافة الى ما ذكره الأخ الرائد 77 هذا المعادلة (Ctrl+Shift+Enter) =SUM(IF(LEN(F6:F16)<>0,1,0)) واذا لم تعمل معك استبدل الفاصلة بفاصلة منقوطة لتبدو هكذا =SUM(IF(LEN(F6:F16)<>0;1;0))
    2 points
  22. أستاذ جعفر أعتقد هذا السطر يساوي 0 و ليس أكبر من 0
    2 points
  23. تفضل =COUNTA(F6:F16)-COUNTIF(F6:F16;"") و اذا اردت الخلايا التي تحتوي على قيم نصية فقط =COUNTIF(F6:F16;"?*") ورقة عمل Microsoft Excel جديد __.xlsx
    2 points
  24. السلام عليكم مشاركة مع استاذنا ابا جودى اتفضل اخي اتمنى يكون المطلوب تحياتي الحاق مشروط.rar
    2 points
  25. اتفضل يا دكتور🌹 الحاق مشروط - 2.accdb
    2 points
  26. تفضل Private Sub Form_Error(DataErr As Integer, Response As Integer) If DataErr = 2113 Then Response = acDataErrContinue me.undo msgbox "ادخل البطاقة مرة اخرى" me.ID.setfocus End If End Sub . ولكني لازلت اقول بأنه ممكن فيه طريقة افضل من هذه ، تلك التي يتسلسل فيها دخول البيانات من البطاقة !! لأنك بهذه الطريقة تضطر تصيد الاخطاء واحدة خلف الاخرى وووو ، بينما مثلا : لما تُدخل البطاقة في الجهاز ، يجب ان يكون التركيز على حقل رقم البطاقة ، وآخر حقل يتم ادخاله هو تاريخ الانتهاء ، ومنها ينتقل التركيز للحقل التالي ، هنا ، وعلى حدث "بعد التحديث" للحقل تاريخ الانتهاء ، يمكنك ان تظهر رسالة: هل تريد حفظ البيانات ، نعم ، لا : Dim Msg, Style, Title, Response Msg = "هل تريد حفظ البيانات ?" & vbcrlf & _ "نعم: احفظ البيانات" & vbcrlf & _ "لا : لا تحفظ البيانات" Style = vbYesNo + vbCritical + vbDefaultButton1 ' Define buttons. Title = "تم ادخال البيانات، ولكنها لم تُحفظ بعد" ' Define title. ' context. ' Display message. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. docmd.runcommand accmdsaverecord ' احفظ السجل me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة Else ' User chose No. me.undo ' Perform some action. me.id.setfocus 'وانتقل الى حقل ID مرة اخرى استعدادا لإدخال بيانات بطاقة جديدة End If . الميزة في ظهور الرسالة هو ، انه لا يسمح لك عمل اي شيء آخر في السجل ، إلا بعد ان تستجيب للرسالة ، مما يسهل عليك ولا تحتاج الى بقية الكود ولا ولا 🙂 Private Sub Form_Error(DataErr As Integer, Response As Integer) Dim x As Integer x = DataErr If x > 0 Then ' Response = acDataErrContinue 'ÞÏ áÇ ÊÍÊÇÌ Çáì åÐÇ ÇáÓØÑ Me.Undo End If End Sub هو بمثابة هذا الكود لأن تقريبا جميع الاخطاء ارقامها موجبه Private Sub Form_Error(DataErr As Integer, Response As Integer) Response = acDataErrContinue Me.Undo End Sub جعفر
    2 points
  27. بسم الله الرحمن الرجيم كما وعدت اساتذتي شارح الكود ولان جهازي بطيء بعض الشيء ولكي لا بفصل النت ويضيع ما اكتب ساكتب بعدة مشاركات ان شاء الله. اي كود يقوم على فهم الفكرة سيكون الشرح عن المخزون الفكرة تكمن اني اريد ان اعلم مقدار ما تبقى من المواد بعد ما تم صرفه والحل يكون على عدة خطوات لنتجاوز تسلسل الكود ولنفقز الى فهم الفكرة الخطوة الاولى:انشاء استعلام يدرج فيه كافة حركات ادخالات المواد مع عمود يقابلها بمجموع المخرجات للمادة مع الاخذ بعين الاعتبار المستودع الموجودة فيه mySQL = "SELECT trans.idproduct AS Prd, trans.datna AS xDate, trans.voucherno AS Doct,trans.description AS Doct1, trans.[in] AS Pr, trans.prix AS PP, nz([SumOfout],0) AS Sold, trans.idstore" & _ " FROM SalesTotal " & _ "INNER JOIN trans ON (SalesTotal.idstore = trans.idstore) AND (SalesTotal.idproduct = trans.idproduct) " & _ "WHERE trans.[in] > 0 And trans.[idstore] = '" & Forms!fautt1!autot7.Form!idstore & "'" & _ " and trans.idproduct='" & Forms!fautt1!autot7.Form!idproduct & "'" & _ "ORDER BY trans.idproduct, trans.datna;" Set qdf = db.CreateQueryDef(vbNullString, mySQL) Set Rs1 = qdf.OpenRecordset(dbOpenSnapshot) وهذا الاستعلام نستطيع ان نسميه جدلا استعلام افتراضي بدون امتداد لاسمه والهدف من ذلك حتى لا تتضر الى حذفه كلما اردت تنفيذ هذا الاستعلام لانه سينتج لك رسالة ان الاستعلام موجود مسبقا واذا اردت ان ترى الاستعلام باسم ايمن مثلا اكتب الكودالتالي qryName = "ayman" 'consumed is calculated in this query mySQL = "SELECT trans.idproduct AS Prd, trans.datna AS xDate, trans.voucherno AS Doct,trans.description AS Doct1, trans.[in] AS Pr, trans.prix AS PP, nz([SumOfout],0) AS Sold, trans.idstore" & _ " FROM SalesTotal " & _ "INNER JOIN trans ON (SalesTotal.idstore = trans.idstore) AND (SalesTotal.idproduct = trans.idproduct) " & _ "WHERE trans.[in] > 0 And trans.[idstore] = '" & Forms!fautt1!autot7.Form!idstore & "'" & _ " and trans.idproduct='" & Forms!fautt1!autot7.Form!idproduct & "'" & _ "ORDER BY trans.idproduct, trans.datna;" Set qdf = db.CreateQueryDef(qryName) qdf.SQL = mySQL qdf.Execute 'لاظهار الاستعلام المنشأ -ايمن-اعادة الانعاش Application.RefreshDatabaseWindow طبعا ترى هذا الكود في قاعدة البيانات المرفقة في شاشة الفواتير في النموذج الفرعي autot7 في حدث بعد التحديث fifo اخواني ساكمل بعد التاكد من اني وفقت في شرح الفكرة الاولى
    1 point
  28. وبذلك نرتكب مخالفة لقوانين المنتدى لمجرد التفكير حتى فى إجابة السؤال الثانى فصلا وكرما وليس امرا افتح موضوع جديد كما اننى اعتذر للتأخير فى الرد بسبب سوء الانترنت اتابع من الجوال وكن يعلم الله مشقة ذلك تعب بالقراءة وشاشة صغيرة وتحميل المرفقات للجوال ولاانتقال بها للحاسوب للاطلاع والتعديل ثم العودة بها للجوال لارفعها على المنتدى رجاء التمس لى العذر ان تاخرت عليكم بالرد
    1 point
  29. تفضل اخي الكريم Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) If ID = 4 Then ID.LeftMargin = 3000 End If End Sub تحياتي
    1 point
  30. اضافة لما اشار اليه الاستاذ @محمد ابوعبد الله ماهي العلاقة بين هذا الحقل من جدول 2 مع سجلات النموذج المبني على جدول 1 هل ترغب في اظهار قيمة الحقل وفقا لمعايير محددة او فقط قيمة الحقل هل ترغب في عرض اول سجل او اخر سجل او مجموع مثلا او فاتورة بيع الفاتورة الاخير اجمالي قيمة الفواتير الخ من الافضل الاطلاع على موضوع الاستاذ محمد طاهر
    1 point
  31. السلام عليكم 🙂 ليش ما تحبون الوحدات النمطية ، سهلة ولذيذة 🙂 بدل هذا الحقل UnionUnit: IIf([units]="جرام","كيلو جرام",IIf([units]="كيلو جرام","كيلو جرام",IIf([units]="قرص","قرص"))) استعمل units2: G_to_K_u([units],[wzn]) وهاي الوحدة النمطية ماله Public Function G_to_K_u(u As String, w As Double) As String 'convert Gram to Kilogram 'units If u = "جرام" Then G_to_K_u = "كيلو جرام" Else G_to_K_u = u End If End Function . وبدل هذا الحقل UnionMeasure: IIf([units]="جرام",Format([wzn]/1000,"#,##0.000"),IIf([Units]="كيلو جرام",Format([wzn],"#,##0.000"),IIf([units]="قرص",[wzn]))) استعمل wzn2: G_to_K_w([units],[wzn]) وهاي الوحدة النمطية ماله Public Function G_to_K_w(u As String, w As Double) As Double 'convert Gram to Kilogram 'wzn If u = "جرام" Then G_to_K_w = w / 1000 Else G_to_K_w = w End If End Function . جعفر 1202.Qs For Weight (UP2).mdb.zip
    1 point
  32. السلام عليكم 🙂 اخواني ، الجميع يساعد في المنتدى بوقته وبدون مقابل ، وعندنا مثل يقول: حبة الزبيب ما تشبّع ، ولكنها تحلّي الفم 🙂 فرجاء خلونا نشجع الاعضاء في العطاء 🙂 لما تحصل على رد له قيمة ، فتشجيعا للعضو الذي يساعدك ، اخبر العضو بأنك مُعجب برده ، هكذا : . . ولما تحصل على اجابة لسؤال موضوعك ، فرجاء اختيار افضل اجابة ، هكذا (حتى مستقبلا يسهل معرفة الاجابة الصحيحة) : . شكرا 🙂 جعفر ومع الاعتذار لأخي احمد لإستخدام اسمه في المثال 🙂
    1 point
  33. جزاكم الله خيرا 🙏 شكرا لك سيدي الكريم 🌹 لوتشرح يكون تفضلا وتكرما منكم سيدى يعنى دائماً وابدا اعمل حساب طلاب العلم امثالى والذين ينتظرون العلم بلهفة مشتاق
    1 point
  34. وعليكم السلام ورحمه الله وبركاته واياكم ان شاء الله ولم افعل شىء وما انا الا سوى طالب علم فى مدرسه اوفيسنا وانتم اساتذتى جزاكم الله خيرا على كل ما تقدمونه فى سبيل التعلم ومساعده جميع الاخوان تعبك راحه اخى واستاذى محمد والحمد لله الذى بنعمته تتم الصالحات وان من الله عليك بالحل اللذى اراحك هل اطلعت على المرفق الاخير اخى محمد؟
    1 point
  35. أستاذ kha9009lid الطريقتين يمكن اختراقهما بعدما عدلة كتابة كما في الصورة أدناه If DCount("*", "test1", "login='" & Me.Texte1 & "'" & " and passe='" & Me.Texte3 & "'") = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If Dim myWhere As String myWhere = "login='" & Me.Texte1 & "'" myWhere = myWhere & " and" '<اهم شيء هو ترك مسافة في البداية قبل and myWhere = myWhere & " passe='" & Me.Texte3 & "'" '<اهم شيء هو ترك مسافة في البداية قبل passe Debug.Print myWhere If DCount("*", "test1", myWhere) = 0 Then MsgBox "????" Else DoCmd.OpenForm "test2", acNormal DoCmd.Close acForm, Me.Name, acSaveNo End If الا أنا الطريقة الاخيرة للاستاذ jjafferr لا يمكن اخترقها بهذه الكيفية
    1 point
  36. أستاذ jjafferr الطريقة شغالة و تم اغلاق الثغرة شكرا لك
    1 point
  37. تقريبا نفس الموضوع بس ناتج للاسم المشار اليه سابقا والنوع طالع 4500.05 وليس 4,550
    1 point
  38. اممممممممممممممم ساشرب فنجان قهوه واحاول مره اخرى ان شاء الله والله المستعان ولعل معلمنا العزيز @jjafferr يشاركنا
    1 point
  39. وعليكم السلام اخى واستاذى محمد عصام @ابا جودى انظر للاستعلام QAboJody هل هذا ما تريد ؟ Qs For Weight.mdb
    1 point
  40. هلا ومرحبا بيك ، وبأهلك ، وبالجمل اللي رحل بك 🙂
    1 point
  41. لا حاجة الى هذه الشروط المتكررة من IF يكفي ادراج جدول بالأسعار واستعمال الدالة VLOOKUP لهذا الغرض في العامود I نطرح قيمة الكسب اما في العمود J نطرح عدد ثابت 50 (لا أعرف ايهما تريد) انظر الى الملف Moufafaa.xls
    1 point
  42. محاولة بسيطة . تفضل Sumifs2.xlsx
    1 point
  43. تفضل 🙂 Private Sub B_Code_AfterUpdate() If DCount("*", "المستخدمين", "[المعرف]=" & [Forms]![الدخول]![B_Code]) > 0 Then Dim SplitUp() As String Dim StrMyLookup As String StrMyLookup = DLookup("[الصلاحية] & '|' & [اضافة] & '|' & [حذف] & '|' & [تعديل] & '|' & [كلمة السر] & '|' & [اسم المستخدم]", "المستخدمين", "[المعرف]=" & [Forms]![الدخول]![B_Code]) SplitUp = Split(StrMyLookup, "|") Me.الصلاحية = SplitUp(0) Me.اضافة = SplitUp(1) Me.حذف = SplitUp(2) Me.تعديل = SplitUp(3) Me.كلمة_السر = SplitUp(4) Me.اسم_المستخدم = SplitUp(5) Else Exit Sub End If End Sub جعفر 1198.مستخدم.accdb.zip
    1 point
  44. السلام عليكم اخي اريد منك خدمه اريد اضافه الفلتره حسب عدد الاشهر مثال // كشف اخر6 شهور بشرط انه ما يظهر الا الاشهر المتعلقه برقم وعند عدم وجود التاريخ يظهر رساله بدلك والشهر الي مش موجود او السنه يتم استبعاده من البحث ارجو ان اكون وصلت الفكره ولك جزيل الشكر
    1 point
  45. 1 point
  46. السلام عليكم ورحمة الله وبركاته الإخوة الكرام قمت بعمل هذا الملف وكما ترون فإنه يوجد متصفح(microsoft web browser ) داخل الملف وهذا المتصفح مربوط بخرائط جوجل . والمشكلة أنه كان يعرض في البداية الخرائط ولكن ظهرت مشكلة في المتصفح تقول (يبدو أنك تستخدم متصفحًا غير متوافق) فهل بالإمكان تحديث هذا المتصفح أو إيجاد حل للمشكلة. أرجوا منكم المساعدة بها الملف ضروري . وجزاكم الله كل خير Moh1.rar
    1 point
  47. أخي الكريم يبدو أن الأداة Microsoft Web Bworser لا تعمل في الإصدارات الحديثة هذا والله أعلم
    1 point
  48. اخي الغالي قم بتحديث متصفح انترنت اكسبلور لديك وسيعمل جيدا باذن الله من المحتمل انك تستخدم نظام قديم والانترنت اكسبلور غير محدث به هذه الصورة من عندي
    1 point
  49. السلام عليكم ورحمة الله وبركاته جاءت فكرة هذه المقالة بعد أن مررت بتجربة في برنامج يعمل على الشبكة واجهت خلالها مشكلة تتمثل في بطء شديد لإقلاع النماذج من المحطات الفرعية ، وحينها هب بعض إخواني لبذل يد المساعدة ، وتوزعت الحلول المقترحة بين التأكد من الأجهزة المستخدمة ، وإعداد الشبكة ، والبرامج المعترضة ذات الصلاحية وحلول أخرى في صميم البرنامج وفي النماذج خاصة .. لذا أحببت إلقاء الضوء على هذه الحلول وعرضها للرجوع إليها عند الحاجة على غرار ما قامت به السيدة سوزان هاركينز في نقاطها العشر لتسريع قاعدة البيانات الخلفية .. انظر هنا . http://translate.goo...ase/2306&anno=2 وقد قسمت هذه الحلول إلى شقين أمور مؤثرة خارج البرنامج : 1- التأكد من الأجهزة المستخدمة : كالمعالجات والذواكر وبطاقة الشبكة والأسلاك الموصلة والمقسمات فقد تكون رديئة وسرعتها متدنية . 2- طريقة إعداد الشبكة على الأجهزة المستخدمة ، وكتابة عناوين لها ثابتة يدويا 3- جدار الحماية حيث يجب جعل البرنامج من ضمن الاستثناءات 4- برامج مكافحه الفيروسات لها علاقة بالموضوع ، فيجب استثناء مجلد قاعدة البيانات من مسح برنامج مضاد الفيروسات 5- طول المسارات ، أو ما يسمى بمستوى الموقع ، كأن تكون قاعدة البيانات الخلفية داخل أكثر من نموذج فرعي . أمور مؤثرة داخل البرنامج : 6- تهيئة قاعدة البيانات للمشاركة والتحرير .: خيارات / خيارات متقدمة مشترك = نعم سجل محرر = نعم 7- " طول اسم قاعدة البيانات " يجب إعطاء قاعدة البيانات اسما مختصرا مناسبا 8- " ارتباط نموذج البداية بمصدر" فيجب أن يكون نموذج الإقلاع ( البداية ) منضما يرتبط بجدول كمصدر في القاعدة الخلفية 9- من عوامل التسريع : فتح نموذج (منضم) مخفي عند تشغيل الواجهة يعمل طول الوقت . 10- من عوامل البطء : كثرة الوحدات النمطية الثانوية في نموذج البداية هذا جهد المقل أسأل الله أن ينفع به
    1 point
  50. السلام عليكم ... هذا تطبيق عملي كما وعدكم سابقاً : تنتج شركة الأمل للألبان ثلاثة أنواع من المنتجات . تتطلب كل وحدة من المنتج الأول أربع دقائق من وقت الآلات، وأربعون دقيقة من وقت العمال وبكلفة إنتاج مقدارها عشرُ ليرات للوحدة الواحدة . أما المنتج الثاني فتحتاج الوحدة منه إلى ثلاث دقائق من وقت الآلات ، وخمسون دقيقة من وقت العمال وبكلفة إنتاج مقدارها اثنتي عشرة ليرة . في حين تحتاج كل وحدة من المنتج الثالث إلى خمس دقائق من وقت الآلات ، ومائة وعشرون دقيقة من وقت العمال وبتكلفة خمس عشرة ليرة . علماً بأن أسعار بيع هذه المنتجات على التوالي هي : 17 ، 20 ، 25 ليرة . فإذا كانت هذه الشركة تعمل بمعدل ستة أيام في الأسبوع وبمعدل عمل صافي مقداره 16 ساعة يومياً . وكان يوجد بها ست آلات وستون عاملاً وميزانية أسبوعية مقدارها 15000 ليرة . هذا بافتراض أن كل ما ينتج يسوق . فكيف يمكن توزيع الطاقة المتوفرة بهذه الشركة بشكل يزيد من أرباحها . (المصدر : امتحانات جامعة القدس المفتوحة ، أما الحل فهو نتاج مجهودي الشخصي الذي يحتمل الخطأ :h ) الحل: بفرض أن : X1 : عدد الوحدات المنتجة أسبوعياً من المنتج الأول X2 : عدد الوحدات المنتجة أسبوعياً من المنتج الثاني X3 : عدد الوحدات المنتجة أسبوعياً من المنتج الثالث النموذج الخطي يكون على الشكل التالي : والآن لنبدأ بحل النموذج الخطي السابق : لنقم أولاً برسم الجدول التالي و وضع الصيغ في كل خلية حسب العلاقات الموجودة في النموذج الخطي : نلا حظ من الشكل السابق (في شريط الصيغة) أن الصيغة التالية : =7*A3+8*B3+10*C3 و الموجودة في الخلية D3 تعبر عن تابع الهدف بدلالة متغيرات القرار الممثلة بالخلايا A3 , B3 , C3 . وبنفس الطريقة نضع الصيغ في الخلايا الباقية كما يلي : الخلية B6 : =4*A3+3*B3+5*C3 الخلية B7 : =40*A3+50*B3+120*C3 الخلية B8 : =10*A3+12*B3+15*C3 أما في الخلايا C6 , C7 ، C8 فيتم وضع ثوابت المتراجحات (الطرف الأيمن للمتراجحات) . والآن نقوم بفتح برنامج Solver وإدخال المعلومات فيه كما في الشكل التالي : نلاحظ أن خلية الهدف هي الخلية $D$3 ، وأن تابع الهدف من نوع Max كما نلاحظ أن الخلايا التي تحتوي على المتغيرات موجودة ضمن المجال $A$3:$C$3 ونلاحظ من الشكل السابق المتراجحات المقيدة لنموذج البرمجة السابق ، هذا ونلاحظ أننا أدخلنا قيود عدم السلبية في البرنامج (وكما ذكرنا سابقاً بأننا يمكننا الاستغناء عن قيود عدم السلبية بمجرد تحديد الخيار Assume Non-Negative من نافذة Solver Options) بعد الانتهاء من كل ما سبق نضغط على الزر Solve فتظهر لنا النافذة التالية : نلاحظ تغير قيم الخلايا A3 , B3 , C3 ، وبالتالي تغير قيم الخلايا B6 , B7 , B8 ، D3 . الحل الناتج يقترح بأن ننتج 1500 وحدة أسبوعياً من المنتج الأول ولا ننتج أي وحدة من المنتجين الثاني و الثالث ، حيث يتحقق ربح أسبوعي مقداره 10500 ليرة ، وهو أعظم ربح ممكن . وفي هذه الحالة فإنه يجب أن تعمل الآلات بمقدار 6000 دقيقة عمل فعلية ، ويجب أن يعمل العمال بمقدار 60000 دقيقة عمل فعلية ، وحيث أن ميزانية الإنفاق الأسبوعية سوف تستهلك بالكامل . نلاحظ من الحل السابق (مقارنة الخلايا B6 وB7 بالخلايا C6 و C7) وجود فائض غير مستغل في كل من وقت الآلات و وقت العمال (طاقة معطلة) ، وفي هذه الحالة نحن أمام خيارين : 1. التخلص من الطاقة الفائضة قبل البدء بالإنتاج ، أي بيع الآلات وتسريح العمال الفائضين عن الحاجة وذلك لعدم تحمل تكاليف إضافية لا فائدة منها (رواتب ، تكاليف صيانة الآلات ، تكاليف تعطيل رأس المال ، ... الخ) . 2. دراسة إمكانية استغلال الطاقة الفائضة ، حيث يوجد عدة طرق لمعالجة هذه المشكلة من بينها زيادة ميزانية الإنفاق الأسبوعية ، وهذا يتطلب إجراء مقارنة بين سعر الظل للوحدة النقدية الإضافية (الربح الإضافي الناتج عن زيادة ميزانية الإنفاق الأسبوعية بمقدار وحدة نقدية واحدة) وتكلفة اقتراضها . عذراً ، لا أستطيع التوسع في الشرح أكثر من ذلك لأن مهمتي الآن هي شرح برنامج Solver وليس إعطاء دروس في بحوث العمليات .... ومن كان يريد الاستزادة فعليه بالمراجع . في هذه المرحلة يخيرنا البرنامج بين الاحتفاظ بقيم الحل على ورقة العمل بالنقر فوق Keep Solver Solution ، أو استعادة البيانات الأصلية بالنقر فوق Restore Original Values . يمكنك الحصول على أحد أنواع التقارير الموجودة في المربع Reports ، وذلك بتحديد التقرير المرغوب و النقر فوق OK ليتم إنشاء التقرير في ورقة عمل جديدة . يستخدم الزر Save Scenario لحفظ قيم الخلايا القابلة للتعديل كسيناريو . ملاحظات: 1. في المثال السابق ، إذا كانت المنتجات غير قابلة للتجزئة فإنه يجب تعريف القيم الموجودة في الخلايا A3 , B3 , C3 كأعداد صحيحة Int وذلك في المجموعة Subject to the Constraints: . 2. إذا كانت إحدى القيم الموجودة في الخلايا B6 , B7 , B8 غير محققة للمتراجحة المقابلة لها ، فهذا يعني أن المسألة مستحيلة الحل . حيث أن Solver يقوم بالبحث عن الحل الأمثل في حدود القيود المفروضة ، وعندما لايجد حلاً أمثلاً فإنه يقوم بالبحث عن الحل الأمثل الذي يحقق أكبر عدد ممكن من القيود المفروضة . إليكم الآن مسألة أخرى أترك حلها لكم : ملاحظة : لقد توخيت البساطة في المسائل التي طرحتها ، ومن يريد مسائل أكثر تعقيداً فعليه بالمراجع المتخصصة . مرفق مثال عن المسألة السابقة: بقي لدينا التحدث عن التقارير التي يوفرها لنا الـ Solver ، و عن رسائل الخطأ المحتمل ظهورها عند استخدامه ، وسوف أتابع الشرح إن شاء الله في هذين الموضوعين عندما استطيع الحصول على بعض الوقت لإتمام ذلك. تحياتي Solver.zip
    1 point
×
×
  • اضف...

Important Information