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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 يمكنك استيراد جميع الكائنات الى قاعدة بيانات واحدة ، ولكن اذا كانت حقول الجداول متشابهة ، ولكن بيانات كل قاعدة بيانات تختلف عن الاخرى ، فالطريقة الصحيحة هي عمل حقل جديد باسم "الموقع" (جميع مسميات كائنات قاعدة البيانات يجب ان تكون بالانجليزية ، حتى يسهل عليك كتابة المعادلات والكودد) ، فتعبئ هذا الحقل لكل قاعدة بيانات (حتى تستطيع ان تميز بيانات قاعدة بيانات عن اخرى) ، ثم تستورد جميع الجداول المتشابهة الى جدول واحد ، ويكون عندك نموذج الرئيسي لا يتم غلقة ، وفيه تختار "الموقع" ، وفي الاستعلامات ، اضف لها حقل "الموقع" ، ثم في المعيار اشر الى اختيارك من النموذج الرئيسي. جعفر
  2. وعليكم السلام 🙂 هذا معناه ان مناداة المكتبة الـ 32بت تحتاج الى تعديل حتى تعمل على الاكسس 64بت الذي منصّب على جهازك الذي تستعمله الآن ، المثال الاخير في هذا الموضوع فيه طلبك: اجعل برنامجك يعمل على النواتين 32بت و 64بت - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  3. اخي الفاضل : الطريقة الصحيحة للحصول على رقم جديد للفاتورة ، هي عن طريق استعمال حقل رقم ، ثم في النموذج تزيد هذا الرقم ، لماذا ؟ هل ستحتاج الى ان يبدأ هذا الرقم من جديد في كل سنة ، او تجعل كل فرع من فروع الشركة يكون له التسلسل الخاص به ، او .... لذا حقل "ترقيم تلقائي" هو الحقل الخطأ لإستعماله في حالتك !! ابحث في المنتدى ، فهذا من المواضيع الكثيرة التداول ، واليك مثال : ترقيم تلقائي يتجدد كل سنة - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  4. الاختلاف يكون بسبب تنسيق نوع الحقل ، او استعمال اوامر تقريب الرقم مثل Round او Int او Abs او ... سواء في الاكسس او الاكسل 🙂 جعفر
  5. وعليكم السلام 🙂 اخوي @ابا جودى عمل مثال شامل وبتفصيل التفصيل لمثل طلبك ، فاقترح تبحث عنه ، لأن سؤالك ظاهرا بسيط ، بس لم تدخل في الاسماء المركبة ، تحصل على اللخبطة 😁 جعفر لقيته : هل من طريقة لاجبار المستخدم علي ادخال الاسم رباعيا - صفحه 2 - قسم الأكسيس Access - أوفيسنا (officena.net) وفي الموضوع ، تلقى هوامير المنتدى يخوضون في بحاره 🙂 جعفر
  6. شكرا جزيلا اخوي ابو خليل 🙂 وانا اطلب من صاحبة الموضوع ان تستخدم قاعدة البيانات اللي عملها اخوي ابو خليل ، وتضيف بعض السجلات يدويا ، حتى نعالج السؤال عن طريق الاستعلام كذلك 🙂 جعفر
  7. فيه طريقة اخرى خطرت على بالي ، بحيث نرجع الى اول مرفق ، ونجعل جميع الحقول المحسوبة في وحدة نمطية ، تكون هناك دالة واحدة رئيسية وفيها جميع الحقول والمعادلات (وهذا سيعطينا المجال ان نفكك معادلات iif الى if ... then مما يجعلها اسرع) ، وهي تنادي Recordset الجدول ولمرة واحدة فقط لكل ID ، وتضع نتائج جميع هذه الحقول في اعلى الوحدة النمطية ، في متغير TempVar (او حتى في متغير عادي متوفرة قيمته للوحدة النمطية) ، في الاستعلام ، هذه الحقول تنادي الدوال الخاصة بها ، والدوال تتأكد من مطابقة ID : فاذا كان جديد ، فيشغل الدالة الرئيسية حتى تعطي جميع النتائج الى المتغيرات ، اذا كانت نفسها ، فالدالة تعطي قيمة المتغير مباشرة الى الاستعلام. فهم الكلام اصعب من فهم الموضوع نفسه 😁 جرب ، واعطنا النتيجة والكود لوسمحت ، وخلينا نستفيد من الكود 🙂 جعفر
  8. اخي الكريم ، هذه صورة من كائنات برنامجك ، فلا تتوقع منا ان نفتحها جميعا ، ثم نجرب الى ان نحصل/نعتقد وجود المشكلة !! ورجاء تخبرنا الخطوات التي تعملها في الكائن ، حتى نحصل نحن على المشكلة ونرى سببها
  9. وعليكم السلام 🙂 المنتدى مليئ بما لذ وطاب ، وخصوصا في هذا الموضوع ، وبعدة طرق ، فما عليك إلا ان تبحث فيه (وللعلم ، انا بحثت قبل ان اضع هذه المشاركة) 🙂 جعفر
  10. للعلم: انا لا اوصي بإستخدام المادة 3 من طريقة عملي ادناه ، فقد تسبب بطئ في برنامجك !! لما تحتاج الى حقول في الاستعلام ، طريقة العمل هي كالتالي: اعمل الاستعلام (مثلا qry_1) وفيه حقول الجدول ، بالاضافة الى بقية الحقول المحسوبة التي ستحتاج اليها خقول محسوبة اخرى ، ثم اعمل استعلام (مثلا qry_2) ، ويكون مصدر الاستعلام هو qry_1 ، وتضع فيه بقية الحقول المحسوبة ، وستبقى بعض الحقول الغير موجودة في الاستعلام ، ولكننا نحصل على نتيجتها من الدالة في الوحدة النمطية ، فعليه ، ننادي هذه الدالة بدل اسم الحقل ، كمل هو موضح في الصورة: . وتشير في الدالة التالية الى هذا الاستعلام الاول : Function make_rst() Set rst = CurrentDb.OpenRecordset("Select * From qry_1") End Function وننادي الاستعلام هكذا: Private Sub cmd_qry_ALL_Click() Call make_rst DoCmd.OpenQuery "qry_2" End Sub جعفر 1364.1.حسابى معدل.accdb.zip
  11. انا نظرت في هذه الدالة فقط ووجدت ام جميع الحقول باللون الوردي غير موجودة في الجدول ، فكيف تتوقع نتيجة منها !!
  12. هذه هي الخطوة الاولى ، وهي عزل الحقول من الجدول والحصول على النتيجة الصحيحة ، والخطوة التالية ، هي ان تبدأ تأخذ الحقول الى الاستعلام ، حقلا حقلا ، وتحذف الدالة لهذا الحقل من الوحدة النمطية ، وتُبقي الحقول اللي تعمل مشكلة في الاستعلام 🙂 جعفر
  13. وعليكم السلام 🙂 مستحيل ان تعمل الحقول يدويا ، لأن كمية الحقول عندك مهولة !! فعملت كود علشان يعمل لي الوحدات النمطية ، وجملة SQL الاستعلام 🙂 تستطيع ان تحذف الجداول Data و Data2 ، انا تركتهم لك علشان تجرب الكود 🙂 يجب استعمال النموذج لتشغيل الاستعلام ، وإلا لن تحصل على نتائج الحقول المحسوبة في الاستعلام !! هذا جزء من الوحدة النمطية الخاصة بالحقول المحسوبة: Option Compare Database Option Explicit Dim rst As DAO.Recordset Dim Calc1 As Long Dim Calc2 As Long ' Function make_rst() Set rst = CurrentDb.OpenRecordset("Select * From Data") End Function Function f_nezara99(ID As Long) On Error Resume Next: rst.FindFirst "[ID]=" & ID f_nezara99 = IIf(rst![nezara] = 0, 0, IIf(rst![gazaat] >= 5, 0, rst![nezara])) End Function Function f_elawa_edafia(ID As Long) On Error Resume Next: rst.FindFirst "[ID]=" & ID f_elawa_edafia = IIf(rst![feaa] = "ادارى", 0, IIf(rst![Name] <> "", 4, 0)) End Function جعفر 1364.استعلام حسابى.accdb.zip
  14. ولو ان هذا المثال لا علاقة له ببرنامجك : - اذا عندك حقل للعملة ، فيجب ان يكون عندك حقل لإسم الدولة (c_Option_1) وحقل لرمز العملة (c_Option_2) - او اذا عندك حقل للمدينة ، فيجب ان يكون عندك حقل لإسم الدولة/المنطقة (c_Option_1) وحقل لإسم المدينة (c_Option_2) وفي يوم من الايام ، ولتصفية معينة ، قد تحتاج الى ان تعمل حقل آخر بإسم c_Option_3 ، وبعدين بتذكرني 🤣 جعفر
  15. مافي مانع ، ولكنك لن تحتاج لها اذا كان ادخال البيانات عن طريق النموذج ، واختيار القيم فيها 🙂 وفي النموذج تعمل كود للتأكد ان الحقل غير فارغ. جعفر
  16. اخي احمد انت بدأت بمخالفة قوانين المنتدى ، بوضع اكثر من سؤال عن نفس الموضوع ، ولم تتواصل في الموضوع السابق !! رجاء المتابعة هناك اريد المساعدة فى استرداد ملفات قاعدة بيانات اكسس - قسم الأكسيس Access - أوفيسنا (officena.net) يُغلق جعفر
  17. ممكن ، مافي مانع ، المهم انه ليس في الجدول ، في الجدول tbl_C ، تقدر تعمل LVL2 لمجموعة الاثنين و LVL3 لمجموعة الثلاثة ، يمكنك استعمال اياً من الاستعلامين ، وهنا يأتي دور التوضيح للمستخدم ، ممكن ان يكون فيه وصف المادة مثلا ، خصوصا اذا كانت الاختيارات تحتاج الى توضيح اكثر ، او انك تكتب فيها ما يساعدك على الاختيار الصحيح 🙂 جعفر
  18. وعليكم السلام 🙂 واهلا وسهلا بك في المنتدى 🙂 رجاء قراءة قوانين المنتدى قبل وضع مشاركات ، حتى تستفيد الاستفادة القصوى من المنتدى ومن وقتك 🙂 انزل البرنامج الذي في المرفق : جعفر
  19. وعليكم السلام 🙂 هناك مجموعة ممنوعات يجب على المبرمج التقيد بها ، واول نقطة في قائمة الممنوعات هي السماح بالمستخدم بادخال البيانات في الجدول مباشرة. البرنامج يحتاج الى مجموعة خطوط حماية ، بحيث لما البيانات توصل للجدول ، يكون المبرمج قد قام بتصفيتها في النموذج او الاستعلام بواسطة الكود او المعايير ، او حتى التحكم في اذا اكثر من شخص ادخل المعلومة في نفس اللحظة : جعفر
  20. لا تأثير 🙂 1. صحيح انك حاليا لا تحتاج اليه ، ولكن قد تحتاج اليه في المستقبل ، 2. لا توجد علاقة بين كم مرة هذا الحقل موجود في الجداول ، مثلا: معلومات الحقل LVL تكتبها مرة واحدة في الجدول tbl_C ، ثم تستعملها لأكثر من جدول. لا تنسى انت فقط تقرأ/تختار من هذا الجدول ، ولكنك تحفظ المعلومة التي تم اختيارها في بقية الجداول ، واذا بعد تجربتك لازلت تحتاج الى توضيح ، ارفق مثال فيه نفس الحقل مكرر في اكثر من جدول 🙂 3. مافي اي مشكلة 🙂 جعفر
  21. وعليكم السلام 🙂 اتبع هذه الخطوات . . . . . . نعمل جدول tbl_Grades وفيه الحقول المطلوبة من ملف الجدول الذي استوردناه من الاكسل . والان نعمل استعلام الحاقي ، لنعبء به البيانات المطلوبة الى الجدول tbl_Grades ، ويجب ملاحظة الصورة اعلاه ، حيث نرى تسميات الجدولين . لنحصل على البيانات فقط ، يجب عمل معيار لأحد الحقول (الحقل الاسهل لي كان حقل obs) ، ونضع امر بإستبعاد السجلات التي لا نريد ان نلحقها في جدول tbl_Grades . والنتيجة نظيفة وجاهزة للإلحاق . . والنتيجة النهائية . جعفر import_from_Excel.zip
  22. السلام عليكم 🙂 عند عمل اي برنامج ، يجب ان تحسب حساب اصعب الظروف لتعديل البرنامج ، لذلك ، ترى الاقتراح بأن يكون برنامجك مقسوم واجهة وجداول ، وعدم استخدام خاصية Lookup في الجدول ، وطبعا هناك اشياء اخرى ، حيث انه: لا يُسمح للمستخدم ادخال البيانات مباشرة في الجدول ، تحت اي ظرف كان ، عادة يكون البرنامج مستخدم من مجموعة مستخدمين في شبكة واحدة ، او من مستخدمين في مواقع ومدن/دول مختلفة ، ليس من السهولة الوصول اليهم لعمل التعديل ، لذا هذه النصائح هي لتسهيل عمل التعديل وارساله للمستخدم ، وبتنصيب البرنامج او وضع البرنامج في مكانه الصحيح ، نجعل البرنامج يعمل بالتعديلات الجديدة وبأقل تدخل من المستخدم ، فإذا كان البرنامج مقسوم واجهة وجداول ، فيمكننا التعديل على الواجهة ، وارسالها للمستخدم ، فيقوم البرنامج بربط نفسه مع الجداول بطريقة تلقائية (طبعا برمجيا نقوم بهذه العملية) ، ويعمل البرنامج بالتعديل ، ولكن السؤال ، كيف ممكن ان نعمل تعديل على الجداول؟ نعم برمجيا ممكن ان نعمل كود في الواجهة لتعديل الجداول ، ولكن هناك خطر كبير على البيانات لسبب او آخر ، ولا تنسى ان قيمة البرنامج في بياناته ، ولعمل التعديل ، يجب ان تكون الجداول مغلقة ، وان الكهرباء لن تنقطع خلال هذا التعديل ، وان لا يأتي حفيدك ويضرب بيده على لوحة المفاتيح ويلخبط الدنيا ، ووووو ، لهذا السبب ، نبتعد عن تعديل الجداول (وهناك من المبرمجين من يضع بعض الحقول الاضافية في الجداول ، ليس لها عمل ، واذا دعت الحاجة لحقل جديد ، فيستخدم احد هذه الحقول المجهزة مسبقا) ، ونجعل التعديل في الواجهة فقط. اما عمل Lookup في الجداول ، فبالاضافة الى صعوبة تغيير مكوناته (لا تقول ما بيحتاج الى تعديل ، كان غيرك اشطر منك ، ووقع في الفخ) ، فالصعوبة الاخرى هي لما تحتاج الي مساعدة في تعديل هذا البرنامج من مبرمج آخر ، فيضطر المبرمج لعمل مجموعة روابط بين الجداول ليصل الى المطلوب (ولازلت اعاني من احد البرنامج المرفوعة في المنتدى لعمل تعديل عليها). هنا يأتي المبتدئ ليقول ، طيب اذا فيه جميع هذه المشاكل ، ليش اكسس اعطانا هذه الخاصية ، والجواب انها مثل بعض الخواص الاخرى التي قد نستخدمها في ظروف خاصة جدا ومحكمة ، مثل الحقل المحسوب وحقل المرفقات. الطريقة الصحيحة لتعوضنا عن Lookup الجداول ، هي وضع هذه القيم في جدول آخر ، ثم بالاستعلام نربط الجدولين لنحصل على اسم القيمة بدل عن رقمها ، ويمكننا عمل جدول منفصل لكل نوع من انواع البيانات وعمل العلاقات بين الجداول(وهي الطريقة المتعارف عليها ، وهي الطريقة التي انت قمت بعملها) ، وهناك طريقة اخرى ، وهي دمج جميع هذه البيانات في جدول واحد (وبدون علاقات بين الجداول) ، وانا اقترح عليك هذه الطريقة. هكذا يكون الجدول . ولما نريد بيانات Type1 ، نعمل الاستعلام ، سواء استعلام بحد ذاته وله اسم ، او استعلام في اعدادات مصدر الصف ، حقل مربع التحرير والسرد ComboBox أو مربع القوائم ListBox . فنحصل على (وطبعا يمكنك اخفاء حقل الاسم لأنه غير لازم) . وهنا في النموذج/التقرير ، نستعمل حقل مربع التحرير والسرد 🙂 جعفر 1359.MusndWZwayid.accdb.zip
  23. استعلام لهاي . واستعلام لهاي . والنتيجة
×
×
  • اضف...

Important Information