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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 حيا الله اخوي محمد 🙂 في الواقع عمل هذا النوع من المجاميع في الجدول او الاستعلام ، يبطئ عمل الجدول والاستعلام ، ولا ارى فائدة منه ، إلا اذا تسمح للمستخدم ان يرى البيانات في الجدول ، وهذه كارثة 😱 جعفر
  2. وتكملة لكود اخي المهندس قاسم ، في حال لم يكن هناك صورة في المسار: Private Sub Form_Current() on error goto err_Form_Current Dim Path As String Path = Application.CurrentProject.Path & "\img\" Me![صورة0].Picture = Path & "1.jpg" Exit_Form_Current: exit sub err_Form_Current: if err.number=2220 then 'No image in path Me![صورة0].Picture = "" resume next else msgbox err.number & vbcrlf & err.description resume Exit_Form_Current end if End Sub جعفر
  3. وعليكم السلام 🙂 علشان تختار اكثر من اسم ، عندك اختيارين: 1. السجل تعمل فيه حقل iSelect من نوع نعم/لا ، ثم تعمل نموذج مستمر ، ويمكنك ان تختار اكثر من سجل/اسم. 2. تعمل مربع خيار ListBox ، ثم تجعل خيارات . فتستطيع بالنقر مرة على الاسم ان تختاره او تلغي الاختيار . وتضع احد الاختيارين في نموذج رئيسي ، وتعمل بقية الحقول المطلوبة ، والتي لا تكون مرتبطة بجدول ، وبعد اختيار الاسماء وتعبئة الحقول ، يكون عندك زر لتفريغ هذه البيانات في الجدول لهذه الاسماء ، سواء ان تُلحق سجل جديد ، او تعمل تحديث لسجل موجود ، كود الزر يعمل حلقة دوران للاسماء ، ويُدخل بيانات الحقول 🙂 جعفر
  4. وعليكم السلام ورحمة الله وبركاته 🙂 . 1. سبب ظهور هذه الرسالة هو ان برنامج الاكسس على كمبيوتر المكتب (الكمبيوتر الذي عملت عليه البرنامج) ، فيه نسخة احدث من نسخة البيت ، القاعدة العامة هي: اعمل برنامجك على اقل/اصغر/اقدم نسخة ممكنه ، حتى تستطيع النسخ الاكبر/الاحدث ان تفتحه في وضع التصميم. 2. المفروض ان لا يحدث هذا (ولا علاقة لهذا باختلاف النسخ) ، فأكيد هناك كود او استعلام يقوم بهذا !! جعفر
  5. وعليكم السلام 🙂 عندك طريقتين لكي "تحدد اليوم الذي يريدة الذي يبدأ الشهر منه" : 1. المعيار في الاستعلام مباشرة (يجب ان تكون الكتابة نفسها في المكانين) : . ولما نستخدم الكلمات العربية : . هذا هو الكود: Between [Please enter FROM date] And DateAdd("m",1,[Please enter FROM date])-1 . 2. في النموذج frm_Main في الحقل Date_From : فيكون المعيار في الاستعلام : . Between [Forms]![frm_Main]![Date_From] And (DateAdd("m",1,[Forms]![frm_Main]![Date_From])-1) . وهذا الكود DateAdd("m",1,[Forms]![frm_Main]![Date_From]) معناه اضف : m = شهر 1 = المدة التي نريد ان نضيفها [Forms]![frm_Main]![Date_From] = على هذا التاريخ فيعطينا شهر واحد بعد هذا التاريخ ، ولكنك تريد شهر ناقصا يوم واحد ، لهذا السبب نضيف 1- في نهاية الامر جعفر
  6. وعليكم السلام 🙂 اخي عمر ، هذا سؤالك ، وكلما وضحته اكثر ، وبأمثلة ، سترى ان رد الاعضاء اسرع وادق 🙂 سؤالك مافيه سؤال ولا شرح وانما مجرد نموذج والسلام !! جعفر
  7. السلام عليكم 🙂 هذه الرسالة تظهر بسبب اعدادات اللغة الداعمة لـ Unicode في كمبيوترك ، وهكذا تغيرها ، ليشتغل برنامج @Eng.Qassim : جعفر
  8. حيا الله دكتور حلبي 🙂 في الواقع هذا سؤال لا حدود له ، فكل شيء في برنامجك وبرمجتة ، يصب فيه !! وفي كل مشاركة اضعها ، اشرح فيها ميزاتها وعيوبها 🙂 خذ مثال من الموضوع الذي نحن به الآن: عادة في استعمال الامر Recordset : المبرمج عادة يستعمل Set rst_fy = currentdb.openRecordset("Select * From tbx") بينما انااستعملت Set rst_fy = Forms!fxy!fy.Form.RecordsetClone . والاثنين يعطون نفس النتيجة ، ولكن الفرق بينهم كبير ، فالطريقة الاولى ، البرنامج يذهب الى الجدول لأخذ جميع بياناته ، ووضعها في المتغير rst_fy ، بينما مفهوم الطريقة الثانية: بما ان النموذج الفرعي fy عند فتحه ، فقد اخذ جميع بياناته من الجدول ، مفلترة وجاهزة ، فلماذا اشغل الشبكة والجدول بأخذ البيانات منه مرة اخرى ، بينما يمكنني اخذ هذه البيانات من النموذج مباشرة ، فهو اسرع (لأنه على كمبيوتري) ، ولا يشغل الشبكة او الجدول 🙂 وهذا مثال اشرح فيه كيف البرمجة لها تأثير في سرعة عمل الاستعلام : جعفر
  9. هناك عدة طرق للتعامل مع رسائل الخطأ ، الطريقة اللي انا استعملها ، هي اصطياد رقم الخطأ ، ثم التعامل معه ، فعليه ، يصبح الكود : Option Compare Database Option Explicit Dim rst_fy As DAO.Recordset Dim rst_n As Integer ' Private Sub xxx_Click() On Error GoTo err_xxx_Click 'take the Recordset one time, use it many times If rst_n = 0 Then Set rst_fy = Forms!fxy!fy.Form.RecordsetClone rst_n = 1 End If rst_fy.MoveFirst rst_fy.FindFirst "yyy='" & Me.xxx & "'" If rst_fy.NoMatch Then MsgBox "لا يوجد تطابق" Else MsgBox "يوجد تطابق" Me.Parent!fy.Form.Bookmark = rst_fy.Bookmark Me.Parent!fy.SetFocus End If Exit_xxx_Click: rst_fy.Close Exit Sub err_xxx_Click: If Err.Number = 3021 Then 'No data Resume Exit_xxx_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub Private Sub Form_Close() Set rst_fy = Nothing End Sub . اما التنسيق الشرطي الذي يمكن استعماله هنا ، فيكون ابسط : . فيه ملاحظة كتبتها بالانجليزي في الكود ، وعليه قمت بهذا العدد من الاسطر ، بالاضافة الى سطر تعريف المتغير Dim rst_n ، بينما كان ممكن ان اكتب سطر واحد من Set rst_fy = Forms!fxy!fy.Form.RecordsetClone والسلام : . السبب هو : رجاء ، لما تشتغل على اي برنامج ، ابدا لا تنظر للبرنامج بعدد بياناته الآن ، وانما انظر كأنك تتعامل مع 10 او 100 الف سجل ، لهذا السبب رفعت قاعدة بيانات للتجربة: . فلما عندك كود تريد تجربه ، ممكن تجربه على هذا العدد الهائل من البيانات ، فعليه ستعرف اذا الكود الذي عملته بطيء او سريع. لما تستخدم الامر Recordset او RecordsetClone ، فانت تأخذ نسخة من بيانات الجدول/الجداول (اذا كان استعلام) ، وتُبقي هذه البينات في ذاكرة الكمبيوتر المؤقته Ram ، فيصبح التعامل مع البيانات من الذاكرة مباشرة ، لذلك من المهم ان تحذف البيانات لما تنتهي من استعمالها ، وعادة نعمل هذا في آخر الكود بالامر Set rst_fy = Nothing . في حالة برنامجنا اعلاه ، في الكود الذي وضعته انا ، فأنا أخذ بيانات الجدول مرة واحدة فقط ، ويبقى في الذاكرة الى ان نغلق النموذج ، فنحذفه من الذاكرة ، ولكن الكود الذي وضعته انت ، فأنت تأخذ البيانات من الجدول كلما تدخل في الكود (لا تنسى قد تكون الجداول في الشبكة ، وقد تكون سجلات الجدول كبيرة) ، وهذا يجعل البرنامج ابطئ !! جعفر
  10. حياك الله 🙂 عملت تغيير طفيف في الكود اعلاه ، حتى يصبح اسرع ، واخف على الكمبيوتر 🙂 جعفر
  11. تفضل 🙂 ضع هذا الكود في النموذج fx Option Compare Database Option Explicit Dim rst_fy As DAO.Recordset Dim rst_n As Integer ' Private Sub xxx_Click() 'take the Recordset one time, use it many times If rst_n = 0 Then Set rst_fy = Forms!fxy!fy.Form.RecordsetClone rst_n = 1 End If rst_fy.MoveFirst rst_fy.FindFirst "yyy='" & Me.xxx & "'" If rst_fy.NoMatch Then MsgBox "لا يوجد تطابق" Else MsgBox "يوجد تطابق" Me.Parent!fy.Form.Bookmark = rst_fy.Bookmark Me.Parent!fy.SetFocus End If rst_fy.Close End Sub . جعفر
  12. بشرك الله بالخير دائما 🙂 همم ، هذه غلطة الدكتور ، ارسل له الفاتورة 😁😅 بالفعل شكرا دكتور حسنين 🙂 جعفر
  13. اذا تغير النماذج الفرعية ، بدل ان تكون نموذج بيانات الى نموذج مستمر ، فالحل سيكون اسهل للجميع 🙂
  14. وعليكم السلام 🙂 عملتها بطريقة تختلف ، عن طريق التنسيق الشرطي: في النموذج fy اضفت حقل مخفي غير مربوط بمصدر بيانات ، اسميته tmp_yyy وفي التنسيق الشرطي للحقل yyy استعملت : . بينما في النموذج fx ، وعلى حدث الحالي ، ارسل قيمة الحقل الذي انقر عليه ، الى الحقل tmp_yyy في النموذج fy : Private Sub Form_Current() On Error GoTo err_Form_Current Me.Parent!fy!tmp_yyy = Me.xxx Exit_Form_Current: Exit Sub err_Form_Current: If Err.Number = 2455 Then 'could not see othe Form on startup Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 1470.fxy.accdb.zip
  15. مع ان هذا يُعتبر مخالف لقوانين المنتدى: 21. يُمنع منعا باتا الإجابة على سؤالك أو أي حوار فني على الخاص أو إلى بريدك الخاص، الفائدة يجب أن تعم. ولكننا سننظر له على ان نتائج هذه المساعدة سوف تستفيد منها في تنقيح برنامجك ، وستلخص لنا النتيجة هنا ، حتى يستفيد الجميع من ذلك 🙂 جعفر
  16. رجاء لما تستطيع ان تجعل الاداة تعمل barcodex.ocx على النواتين 32 بت و 64 بت ، رجاء تخبرنا الطريقة حتى نستفيد كذلك 🙂
  17. تم تعديل المرفق في الرابط التالي ، وبه الخط (الذي يجب وضعه في مجلد الخطوط في الوندوز C:\Windows\Fonts) والمرفق يحتوي على مثال بصيغة mdb جعفر
  18. وعليكم السلام ورحمة الله وبركاته 🙂 هذه من المواضيع المستجدة علينا مبرمجي الاكسس ، والوصول الى اماكن مخصصة لمبرمجي البرامج الاخرى ، بينما كل اللي نحتاج له هو وسيط او حلقة وصل مثل ما تفضلت به دكتور حسنين ، شكرا جزيلا 🙂 انزلت المرفق وتابعت الفيديو ، وتوقفت عند التسجيل (عندي مشروع لازم اسلمه بسرعة 🙂 ). جعفر
  19. جوابي كان لمشكلتك ، وهو لذلك اعطيتك حل ، وهو في الرابط ، والطريقة في استعمال الخط (code 3 de 9) ، وهو يعمل على النواتين. هذه ليست حل ، وانت محظوظ ان عملائك يسمحون لك بهذا العمل المكلف لهم !! جعفر
  20. صحيح اني ما استعمل Adobe Acrobat Reader ، ولكني استخدم Foxit PDF Reader والظاهر انهم الاثنين يؤدون العمل ، ويسمحون بإظهار الملف في المتصفح في النموذج . جعفر
  21. انا انزلت الملف من الرابط اعلاه ، ووضعت بعض ملفات pdf حسب الاسماء الموجودة في البرنامج ، واشتغلت الملفات 🙂 ولا يوجد عندي Acrobat Reader في الكمبيوتر 🙂 جعفر
  22. وعليكم السلام 🙂 صحيح انك تستطيع تسجيل هذه الاداة وبدون اخطاء في الاوفيس 64بت ، ولكنها لم تعمل معي !! رجاء مراجعة الرابط ، حيث تم مناقشة الموضوع ، والحل جعفر
  23. كلنا في الانتظار ، مو بس اخوي ابوخليل 🙂 جعفر
  24. وعليكم السلام 🙂 بالاضافة الى فتح ملف pdf خارج الاكسس ، يمكننا فتح الملف داخل نموذج الاكسس ، ويكون اسرع في التحميل: . و جعفر
×
×
  • اضف...

Important Information