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

jjafferr

أوفيسنا
  • Posts

    9903
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    404

كل منشورات العضو jjafferr

  1. السلام عليكم 🙂 اخوي ابو لين ، المنتدى خلق فينا الحاسة السابعة ، وهي توقع الخطوة التالية 🙂 لذا ، لو من المشاركة التي طلبك منك ان توضح وترفق مرفق فيه المطلوب ، حتى ولو ملف اكسل ، لوفرت على نفسك 15 مشاركة !! ها ، والحاسة السابعة تقول لي ، ان طلبك بعده ما خلص وغير مكتمل باجابة اخوي حسين الاخيرة 🤣 جعفر
  2. وعليكم السلام 🙂 رجاء تعطينا صورة من الشكل النهائي الذي تريده في ورقة الباركود المطبوعة 🙂 جعفر
  3. سؤال : اذا الارقام كانت : B A 1 111 222 2 222 111 3 333 444 4 555 444 فما هي الارقام التي تريدها في الحقل C ؟ ورجاء ارفاق مرفق فيه بيانات ، فطلبك يحتاج تجربة ، حتى ولو ملف اكسل تحذف منه جميع البيانات ما عدا الارقام ، وحتى لو تستبدل ارقام بدل اخرى 🙂 جعفر
  4. هممم كان زين لو كانت مشاركتك الاخيرة ، هي المشاركة الاولى ، لأنها واضحة 🙂 سؤال : اذا الارقام كانت : 1 111 222 2 222 111 3 333 444 فما هي الارقام التي تريدها في الحقل C ؟ ورجاء ارفاق مرفق فيه بيانات ، فطلبك يحتاج تجربة 🙂 جعفر
  5. طريقة ثانية : 1. اعمل استعلام تجميعي للحقل A ، 2. اعمل استعلام تجميعي للحقل B ، 3. اعمل استعلام Union يدمج الاستعلام الاول والاستعلام الثاني بالامر Union (وليس Union all) ، حيث الامر Union سيحذف المكرر ، 4. اعمل استعلام الحاقي يأخذ بيانات الاستعلام 3 الى الحقل C 🙂 جعفر
  6. وعليكم السلام 🙂 اجعل الحقل C ، مفهرس وغير قابل للتكرار ، ثم اعمل استعلام الحاقي يضيف جميع ارقام الحقل A الى C ، واستعلام الحاقي يضيف جميع ارقام الحقل B الى الحقل C 🙂 العيب في هذه الطريقة ، اذا كان عندك حقل برقم تلقائي AutoNumber ، فإنه سيتم انتاج وحذف بعضها ، المتكررة من الحقل C ، ولكن هذا لا يهم ، فالحقل التلقائي لإستعمال الكمبيوتر ، وهذا عمله 🙂 جعفر
  7. كل عام وانتم بخير 🙂 عيدكم مبارك وايامكم سعيدة ان شاء الله 🙂 جعفر
  8. اشرت انا سابقا ، الحل في هذه المشاركة : جعفر
  9. شكرا جزيلا اخوي ابو عبدالله ، مجهود تُشكر عليه 🙂 الكود يقوم بنسخ هذه البيانات الى الجدول Table3 . وهكذا الوقت الذي يستغرقه كل نوع من الاكواد : Time1 ==========> 3.16797 <= DoCmd.RunSQL Time2 ==========> 3.14453 <= CurrentDb.Execute Time3 ==========> 3.72656 <= CurrentDb.Execute "Query1" Time4 ==========> 9.07031 <= CurrentDb.OpenRecordset ================================ Time1 ==========> 3.11328 Time2 ==========> 3.13672 Time3 ==========> 3.07422 Time4 ==========> 6.05859 . وتم حذف اول محاولة ، حيث في المرة الاولى ، يحتاج الاكسس الى عمل Compile لجملة SQL التي سيستعملها في الاستعلام : . هكذا ممكن عمل اتصال مع قاعدة بيانات خارجية (لاحظ هذا استعلام الحاقي) : . ونقدر نستعملة كإستعلام (وهو الاسرع) ، او جملة SQL مع docmd.RunSQL او "currentdb.execute "qry_tbl_BB_Append 🙂 ويمكن استعمال Source Connect Str ، لإضافة متطلبات الربط ، وهذا احد المواقع اللي يعطينا جملة الربط : Access connection strings - ConnectionStrings.com جعفر
  10. اعدت رفع الملف في مشاركة اخوي مسفر 🙂 طبعا الرجال مدلّعني واسم الملف على اسمي له بونص 😁 جعفر
  11. وعليكم السلام 🙂 حيا الله اخوي ابو يعقوب ، واهلا وسهلا بك في المنتدى🙂 للاستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف _____________________________________________________ نعم ، فهذا عمل قاعدة البيانات 🙂 رجاء افتح موضوع جديد ، واكتب فيه ما توصلت اليه من العمل على قاعدة بياناتك ، وارفق قاعدة البيانات ، واكتب اسم موضوع يدل على طلبك ("ارجو المساعد" ليس لها معنى ، وهي مخالفة لقوانين المنتدى) ، وان شاء الله ستجد المساعدة من اخوانك الاعضاء 🙂 جعفر
  12. نعم هناك خلل في الصورة ، وليس في الكود 🙂 جعفر
  13. الاكسس يستعمل وحدة قياس في الكود تختلف عنه في وضع التصميم ، في الكود يستعمل وحدة قياس تويب Twip 1سم = 567 تويب 1بوصة = 1440 تويب . اخوي الدكتور حسين ، الظاهر بعدك ما خلصت من حلاوة العيد جعفر
  14. وعليكم السلام 🙂 على افتراض ان اسماء الحقول صحيحة في الكود ، يوجد خطأ واحد في كل معادلة : يجب إضافة مسافة بين الاشارة " وكلمة and ، في المعادلتين : . هكذا : 'حساب عدد ايام الجمعة ضمن الاجازة الرسمية بين التاريخين Fri_Days = DCount("*", "tblHoliDays", _ "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _ " and [HoliDays] between #" & begdate & "# and #" & enddate & "#") Debug.Print "Fri_Dats:--->" & Fri_Days 'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين sat_Days = DCount("*", "tblHoliDays", _ "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _ " and [HoliDays] between #" & begdate & "# and #" & enddate & "#") Debug.Print "Fri_Dats:--->" & Fri_Days واذا ما حصلت على نتيجة ، فيمكن يجب ان نرى ما يراه البرنامج في صيغة التاريخ ، وعليه قد نحتاج الى استعمال الدالة fDateFormat : جعفر
  15. اصل السؤال ، والاستفسار عن الامر RunSQL فيه ، لا يعطينا انطباع على انه لا يوجد جداول مربوطة ، وعليه كان جوابي 🙂 جعفر
  16. هممم اخي حسين ، حسب قراءتي ، فالاسرع سيكون الاختيار الاول ، وذلك بسبب ان الاكسس يكون قد عمل Compile لجملة الـ SQL ، فالمرة الاولى في استعمال كود استعلام التحديث ، ستكون بطيئة (قبل الـ Compile) ، بينما جميع المرات التالية ستكون اسرع 🙂 وعلى كل حال ، فنريد متطوع يقوم بتجربة الطريقتين ، ونأخذ توقيت عمل كل طريقة ، مثلا 10 مرات ، ثم نأخذ المعدل 🙂 جعفر
  17. اسماء الحقول اصبحت C1 و C2 و C3 ، واعمل خلفيتهم باللون الذي تحب ، وعند حدث بعد التحديث ، سيتم اختيار المربع الذي يحمل نفي الرقم ، بنفس لون الخلفية: استعمل هذا الكود : Private Sub Select_it(ctl As Control) For i = 1 To 32 If Me("[" & i & "]") = Me(ctl.Name) Then Me("[" & i & "]").BackColor = Me(ctl.Name).BackColor End If Next i End Sub Private Sub C1_AfterUpdate() Call Select_it(C1) End Sub Private Sub C2_AfterUpdate() Call Select_it(C2) End Sub Private Sub C3_AfterUpdate() Call Select_it(C3) End Sub . جعفر 1402.1.Random Numbers.accdb.zip
  18. حياك الله 🙂 انا وضعت لك الكود جاهز ولا يحتاج تفكير في التطبيق ، بس اسم زر امر توليد الارقام ، اسمه cmd_Generate_Random ، وهذا كود الحدث ، والسلام 🙂 جعفر
  19. مازلت تتحفنا فنياً وادبياً اخوي خالد ، فجزاك الله خيرا 🙂 جعفر
  20. اشوفك تتسرّع في تعليقاتك !! ولو تغيّر التعليق الى سؤال ، فبتحصل على اجابات افضل 🙂 الهدف الاكبر من هذا الموضوع هو ، حماية البيانات : 1. اذا البيانات على السيرفر ، والاكسس متصل بجداوله في السيرفر ، فالرابط يكون مستمر بين الواجهة والجداول ، والشاطر يقدر يستعمل احد برامج "الشم" Sniffing والتوصل الى ما يشاء ، 2. بينما اتصالك بالكود للسيرفر وجلب البيانات ، ثم انقطاع الاتصال بالسيرفر ، يجعل الموضوع ذو امان اكثر 🙂 وللعلم ، فهناك العديد من الجهات التي تهتم بأمن البيانات ، تصر على ان تكون جميع كائناتها غير منضمه 🙂 جعفر
  21. شكرا جزيلا اخوي حسام انك نبهتنا لخطأ التكرار ، واللي صعب معرفته غير انك تجعل الارقام من 1 الى 32 🙂 هذا تعديل الكود حقي : Private Sub cmd_Generate_Random_Click() Dim i As Integer Dim j As Integer Dim f As Integer Dim e As Integer Dim t As Single t = Timer 'احفظ سجل النموذج If Me.Dirty Then Me.Dirty = False f = Me.[f-no] e = Me.[e-no] For i = 1 To 32: Me("[" & i & "]") = 0: Next i For i = 1 To 32 Try_Again: Dim MyValue Randomize Timer MyValue = Int((e * Rnd) + f) '1. No Duplicates For j = 1 To i If Val(Me("[" & j & "]")) = MyValue Then GoTo Try_Again Next j '2 Smaller than, Or Greater than If MyValue < f Or MyValue > e Then GoTo Try_Again Else Me("[" & i & "]") = MyValue End If Next i Debug.Print Timer - t End Sub . وتلاحظ اني حسبت الوقت اللي الكود يأخذه في عمل اللازم ، ويمكن مقارنة سرعة الكود هذا مع كود اخوي حسين واخوي حسام 🙂 جعفر
  22. وعليكم السلام 🙂 اكتب كلمة Randomize في مساعد الاكسس ، وستحصل على الجواب: . ولا تستخدم علامة الناقص في اسماء كائناتك (بل استعمل الشرطه السفليه _ ) ، لأنها في الكود تصبح : . فتضطر الى معالجته بوضع اسم الكائن بين [] : . ولا تستخدم الارقام في تسمية الحقول ، فالاسم لا يظهر في الكود VBE ، مثلا انا طلب الحقل الذي اسمه 1 ، ولكن الكود لا يراه : . ولاحظ ان اخي حسين لم يتعامل مع حقل النموذج مباشرة ، بل تعامل مع الجدول 🙂 وعليه ، وحتى نتعامل مع حقل النموذج ، يصبح الكود : Private Sub cmd_Generate_Random_Click() Dim i As Integer Dim f As Integer Dim e As Integer 'ÇÍÝÙ ÓÌá ÇáäãæÐÌ If Me.Dirty Then Me.Dirty = False f = Me.[f-no] e = Me.[e-no] For i = 1 To 32 Try_Again: Dim MyValue Randomize Timer MyValue = Int((e * Rnd) + f) If MyValue < f Or MyValue > e Then GoTo Try_Again Else Me("[" & i & "]") = MyValue End If Next i End Sub . جعفر
  23. السلام عليكم 🙂 الظاهر انك تتب طريقة خاصة في عمل فاتورة جديدة ، او انك وضعت الكود في حدث آخر !! لأن الكود الذي اعطيتك هو عينا نفس الكود الذي اعطاك الاخ خالد ، والاثنين يعطون تقرير برقم الفاتورة الموجودة في النموذج او النموذج الفرعي !! على العموم ، هذه صورة عن مكان الكود الذي وضعته انا : . وهذا تعديل بسيط لحفظ السجل قبل طباعة التقرير: Dim stDocName As String If Me.Dirty Then Me.Dirty = False stDocName = "re3" 'DoCmd.OpenReport stDocName, acNormal, , "[invo]=" & Me.invo DoCmd.OpenReport stDocName, acViewPreview, , "[invo]=" & Me.invo جعفر
×
×
  • اضف...

Important Information