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

Moosak

أوفيسنا
  • Posts

    2,068
  • تاريخ الانضمام

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

  • Days Won

    51

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

  1. وصباحك سعيد أخي طارق ،، ليست هناك أي مشكلة مع الحقل n_ istimara بل مع الحقل istimaracode كما وضحت لك .
  2. دالة Dir ترجع لك اسم الملف اللي تلاقيه في الباث المعطى لها . ودالة Len تعطيك عدد حروف الملف الذي ترجعه دالة Dir . فإذا تم إيجاد الملف المطلوب سيتم حساب عدد حروفه بالدالة Len .. أما إذا لم تجد الملف فسيكون عدد الحروف (صفر) .. لذلك أخبرنا دالة If إذا كان عدد الحروف أكبر من صفر ( يعني الملف موجود ) نخبرها أن تفتح الملف الذي في الرابط .. وإذا كان عدد الحروف = (صفر) فهذا يعني أن الملف غير موجود ، فتعطينا رسالة تخبرنا بذلك .. مرجع : https://analystcave.com/vba-reference-functions/vba-file-functions/vba-dir-function/
  3. أنا الحين مخلي الموضوع الرئيسي على جنب ومركز على جمال وروعة التصميم ما شاء الله .. 😊🌷 جميل وخفيف ومرتب ومريح للعين ، صلاة النبي عليك 😄
  4. أهلا أخي أزهر .. يصلح تحط حتى صفر واحد 🙂 أهم شي مكان يتعرف عليه البرنامج على أنه مكان الأرقام .. والبرنامج بيواصل معاك الترقيم عادي حتى لو وصل مليون 😅 وأنا حطيت خمسة أصفار كمثال فقط عشان يطلع الترقيم بشكل جميل 🙂
  5. اللهم آمين وإياك أخي وليد 🙂🤲
  6. تفضل أخي أبو عبدالله .. هذا الكود بعد التعديل : Private Sub Command8_Click() On Error Resume Next If Len(Dir(Me.path, vbDirectory)) > 0 Then FollowHyperlink (Me.path) ' Me.Command8.HyperlinkAddress = Trim(Me![path]) Else MsgBox "فولدر هذا اليوم غير موجود سوف يتم إنشاؤه تلقائيا", vbOKOnly, "تنبيه!" MkDir (Me.path) ' هذا السطر يجعل البرنامج يقوم بإنشاء الفولدر المفقود FollowHyperlink (Me.path) End If End Sub في حال تعذر وجود الملف يقوم البرنامج بإنشاء فولد جديد محل الفولدر المفقود . لإلغاء هذه الخاصية .. أحذف هذين السطرين من الكود وعدل الرسالة 🙂 MkDir (Me.path) ' هذا السطر يجعل البرنامج يقوم بإنشاء الفولدر المفقود FollowHyperlink (Me.path) ayam.rar
  7. وعليكم السلام ورحمة الله وبركاته .. اسم الفولدر مكتوب غلط .. مكتوب Satruday بدل Saturday
  8. وعليكم السلام ورحمة الله وبركاته .. أهلا وسهلا بك أخي العزيز في منتدانا 🙂 أنظر هنا : أو قم بطرح موضوعك هنا : https://www.officena.net/ib/forum/157-إعلانات-شخصية-بأجر-للاعضاء/
  9. وعليكم السلام ورحمة الله وبركاته أخي وليد .. نعم هناك عدة حلول لهذه المشكلة .. 1- يمكنك إعطاء الأرقام الفريدة للسجلات عن طريق الكود وليس عن طريق الترقيم التلقائي .. مع جعل حقل الترقيم هو المفتاح الأساسي لتجنب التكرار ..( وستجد في المنتدى العشرات من المواضيع التي تتكلم عن طريقة عمل ترقيم تلقائي مخصص ) وهذه الطريقة يصلح تطبيقها في النماذج فقط وليس في الجداول مباشرة . 2- الطريقة الثاني عن طريق الترقيم التلقائي الخاص بالأكسس ، بعدما تضيف حقل الترقيم التلقائي تنزل لقائمة الخصائص في الأسفل ، تذهب ل(تنسيق أو Format ) وتكتب التنسيق بهذه الطريقة : ARCH"00000" لجدول الأرشيف مثلا .. و STOR"00000" لجدول المخازن مثلا .. وهكذا .. والنتيجة ستكون هكذا : طريقة كتابة الصيغة في الخصائص : لاحظ أن علامتي التنصيص " " توضعان على النص ، والأصفار هي المكان المخصص للترقيم التلقائي . وبهذه الطريقة ستضمن أن لكل جدول ترقيمه الخاص ..
  10. وعليكم السلام ورحمة الله وبركاته .. 1- اعمل جدول يتم تخزين فيه عدد المرات اللي تم فتح البرنامج فيها ، يتم تحديث الرقم باستعلام تحديث يشتغل عند فتح القاعدة كل مرة .. 2- كل مرة يفتح البرنامج يشيك على الرقم المخزن .. إذا وصل لحد معين أنت تحدده ، يقفل البرنامج 🙂
  11. أخي طارق لتنفيذ هذه الفكرة مع اشتراط وجود ال istimaracode في كل سجل مضاف ولأنه هو المفتاح الأساسي للجدول فسيكون الحل بهذه الطريقة : 1- بعد أن تملأ الحقل n_istimara ( ولنفترض أنك أدخلت الرقم 3 ) .. 2 - سيقوم الكود بإضافة سجل جديد في النموذج الفرعي ، قيمة m = 1 ، بعدها سيقف الكود عند istimaracode لكي تعبيه بماكينة الباركود .. 3 - بعدها سينتقل الكود إلى سجل جديد ، ستكون قيمة m = 2 ، بعدها سيقف الكود عند istimaracode لكي تعبيه بماكينة الباركود من جديد .. 4 - بعدها سينتقل الكود إلى سجل جديد ، ستكون قيمة m = 3 ، بعدها سيقف الكود عند istimaracode لكي تعبيه بماكينة الباركود من جديد .. وتكتمل العملية . هكذا في كل مرة .. هل يناسبك العمل بهذه الصورة ؟
  12. وعليكم السلام ورحمة الله وبركاته عمي جعفر 🌹😊 هل الكلام موجه لأبو خليل ؟ أم لكلينا ؟ 😅
  13. العفو أخي العزيز .. 🙂 لازلت أنتظر رأي ومقترحات السادة الخبراء والأعضاء الأفذاذ للتطوير وسماع الآراء بهدف إيجاد حلول متكاملة تخدم المطورين والمبرمجين .. ولعل الاستماع للتجارب والمواقف المختلفة للأعضاء يفيدنا في تلافي الأخطاء عند التصميم ويسهل علينا العمل مستقبلا . 😊
  14. وعليكم السلام ورحمة الله وبركاته .. 🙂 أهلا بك في منتدانا الجميل .. لعمل ذلك يمكنك الجمع عموديا إما بدالة DSUM .. أو باستعلام إجماليات .. والنتيجة :
  15. السلام عليكم مجددا 🙂 إنتهيت ولله الحمد من تصميم وبرمجة الفكرة التي أشرت إليها سابقا .. وهذه مجرد تشويقة للموضوع 🙂 وسوف أفرد موضوع خاص بهذا الأمر إن شاء الله 🙂 ======================================================= في البداية صممت قاعدة بيانات تقوم بحفظ المسارات ( مسارات ال Back End) أو نسخة الجداول التي يتم ربطها بها .. وذلك للعودة إليها لاحقا بدل البحث عنها في كل مرة 🙂 وكذلك لتجنب أن يعرف الزبون أو العميل أو المستخدم النهائي المكان الذي تم وضع قاعدة البيانات به .. 😉 أول ما نشغل البرنامج ( أو الـ Front End ) في الجهاز وما يلاقي ال BE ستظهر هذي النافذة : كما هو ملاحظ .. - عندنا 4 مواقع أو أربع BE مخزنة لنفس هذا البرنامج . - الروابط الحقيقية غي ظاهرة للمستخدم .. فقط أسم الملف يظهر . - النقاط الحمراء والخضراء تحت العنوان ( متوفرة؟) .. ( الخضراء ) تخبرنا بالروابط المتاحة حالياً ويمكن الاتصال بها ، ( والحمراء ) تخبرنا بالمواقع الغير متوفرة حاليا 🙂 . وذلك باعتبرار أننا نشتغل من جهاز المبرمج حاليا 🙂 - تاريخ الإضافة يبين لي التاريخ الذي تم إضافة هذا الرابط فيه وذلك للتأكد من تاريخ النسخة التي أريد العمل عليها . وهذه طريقة الاتصال بالقواعد المخزنة : ( لا يفوتك شريط التقدم 😉 .. هذا لوحده حكاية .. من إبداعاتي طبعا 😅 ) - طبعا لاحظتوا أنه مباشرة بعد الاتصال بنجاح يفتح لنا صفحة الدخول على طول 🙂 ثانيا : في حال عدم تطابق أي نسخة من النسخ المخزنة الحالية .. : - يمكن عمل اتصال جديد من خلال الزر [ إنشاء اتصال جديد ] .. - وسوف البرنامج تلقائيا بحفظ المسار الجديد من ضمن القائمة ( قائمة المسارات المخزنة ) . - وعند فتح البرنامج مرة أخرى سنجد أن البرنامج قام بحفظ المسار الجديد من ضمن القائمة 🙂 ثالثا : خيار تحرير المسارات المخزنة ( إضافة / حذف / تعديل ) : - هذا الخيار محمي بكلمة سر ( خاصة بالمبرمج ) يطلبها البرنامج للدخول على نافذة التعديل 🙂 - يمكن إضافة مسارات جديدة هنا بكل سهولة .. مثلا في حال عدم وجودك في موقع الزبون لكي تربط ال FE بال BE لتخزينه في الجدول ، يمكنك نسخ الرابط من هناك أو كتابته يدويا ليكون من ضمن القائمة 🙂 أما بخصوص طريقة فتح البرنامج بدون نوافذ علوية ومع إخفاء نافذة العناصر .. فجمعتها كلها في موديول واحد اسمه Start أناديه من خلال ماكرو البداية المسمى بالـ AutoEXEC 🙂 .. - فقط عليك أن ترسل له ثلاثة أشياء ( متغيرات ) : 1- اسم نموذج البداية ( أول نموذج تريده يفتح في البرنامج ) 2- هل تريد ظهور النوافذ العلوية ونافذة العناصر ؟ تكتب : ( True / False ). 3- اسم أحد الجداول ( المرتبطة ) ،،،، لاحظ المرتبطة 🙂 وذلك بهدف فحص ما إذا كانت الواجهة مرتبطة بقاعدة البيانات أو لا . فمن خلال هذا الموديول لن تحتاج للدخول فيه لتغيير الإعدادات .. فقط عليك كتابة المتغيارات هنا في ماكرو ال AutoEXEC . هذا والسلام 🙂 وبانتظار رأيكم واقتراحاتكم أساتذتي الأعزاء للتطوير .. 🙂 وبعدها سأنشر الملفات كلها هنا ليستفيد منها الجميع 🙂 أخوكم ... موسى الكلباني
  16. حياك الله أخي طارق .. القضية أن الحقل istimaracode هو المفتاح الأساسي في الجدول لذلك لا يمكن تكراره في أكثر من سجل ، بمعنى لكل سجل ال istimaracode الخاص به .. ما يعني أنه المطلوب كلما نضيف سجل جديد ينبغي توليد istimaracode جديد ومختلف عن السابق .. وإلا فلن تتم إضافة السجلات .. تحتاج لدالة تضيف لك كود جديد كل مرة بهذه الصورة : A1-2022-10-0000001- E A1-2022-10-0000002- E A1-2022-10-0000003- E A1-2022-10-0000004- E A1-2022-10-0000005- E ............. وهكذا هل هذه هي الطريقة التي تعملون بها ؟
  17. لله درك باش مهندس .. @jjafferr 😊🌺 كنت حاس يقينا أنه لديك إضافات وتحديثات للموضوع 👍😉 ما شاء الله عليك ، ومن وحي التجارب والحاجة تولد عجائب الأمور ... 😊 ولي إضافات من تجاربي على نفس هذا الموضوع ومحاولة لتطبيق الأفكار التي أثارها موضوعك في راسي قريبا إن شاء الله 😁 سأحاول تبسيط الأمور أكثر باستخدام نوافذ صديقة للمستخدم إن شاء الله 🤗 مستعينا بالله ثم خلاصة ما طورته أنت في هذا الشأن ..
  18. ما شاء الله تبارك الله .. هذا من أهم المواضيع التي تواجهني في التعامل مع برامجي والتغيرات والتعديلات المستمرة عليها 😅 وكانت عندي فكرة عمل شي مشابه لهذي الطريقة ولكن ما محصل وقت أطبقها 😁 فكرتي هي : أن الجدول الخاص بمسارات ال BE المتعددة أول ما تقوم الدالة باكتشاف أن الباك إند غير مرتبطة يظهر لك نموذج يخيرك بإعادة الربط حسب المكان الذي أنت فيه ( أي المبرمج - أو المستخدم ) بالمناسبة الرابط لا يظهر في النموذج لضمان السرية إنما اسم يعطى لمكان النسخة (حقل جديد تضيفه في جدول المسارات) ، وبمجرد الضغط على المكان المطلوب الربط به يفحص الكود هل المسار موجود أم لا ثم يقوم بعملية الربط بين ال FE و BE .. وإذا وجد الكود أن المسار غير متوفر يعيد العملية من جديد .. 🙂 الكلام سهل بس التطبيق يريدله شغل 😅 على العموم تشكر مهندس جعفر على هذا الإثراء الكبير والطرح المتميز 🙂 ما شاء الله أفكارك كلها خارج الصندوق 🙂 ربي يحفظك 🌹
  19. أعتقد أن الحل الأمثل للطريقة التي تريدها موجودة في هذا الموضوع 🙂
  20. وعليكم السلام أخي أحمد ،، وضحت المسألة ،، ولكن هناك جدول ناقص في القاعدة التي أرسلتها وهو جدول الأسماء الذي ستطبق عليه .. قم بإضافته وأرفق البرنامج من جديد 🙂
  21. هنا أخي طارق : DoCmd.RunSQL "INSERT INTO istimaraALL ( bar, m, istimaracode ) SELECT '" & ID & "', " & X & " , 'istimaracode Here' ;" ما هي القيمة التي تريد وضعها ل istimaracode ؟ كيف هي صيغة هذا الكود ؟ وكذلك هناك متغير مفقود يطلبه البرنامج وهو global_userid .. لذلك يوقف الكود عن العمل .. !
  22. الأخطاء تظهر بسبب أن الحدث الموضوع في خلية istimaracode في النموذج الفرعي توقف عمل الكود الذي بالأعلى .. عليك أن تقوم بتعديل الكود لكي يكتب قيمة istimaracode بشكل صحيح .. وقد أشرت لك بذلك سابقا .
  23. حدد الحقل الذي تريد الأمر أن يشتغل بعده .. ثم ضع الكود في حدث بعد التحديث لذلك الحقل .
  24. تفضل يا حلبي 🙂 تنصيص التواريخ.accdb
  25. يمكنك وضعه في الجدول بتحويل الحقل eldarga2 لقائمة منسدلة فيها بيانات جدول الدرجات والأفضل وضعها في استعلام يقوم بإحضار الدرجة لك تلقائيا . أما بالطريقة الحالية لا أعرف ما الجدوى من وجود الحقل المحسوب في نفس جدول الدرجات ؟! 🙂 لعلك توضح لنا هذه النقطة ؟
×
×
  • اضف...

Important Information