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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    415

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

  1. وعليكم السلام 🙂 1. اختار جميع الحقول اللي تريد لونها يتغير ، ثم انقر على زر التنسيق الشرطي من القائمة اعلاه . 2. اعطي نفس التنسيق الذي ذكرت لجميع حقول الموظف . شكرا اخوي ناقل ، استفدت من كلماتك 🙂 جعفر
  2. وعليكم السلام 🙂 عملت بحث ، ولقيت العديد من المواضيع ، وهذا منهم: جعفر
  3. وعليكم السلام 🙂 غالبا هي مشكلة في اعدادات لغة unicode الوندوز . فإذا كان برنامجك بالعربي ، فاختار احد الدول العربية ، واذا كان البرنامج بالفرنسي ، فاختار فرنسا ، وهكذا ... جعفر
  4. السلام عليكم 🙂 علاقة الجدولين عندك: . 1. تفرض ان جميع بيانات الحقل ProductBarcode يجب ان تكون موجودة مسبقا في الحقل Items_Code ، 2. ولكنك لم تفرض تغيير/تحديث بيانات الحقل ProductBarcode عندما تتغير/تتحدث بيانات الحقل Items_Code ، 3. ولم تفرض حذف بيانات الحقل ProductBarcode عندما تحذف بيانات الحقل Items_Code ، لذلك ، فلما يكون عندك سجل في الجدول inventory Transaction ، ولا توجد بيانات في الحقل ProductBarcode : أ. فهذا لا يعني ان الحقل ProductBarcode لا توجد به قيمة ، بل ان قيمته Null او لا شيء (وهي قيمة في وجهة نظر قاعدة البيانات) ، ب. ولما تُدخل سجل جديد في الجدول Items ، وتترك الحقل item_code بدون قيمة (بل ان قيمته Null او لا شيء في وجهة نظر قاعدة البيانات) ، ج. وبسبب علاقة الجدولين ، تتم مقارنة بيانات الحقلين ، ويكونان متساويين ، ويكون هناك ارتباط بينهم ، د. فقيمة هذا الحقل لا يمكن تغييرها في اي من الجدولين ، لأنك لم تطلب ذلك في العلاقات (انظر رقم 2 اعلاه) (جرب واعمل سجل فارغ في الجدولين ، وبدون اي قيمة في الحقلين ، ثم حاول تغيير قيمة productBarcode او قيمة Item_Code ، فستحصل على نفس رسالة الخطأ التي كانت تأتيك سابقا. اذن الحل: اولا: عدم ترك اي سجل في الجدولين، تكون قيمة الحقلين اعلاه فارغة 🙂 ثانيا: الحل الآخر هو تغيير نوع العلاقة ، بحيث تسمح لتغيير/تحديث بيانات الحقلين: . وبهذه الطريقة ، سيمكنك مواصلة العمل في برنامجك كما هو ، ولكن انتبه ، وبسبب العلاقة الجديدة ، فلما تُدخل قيمة في الحقل الفارغ items_code ، فستقوم بتعبئة جميع الحقول الفارغة في ProductBarcode ، وهذه كارثة !! . في الواقع الحل الوحيد هو اولا ، لأنه حتى ولو انك تستطيع ان تسيطر على الحل ثانيا ، ولكن اذا استعملت البرنامج في شبكة ولأكثر من مستخدم ، فستتلخبط الارقام 🙂 هذا بالنسبة للعلاقة ، والآن فلنرى لماذا تكون لدينا حقول فارغة : الكود خلف زر الحفظ هو السبب ، فلم تكن تحفظ رقم الباركود مع السجل ، لهذا السبب ، يجب حذف زر "انشاء باركود" ، وضم كوده الى كود الحفظ ، ليصبح كود زر الحفظ كالتالي: Private Sub P4_Click() [Items_Code] = DLookup("[باركود]", "barcodeOnSName", "[Items_ID]=[Item_Supplier_ID]") DoCmd.RunCommand acCmdSaveRecord '<== احفظ البيانات فقط 'DoCmd.Save <== هذا الامر معناه احفظ تصميم النموذج، وليس حفظ البيانات 'DoCmd.RefreshRecord <== يمكن استعمال هذا الامر للحفظ ، ولكنه يحفظ البيانات ، ثم يقرأها من الجدول مرة اخرى ، لهذا السبب يحدث وميض في النموذج Ms$ = "تم التسجيل الصنف بنجاح" Ti$ = "رسالة تنبيه اضافة صنف جديد" Re = MsgBox(Ms$, 64, Ti$) End Sub جعفر
  5. نعم ، حسب بيانات مايكروسوفت في الملف Win32API_PtrSafe والمرفق في اول مشاركة لي 🙂 جعفر
  6. جرب هذا احذف هذه الاسطر #If VBA7 Then Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As LongPtr) As Long #Else Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long #End If واستبدلها بهذا Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias _ "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long فيه تعديل في السطر الاخير ، فلا تستعمل السطر اللي عندك ، وانما اعمل نسخ للسطر الذي كتبته لك اعلاه 🙂 جعفر
  7. ظاهرا هناك خلل في نسخة الاوفيس المستخدمة ، فجرب ان تعمل لها تحديث ، او جرب نسخة اخرى فيها جميع تحديثات الاوفيس 🙂 جعفر
  8. المشاركة اعلاه فيها طلبك: جعفر
  9. بالصحة والعافية 🙂 جعفر
  10. الله يسلمك ويعافيك اخوي موسى 🙂 مو اخبار الشواء هالعيد 😋 جعفر
  11. وعليكم السلام 🙂 عيدك مبارك اخوي عبدالله 🙂 1. هناك مكتبات تعمل على النواتين ، فقط تضيف PtrSafe لما تصرح عن المكتبة باستعمال Declare ، 2. وهناك مكتبات تحتاج الى تصريح خاص لنواة 32بت ، وتصريح آخر لنواة 64بت ، 3. وهناك مكتبات لا تعمل على 64بت ، ولا تعطي خطأ ، وهذه يجب ان تجد البديل لعملها او طريقة اخرى للقيام بما تريد. اما ان البرنامج يعمل لفترة معينة ثم يُغلق ، فلم اسمع عنها !! ارفق المكتبة ، والجزئية التي تستعملها في البرنامج ، وخلينا نشوف طريقة المثلى للتعامل معاها 🙂 جعفر
  12. استخدم ملفاتك الاصليه ، افصل الشبكة واشتغل من كمبيوتر ثاني ، وبتظهر لك المشكلة. اساس المشكلة مو الاكسس ، وانما الوندوز ، فلما حفظت/غيّرت اسماء ملفاتك يدويا ، الوندوز اضاف هذه العلامات اللي ما تنشاف بالعين ، او يمكن انت بدأت تكتب اسم الملف ، واتضح لك انك تكتب بالعربي ، فحذفت الكلمات العربية ولكنك لم تحذف اسم الملف كاملا ، وبقيت التشكيلات التي لا تراها ، ثم واصلت بكتابة الاسم بالانجليزي !! برنامجك يقرأ اللي الوندوز اعطاه 🙂 وابويا انا عليك موسى ، صح كنت مستعجل ، لكن ما متدوده ، صاني قلت لك: جعفر
  13. وعليكم السلام 🙂 وبعد ان اصلحت يدويا في الجدول مسارات قواعد البيانات ، شفت 3 ملفات ما يشوفها البرنامج : . للتأكد ان الاسم والمسار صح في الجداول ، مقارنه مع مكان الملفات: . اخذت اسم الملف الغير ظاهر في النموذج اعلاه (ما كتبته ، وانما عملت له نسخ ولصق) ، علشان يصير عندي المسار كاملا مع اسم الملف : . والصقته في VBE ، واذا المشكلة ممتدة الى اسماء الملفات كذلك : . وانا على سفر اليوم العصر ، فما بالحق اجرب اكثر ، للأسف 😞 على العموم ، انا قمت بتعديل مرفقك اعلاه ، فاللي يجي ورائي ان شاء يقدر يجرب مباشرة 🙂 ولكن ، بغض النظر ، فعملك جبّار وواضح فيه لمسات جميلة ، والكثير ممكن يستفيد منه 🙂 جعفر
  14. وعليكم السلام اخوي موسى 🙂 فتحت البرنامج ، ورحبت بي رسالة خطأ . هذا الرابط يوضح لك ما هي المشكلة . جعفر
  15. في الواقع هذه هي طريقة عمل الامر Hyperlink !! ولا يمكن التغلب على الرسالة عن طريق DoCmd.SetWarnings False ، لأنها الوندوز وليست رسالة الاكسس ، فالطريقة الوحيدة التي اعرفها هي استعمال اوامر اخرى مثل الامر Shell لتنفيذ المهمة بدل عن HyperLink 🙂 طبعا يمكنك عن طريق الريجستري ان تلغي ظهور هذه الرسالة ، ولكن هل ستقوم بهذا على كمبيوتر العميل كذلك !! جعفر
  16. وعليكم السلام ورحمة الله وبركاته 🙂 الله يطول في عمرك احوي ابو عبدالله ، هذه رسالة خطأ ، ولا علاقة لها برسائل أمان الاكسس !! الرسالة تقول انها ما تقدر تفتح المسار الموجود في الرسالة ، فاذا ارجت ان تفتح مسار او تفتح ملف ، فتأكد بأن المسار صحيح : . جعفر
  17. في البرنامج الموجود عندك ، افتح التقرير في وضع الثصميم ، وفي اعدادات Order By ، رجاء تحذف الموجود هناك ، وتحفظ التقرير ، ثم تجربه مرة اخرى. انا نادرا ما استعمل On Error Resume Next ، وانت ما شاء الله تستعمله في كل حدث!! لهذا السبب ، لم احصل على خطأ لما شغلت التقرير من الكود ، وانما تحصل على الخطأ لما تفتحه مباشرة. الامر On Error Resume Next لا يجعلك ترى اي خطأ ، بينما في واقع الامر تكون هناك اخطاء ، ولهذا السبب ترى ان البرنامج لا يعمل بطريقة صحيحة ، ولن تعرف السبب. 1492.not in select.accdb.zip
  18. تفضل ، البيانات تم اخذها من النموذج كما اشرت في مشاركتي السابقة (طبعا النموذج لازم يكون مفتوح وتكون فيه البيانات) : . جعفر
  19. وعليكم السلام 🙂 مثل ما قال اخوي موسى ، استعمل جدول 🙂 يعتمد على طبيعة هذه الارقام : 1. فاذا كانت موجودة في جدول ، فاعمل حقل اضافي في الجدول ، فلنسمية Printed ونوعه نعم/لا ، 2. واذا هذه الارقام مو موجودة في جدول ، فاقترح عمل جدول خاص لهذا الغرض ، يكون فيه الرقم التسلسلي ، وحقل Printed ، وعليه : 1. قبل امر الطباعة ، تتاكد بأنه لم يتم طباعة الرقم ، فالمعيار يكون الرقم التسلسلي ، و Printed <> -1 ، 2. وبعد امر الطباعة ، مباشرة تعمل تحديث للجدول ، فالمعيار يكون الرقم التسلسلي ، والتحديث Printed = -1 ، جعفر
  20. مثل ما اخبرتك ، انا لا افهم فرنسي ، فإذا تحب تنتظر ممكن احد الشباب اللي يعرف فرنسي ممكن يساعدك 🙂 ولكن ، ما يضرك ان تجرب ما اقترحته عليك 🙂 وتم تعديل اسم الموضوع ليجذب الشباب 🙂 جعفر
  21. تفضل : الاستعلام: موظفين_القسم2 SELECT mowadfen.الرقمالوظيفي, mowadfen.يعمللان, mowadfen.الاسم, mowadfen.القسم FROM mowadfen LEFT JOIN كشف_رواتب_القسم ON mowadfen.الرقمالوظيفي = كشف_رواتب_القسم.الرقمالوظيفي WHERE (((mowadfen.يعمللان)="يعمل") AND ((mowadfen.القسم)=[Forms]![hodorenseraf1]![درجالقسم]) AND ((IIf([كشف_رواتب_القسم].[الرقمالوظيفي]=[mowadfen].[الرقمالوظيفي],-1,0))=0)); جعفر 1492.not in select.accdb.zip
  22. وعليكم السلام 🙂 بما اني لا افهم فرنسي ، ولكني رأيت كلمة OLE ، فعادة الحل يكون كما في المرفق: جعفر
  23. وعليكم السلام ورحمة الله وبركاته 🙂 لو وضعت العمل اللي عملته انت ، علشان نصلح عليه ، ولكن هي 3 اوامر بالترتيب الذي تريد ، ضعها تحت بعضها البعض ، وسيتم تنفيذها 🙂 جعفر
  24. وعليكم السلام 🙂 في حدث بعد الاختيار من الحقل the_city ، اعمل هذا الكود : Private Sub the_city_AfterUpdate() Me.Requery Me.forme2.Requery End Sub . واما الاستعلام q2 ، فسيصبح : . Not In (Select [الرقم_الوظيفي] from q1) جعفر
×
×
  • اضف...

Important Information