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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وعليكم السلام اخي خالد 🙂 اهلا وسهلا بك في المنتدى 🙂 رجاء قراءة قوانين المنتدى ، حتى تستفيد الاستفادة الكاملة منه 🙂 ورجاء الرفاق الذي عملته ، حتى يكون الرد على برنامجك مباشرة 🙂 جعفر
  2. الخطوات اللي اتبعتها : 1. إلغاء اخذ القيمة الافتراضية من اعدادات الحقل : . 2. عملنا وحدة نمطية لعمل التسلسل ، ونناديها كلما احتجنا الى اضافة رقم جديد : . 3. والسر في نجاح هذه العملية ، هي حفظ السجل مباشرة بعد اخذ رقم التسلسل الجديد : . جعفر 1282.InvoiceSale_6.accdb.zip
  3. بهذه الطريقة الطبخة تخترب !! انا عملت على الكود اللي ارفقته انت ، ولكن الآن يجب ان ارى الكود بالكامل ، مع المودل ، وبتسلسل الاحداث ، حتى تتضح الصورة بالكامل 🙂 جعفر
  4. وعليكم السلام 🙂 هذا الرابط في التصدير الى الوورد . اما التصدير الى الاكسل . او . جعفر
  5. 1. سبب زحف الكائنات من مكانها ، وتغيير حجمها : اذا عندنا هذا النموذج : . وبعد تشغيله يصبح (لاحظ الزرين ليسوا في اماكنهم ، والزر اللي تحت صار حجمه اكبر) : . نشوف مكان تثبيت الزر العلوي ، ونلاحظ انه في اقصى يمين النموذج ، من الاعلى ، وبحجمه العادي : . بينما الزر الآخر ، نرى ان تثبيته في اسفل النموذج ، وفي منتصف النموذج ، وحجمه مسحوب : . علشان نرجعهم يعملوا مثل المكان اللي في وضع التصميم ، نختار جميع كائنات النموذج ، ونجعل تثبيتهم من اليسار الاعلى ، او اي شيء تراه مناسب : . 2. اما اذا اردت تغيير احجام الكائنات ليتناسب مع حجم الشاشة ، فالرابط التالي فيه مقصدك : جعفر
  6. اعذرني اخوي القاضي ، بس خلينا نشوف ايش بالضبط اللي عملته ، وايش هذه الرسائل 🙂 لأني انا شخصيا صادفت هذه المشكلة في احد برامجي (من ايام زمان 🙂 ) والحل اللي اعطيتك كان الحل 🙂 جعفر
  7. ممكن نعرف ايش كانت المشكلة ، وكيف تم الحل ، حتى يستفيد الجميع 🙂 شكرا جعفر
  8. السلام عليكم 🙂 شوف هذا الموضوع ، ممكن نستفيد منه كهيئة عامة ، ونعمل على تفاصيله ليتناسب مع طلبك : . جعفر
  9. وعليكم السلام 🙂 رجاء ارفاق مثال بسيط بقاعدة بيانات ، وسيكون ذو فائدة كبيرة للحل 🙂 جعفر
  10. وعليكم السلام 🙂 الحل بأن تضع هذا الكود في حدث ، وبعد اخذ الرقم التالي مباشرة تحفظ السجل ، وعلى افتراض ان اسم الحقل هو Sinf ، يصبح الكود هكذا : بدلا عن =IIf(IsNull(DMax("[id]";"items")+1);1;DMax("[id]";"items")+1) استخدم if len(me.Sinf & "")=0 then me.Sinf = nz(DMax("[id]","items"),0) +1 docmd.runcommand accmdsaverecord end if . جعفر
  11. قد يكون الاخ عبدالعليم cckills2010 لم يأخذ النسخة الاخيرة من الملف ، من هنا : https://www.officena.net/ib/topic/63134-احضار-محتويات-فولدر-خارجى-الى-البرنامج/?do=findComment&comment=505661 فقد تم تعديل مجموعة اشياء فيه ، وكود الحصول على امتداد الملف يقرأ الاسم من النهاية بإستخدام الدالة InStrRev : FileExt = Mid(strFileNames(i), InStrRev(strFileNames(i), ".") + 1) . وصورة الملف الذي به خطأ ، الاسم ليس به نقاط ، مما يجعلنا ننظر الى امرين آخرين ، هل اسم الملف/المسار : 1. فيه الخطأ الموجود كما تم شرحه هنا : . 2. بسبب وجود مسافات فارغة في الاسم/المسار ، ولحل هذا الخطأ ، يجب علينا وضع المسار/الاسم بين "" ، هكذا : File_Path = chr(34) & File_Path & chr(34) حيث ان Chr(34) = " . جعفر
  12. وعليكم السلام اخي يوسف 🙂 واهلا وسهلا بك في المنتدى 🙂 رجاء مراجعة قوانين المنتدى للإستفادة القصوى من المنتدى : https://www.officena.net/Tips/Questions.htm لوسمحت تشرح طلبك اكثر ، فالطلب غير واضح ، وياريت صورة من المكان اللي فيه المشكلة 🙂 جعفر
  13. 1. كيف تقوم بربط الاكسس بعدة محافظات ؟ في حال ان جميع هذه المحافظات تخزن البيانات في نفس قاعدة البيانات "الاكسس" ، اي انها مشتركة بينهم بطريقة ما ، فنعم الافضل لك الانتقال الى SQL Server ، لأن الاكسس معمول لشبكة صغيرة متصلة بأسلاك الشبكة ، ولا يكون الاتصال عن طريق wifi ولا الانترنت ، ولكن وقبل الانتقال الى SQL Server ، قم بتغيير القرص الصلب الى SSD سريع وشوف اذا السرعة اصبحت معقولة ، فهذا الخيار هو الاسرع والاقل تكلفة (وقتا وقيمةً) ، وانا اقول لك هذا من تجربة ، في عمل مثل العمل الذي تقوم به شركتك ، بحوالي 10-15 مستخدم ، ولم يكن هنا اي بطئ في البرنامج ، 2. اذا لم تغير الاستعلامات الى stored procedures ، فلن تستفيد من سرعة الـ SQL Server ، وقد يكون البرنامج ابطأ ، 3. هذا صحيح ، حتى ولو تم وضع الاكسس على السيرفر ، فسيكون في مجلد مشاركة كذلك ، ولكن السيرفر الحقيقي فيه قوة في اجهزته وطريقة عمل التخزين Raid ويكون المعالج CPU بطاقة كبيرة وبه يتفرغ اكثر للبرامج ، والمستخدمين. لا تفهم من كلامي اني احاول احباطك من الانتقال الى SQL Server ، ولكني لا اريدك ان تعتقد بأنك ممكن تنتقل بسهوله وكل شيء سيكون مثل ما حلمت به !! نصيحتي هو ان يواصل المستخدمين العمل على الاكسس (بعد تغيير قرص الجداول الى SSD) ، وتبدأ العمل على برنامجك على SQL Server ، وتحل المشاكل اللي تظهر لك ، الى ان تصل الى مرحلة تكون راضي عنها ، وخلالها تكون قد تعرفت على طريقة عمل SQL Server والسيرفر 🙂 جعفر
  14. وعليكم السلام 🙂 الرابط التالي فيه مجموعة روابط لربط الاكسس بالـ SQL : . ولو اني غير مؤهل للرد على هذا السؤال ، بسبب اني لم اقم بالربط ، ولكن عندي معلومات قد تفيدك 🙂 1. أ. اذا كانت بيانات SQL Server على سيرفر حقيقي على الشبكة ، بينما بيانات وجداول الاكسس على كمبيوتر في مجلد مشاركة على الشبكة ، فهذه المقارنة غير عادلة ، فعمل السيرفر يكون افضل بكثير من مجلد مشاركة ، ولو وضعت الاكسس على سيرفر حقيقي فستلاحظ ان الاكسس اصبح اسرع ، ب. حتى اذا استعملت مجلد مشاركة ووضعت فيه بيانات وجداول الاكسس : تأكد بأن المجلد ليس على القرص الذي به تنصيب الوندوز (انا قلت القرص وليس البارتيشن) ، لذا يجب ان تكون الجداول على قرص آخر في الكمبيوتر ، واذا اردت افضل الاقراص ، فعليك بقرص SSD ، فالسرعة ستكون واضحة ، وهناك بعض انواع الـ SSD الاسرع من الأخرى ، ج. معظم مشاكل بطئ الاكسس تكون بسبب عدم وجود فهرسة للحقول: اللي فيها علاقة بين الجداول : سواء في نافذة العلاقات ، او في الاستعلام ، او في ربط النموذج الرئيسي بالنموذج الفرعي ، او التقرير الرئيسي بالتقرير الفرعي ، اللي تستعمل كمعيار ، سواء في الاستعلام ، او في الكود ، د. نقل البيانات من جداول الاكسس الى جداول الـ SQL Server : لن يجعل برنامجك اسرع ، بل قد يجعله ابطأ ، لذلك يجب عليك عمل استعلاماتك على SQL Server بـ stored procedures ، يجب حذف اوامر الاكسس من الاستعلام ، والاوامر التي لا تعمل في SQL Server ، مثل NZ ، واخواتها Dlookup ، و اوامر اخرى ، الـ SQL Server لا يعطيك جميع سجلات الجدول في الاستعلام (الاكسس يعطيك جميع السجلات) ، لذا يجب عمل تغيير في البرنامج ليتناسب مع هذا السياق ، 2. نعم : في الاكسس: باستعمال SSMA الذي يأتي مع SQL Server ، تنصيب برنامج SSMA :https://docs.microsoft.com/en-us/sql/ssma/access/sql-server-migration-assistant-for-access-accesstosql?view=sql-server-ver15 انت تعمل جداولك في SQL Server ثم تستورد البيانات فقط من الاكسس ، سواء بالنسخ/لصق (يجب التأكد من هذه الخطوة) ، او عن طريق استعلام الحاقي ، ولكن وقبل نقل البيانات بين البرنامجين ، يجب ان تكون البيانات في جداول الاكسس متماشية مع تلك في الـ SQL Server . ولكن سؤالي هو ، ليش تريد ان تنتقل الى SQL Server ؟ هناك اسباب جوهرية ومهمة للنقل ، ولكن بطئ البرنامج في الشبكة ليس واحد منهم ، فالاكسس قد يكون اسرع 🙂 جعفر
  15. اذا كان العمل على شيء مثل سندات ادخال المواد او الصرف ، فيجب ان تبقى البيانات في هذه الحقول ، اما اذا كان العمل شيء آخر ، ولا يتطلب وجود البيانات في الحقول ، فنعم طريقتك صحيحة 🙂 جعفر
  16. بالعكس ، فلو القيت النظر على مثالي لسند ادخال المخازن ، لرأيت بأن هذه الحقول يجب ان تحتوي على البيانات ، وإلا فلا فائدة من العمل ككل !! طبعا ، هذا اذا كان المطلوب عمل كما كان افتراضي 😁 جعفر
  17. وعليكم السلام 🙂 تأكد ان صورة الشعار ليست كبيرة (الطول و العرض) ، فأنت بحاجة الى صورة في حدود 500 - 600 بكسل فقط ، واي حجم كبير قد يسبب لك مشكلة اختفاء الصورة !! جعفر
  18. وعليكم السلام 🙂 في الرابط التالي فيه مرفق : . المرفق فيه نموذج واستعلام يقومان بطلبك ، اقرأ الموضوع من : جعفر
  19. تفضل 🙂 عملت استعلام خارجي بإسم qry_Search ، وجعلته مصدر بيانات النموذج الفرعي ، وفيه معيار البحث عن اي جزء من اسم العميل: . وبعد ان تكتب ما تشاء للبحث ، انقر على زر البحث حتى يتم تصفية بيانات النموذج الفرعي. جعفر 1278.عادل.accdb.zip
  20. السلام عليكم 🙂 سؤال الموضوع كان: وقد قام الاخ حسام بالرد عليه 🙂 اما الطلب الاضافي ، فقد تستفيد من هذا الموضوع: جعفر
  21. وعليكم السلام 🙂 هذا كان مجرد مثال من صاحب الموضوع 🙂 اليك مثال حقيقي ، وقد حصلت على السند عند البحث في الانترنت : انت مسؤول مخزن ، واستلمت قائمة المواد حسب سند الاخراج المرفق: . لما تريد ان تدخل المواد من 1 الى 6 في برنامج المخازن ، فيجب عليك ان تدخل المعلومات التاليه في كل سجل: . لهذا السبب ، وبإستخدام الكود اعلاه ، نضع الحقول اللي في المربع ، في النموذج الرئيسي ، وكلما عملنا سجل جديد في النموذج الفرعي ، تلقائيا يتم تسجيلها في السجل الجديد في النموذج الفرعي ، ويبقى عليك ادخال اسم المادة والوحدة والكمية فقط 🙂 في هذا المثال ، ولأن عدد الحقول هو 10 حقول ، وعدد الحقول التي يتم ادخالها تلقائيا هي 6 حقول ، فأنت وفرت 60% من وقت ادخال البيانات ، وبالدقة المطلوبة 🙂 جعفر
  22. السلام عليكم 🙂 اخي محمد أبو عبدالله ، اذا تسمح لي استعمل قاعدة بياناتك ، واعمل تغيير على الكود ، لجلب البيانات بطريقة اخرى ، من النموذج الرئيسي مباشرة 🙂 الكود : Private Sub Command11_Click() If Len(Me.txtName & "") = 0 Then MsgBox "يحب اختيار اسم العميل اولاً", vbInformation, "officena" Me.txtName.SetFocus ElseIf Len(Me.txtTel & "") = 0 Then MsgBox "يحب اختياررقم التليفون اولاً", vbInformation, "officena" Me.txtTel.SetFocus ElseIf Len(Me.txtAddress & "") = 0 Then MsgBox "يحب اختيار العنوان اولاً", vbInformation, "officena" Me.txtAddress.SetFocus Else 'to make a New Record in the SubForm, it has to be in Focus Me.frm2.SetFocus DoCmd.GoToRecord , , acNewRec 'now take the values from the Main Form Me.frm2!XName = Me.txtName Me.frm2!XTel = Me.txtTel Me.frm2!XAddress = Me.txtAddress 'save the SubForm Record so that the Record Count shows correctly If Me.frm2.Form.Dirty Then Me.frm2.Form.Dirty = False MsgBox "تم اضافة البيانات بنجاح ان شاء الله ", , "officena" End If End Sub . اما عدد السجلات ، فنعمل حقل في النموذج الفرعي ، في قسم Form Footer (ولا يعمل العد او الجمع بهذه الطريقة ، إلا في هذا القسم) ، ونجعله يعد عدد اي حقل ، ويمكننا لاحقا ان نجعله مخفي : . وفي النموذج الرئيسي ، يكون لدينا حقل نص ، ومصدر بياناته هو حقل العد الموجود في النموذج الفرعي : . جعفر 1280.DB_test.accdb.zip
  23. وفي هذا الموضوع اكثر من طريقة : . وسبق ان عملت لك رد عن الترقيم ، هنا 🙂 . جعفر
  24. وعليكم السلام 🙂 بدل ان تستعمل الرقم الموجب ، استعمل علامة ناقص (-) قبل الرقم ، حتى يعرف البرنامج انك تريد طرح هذه المدة ، هكذا : جعفر
  25. السلام عليكم 🙂 انا استعمل اكسس 2010 ، 32بت ، على وندوز 10 64بت ، وبإستعمال المرفق الاخير للأخ @alsihran : 1. عند زيادة البيانات (يعني البيانات الموجودة في المرفق) ، هذه النتيجة : 2. وحين تكون قليلة . والسبب في ظهور عدة اسطر للحقل بدل سطر واحد فقط ، هو تمكين اعدادات الحقول والقسم "قابل للنمو" الى نعم ، بينما لو جعلناها لا . فالنتيجة سطر واحد فقط ، بغض النظر عن كمية البيانات : . جعفر
×
×
  • اضف...

Important Information