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

كل الانشطه

هذه الصفحة تحدث تلقائياً

  1. الساعة الأخيرة
  2. هذه الثغرات ليست اهميتها وظيفيا .. بل يتعدى ذلك أمنياً . في الكمبيوتر خاصية التشغيل الآلي في ساعة معينة تحددها .. وايضا برنامجك يقلع مع فتح وندوز ويتم تحديث الحقل update وليس الحاق INSERT تحديث بالوقت الحالي وايضا يتم التحديث عند كل توقيع او عند كل دقيقة من ( التايمر ) على كل حال ليس امامك الا استخدام الانترنت .. وان اضطررت للنموذج المحلي تجعله لا يتمكن من فتحه الا المسؤول المباشر كمدير ونحوه
  3. Today
  4. عمل نظيف وجميل اعجبت جدا باختيارك لتسميات الجداول وحقولها .. طريقة علمية رائعة تدرس أولا ومهم جدا ان يكون صاحب المصلحة المستفيد ( ابو معاذ ) متابعا لكل ما يطرح وان يجري تجاربه ليكتشف الميزات والثغرات ويذكرنا بما يغيب عن البال المتابعة يا ابا معاذ ثم المتابعة .. متابعتك تشجع على الاستمرار وسألتني اخي خليفة هل تكمل ؟ هل طريقك الذي ستسير عليه مرسوم بدقة ؟ انت استاذنا وكبيرنا ومكسب لنا في هذا المنتدى .. ولكن دعنا نناقش المشروع كتحليل بيانات وتصور مسار . ربما النقاش يجلب فكرة تكون غائبة كما نعلم جميعا ان البرمجة هي تنفيذ فكرة محددة برمجيا .. لذا يجب ان تتبلور هذه الفكرة ويجب الاحاطة بجميع ابعادها . ما ستعمله اخي خليفة يفترض ان يكون صالحا لأي مصنع صغير او اي خط انتاج سواء كان ملابس او اواني او اثاث الخخخ .. واي منشأة من هذا النوع بحاجة الى : مخزن / خط انتاج وتصنيع / حسابات هذا باختصار فالمبيعات مثلا تدخل ضمنا دعنا نبدأ التصور والتحليل : انا اعمل على حاسبة المؤسسة كمدخل بيانات مسؤول المبيعات جاء الي وذكر ان عميلا في المكتب يريد 100 من البلوفر النسائي موديل 11 ويستفسر عن الامكانية ومعلوم ان البلوفر الواحد يتم تصنيعه من 9 خامات : قماش وخيوط وازرار واكسسوارا الخخخخ فاقوم بفتح البرنامج ثم فورم التصنيع وادخل معرف المنتج والكمية فقط المفترض اذا الخامات في المخزن تغطي يعطيني اشارة بذلك ويسمح لي بطباعة مذكرة الاخراج ، والا سوف ينبهني الا ان بعض الخامات لا تغطي ويسألني ايضا ان كنت اريد رؤية ا تقرير الموجودات والنواقص في هذه اللحظة .. العميل .. بين خيارين اما ان يصبر حتى يتم تغطية الخامة واما ان يتم تغيير الخامة الناقصة باخرى بديلة .. اذا قبل العميل التغيير فنحن بين خيارين اما ان نعدل على خامات المنتج موديل11 واما ان ننشء موديلا (منتجا) جديدا مثلا : بلوفر نسائي موديل 12 ادخال معرف المنتج ثم انتر هذا يعني ان البرنامج يستعرض جدولا مكونا من سجلات عديدة تشتمل على خامات يتم مقارنتها مع مثيلاتها في جدول المخزن والمقارنة تتم خامة خامة وما يقابلها من حيث وجود العدد الكافي للاخراج فلو كانت مثلا الازرار في منتج واحد 12 زرا فهذا يعني اننا بحاجة الى 1200 زر لتغطية عدد 100 منتج وهكذا لبقية الخامات دعنا نذهب الى قلب البرنامج ( الجداول) من اجل تحقيق العملية السابقة والاستعلام عن المنتج وتوفر خاماته يجب ان نبني الجداول على اساس هذه الفكرة : ( اقوم بفتح فورم التصنيع وادخل معرف المنتج والكمية فقط ) سأذكر الحقول الأساسية التي يجب ان تشتمل عليها الجداول .. وهذا لا يعني عدم اضافة حقول اخرى تخدم البرنامج وهي كثيرة - جدول الخامات : معرف الخامة/اسم الخامة/الوحدة /السعر - جدول المنتجات : معرف المنتج / اسم المنتج - جدول خامات المنتج : معرف المنتج/ معرف الخامة/ الكمية . ( يرتبط بعلاقة مع جدول المنتجات اطراف برأس ) وفيه يتم ادراج خامات كل منتج اللازمة للتصنيع هذه الجداول اعلاه هي عبارة عن جداول خدمية انا اعتبرها شبه ميتة .. هكذا اراها .. لأنه لا يتم عليها عمليات يومية اوشبه يوميه .. بل على فترات قد تكون متباعدة جداول الحركة في مشاريع المبيعات دوما اعتمد جدولا واحدا لرصد تفاصيل المشتريات والمبيعات اما هنا فالامر مختلف : - جدول راس الحركة - جدول حركة المخزن : لا يختلف عن جداول المخازن الأخرى ويشمل الداخل والخارج - جدول التفاصيل : المبيعات والمصروفات في جدول المخزن لا يهم كثيرا سعر الخامة الافرادي ما دامه موجود في جدول الخامات المهم السعر الاجمالي والعدد سعر الخامة في جدول الخامات يتم تحديثه تزامنا مع كل عملية شراء .. ولأن اسعار الشراء تختلف من فترة لأخرى .. يتم جمع الكمية الجديدة مع المتبقي من الكمية السابقة وبعملية حسابية بسيطة يخرج متوسط سعر الخامة الافرادي الجديد لا اعلم ان كان عرضي هذا مفهوم ومفيد .. ومع هذا هو قابل للنقاش والنقد
  5. Yesterday
  6. المشكلة سيدي أن يكون المتلاعب هو أول الحاضرين اسنخدمت هذا الأمر عند فتح الفورم أول مرة (طبعا جعلت قاعدة البيانات تفتح تلقائيا مع الويندوز) وبهذا نعرف الوقت الحقيقي الذي تم فيه فتح الكمبيوتر Private Sub Form_Open(Cancel As Integer) CurrentDb.Execute "INSERT INTO SaveOpenTimeTbl(Field_Now,Date_Now)values ('" & txtDate & "','" & txtDate1 & "')" End Sub لكن بالطبع هذا ليس حلا عمليا ، لأنه لن يسمح للتلاعب فقط للموظف الأول (وسيحتاج من يقارن بين تسجيل الفتح وتسجيل الحضور للموظف الأول أيضا) وأيضا يستطيع الموظف الأخير أن يزيد في وقت انصرافه عن الوقت الحقيقي كل هذه ثغرات نبحث لها عن حل
  7. استاذنا @ابوخليل من وجهة نظري افترضنا انتاج بلوفر ... فعملت كتالوج به المكونات وخلافه .............. لانتاجه هذه هي الجداول ونماذج انتاجها. هل اكمل.... . ProductionOrderCreateTables.rar
  8. كلا أخي الكريم 😅 ، الخطأ في طريقة التنفيذ . لذا قمت بإضافة دالة بسيطة تقوم بتحديث الحقل الخاص بمسار الصور من خلال الدالة التالية :- Public Sub UpdateImagePaths() Dim dbPath As String Dim newBasePath As String Dim sql As String dbPath = CurrentProject.Path newBasePath = dbPath & "\Images\" sql = "UPDATE tblImportExcel SET PicPath5 = '" & newBasePath & "' & Mid(PicPath5, InStr(PicPath5, 'Images') + 7);" DoCmd.SetWarnings False DoCmd.RunSQL sql DoCmd.SetWarnings True End Sub واستدعاءها في حدث عند الفتح للنموذج أو اي نموذج يعمل في بداية المشروع . انظر ملفك وانقله على اي مكان تريد وجربه الآن . البرنامج.zip
  9. اخي لقد نقلة البرنامج مع المجلد ولم اجد الصور اخي هل يوجد خطاء في البرنامج
  10. نعم ... مع زيادة فضل لعملك حيث ان استعلامك اخف
  11. وعليكم السلام ورحمة الله وبركاته.. دون تحميل الملف المرفق ، فقط حول الحقل الى حقل مرفقات . ولكنك هنا ستواجه مشكلة في تضخم حجم قاعدة البيانات مستقبلاً اخي الكريم. الكثير من المواضيع تحدثت عن هذه المشكلة وكان الحل بحفظ الصور والمرفقات بمجلد بجانب قاعدة البيانات.
  12. هههههه نفس المبدأ تقريباً ، ولكن هنا عند التحميل يفرض القيمة دائماً وهي أسلم وأأمن .. المهم اطلاق سراحه بدون قيود 😅
  13. صحيح .. تسلم كل مشكلة ولها حل .. المهم الفكرة تتم بشكل محكم وضعت هذا السطر عند تحميل النموذج الفرعي .. يعني اطلقنا سراحه حتى اشعار آخر ههههههه @Foksh ما رأيك الآن WIL7.rar
  14. السلام عليكم اريد عند اضافة صورة يتم تخزنها داخل البرنامج ليس في المجلد البرنامج.rar
  15. الف شكر استاذنا / عبدالله بشير عبدالله عندك حق لقد نسيت اضافة البحث فى العمود (G3:U3)
  16. آمين يا رب العالمين .. وإياكم معلمي الفاضل .. وحيث أن الفكرة ينقصها شيء واحد ، وهو عند تحميل البيانات ستجد فقط السجل الأول هو من يعرض البلدية في الكومبوبوكس ( داخل النموذج الفرعي الثاني ) .. وهنا أعتقد لأن مصدره ( الكومبوبوكس الخاص بالبلدية ) يحتوي شرط للفلترة ولزوم حذف الشرط يظهر لنا القيم الحقيقية من مصدرها لكل سجل . جرب الفرق ، بما أننا نقوم بتعيين مصدر القيم للكومبوبوكس عند تحديث اسم الولاية ( صحيح ؟؟ )
  17. انار الله دربك فشكرا لك الجملة التي تفضلت بها هي عين الصواب تم تعديل الجملة ...... والتجربة اكثر من رائعة 100% WIL6.rar
  18. مع اني لست من مناصري استخدام الاكسس خارج اطار قواعد البيانات ولكن الإبداع الذي اراه في هذا العمل يستحق الإعجاب والتقدير فعلاً الأخت @hanan_ms مبدعة وتستحق ان تكون ضمن خبراء الموقع لانها دائما تثبت أن بالإمكان استخدام الاكسس لوظائف اخرى الى جانب قواعد البيانات وعندما أرى مثل هذا التمكن في البرمجة كما في هذا الموضوع او مواضيع الاخوة @Foksh و @jjafferr و @Moosak و @ابوخليل وبقية الاخوة الذين لايسع المجال هنا لذكرهم فلسان حالي كما يقول المثل (كلما قلنا عساها تنجلي .. قالت الايام هذا مبتداها 🫣) وان طريق التعلم مازال طويلاً شكرا لمبدعي المنتدى لكل ماتقدموه تحياتي
  19. تم تعديل النسخة 32 ، شكراً لك معلمي الفاضل للمتابعة
  20. السلام عليكم أحبتي أريد إضافة موسيقي لملف الاكسل به مؤقت (كرونومتر) تبدأ مع بداية العد و تتوقف مع توقفه crono.xlsm
  21. في الكومبوبوكس "Wil_Miled" قمت كتجربة بتغيير الحدث بعد التحديث من :- Me.Com_Miled.Requery ليصبح في النموذج الفرعي F2_Sub كالتالي ( كتجربة ) :- Private Sub Wil_Miled_AfterUpdate() If Not IsNull(Me.Wil_Miled) Then Me.Com_Miled.RowSource = _ "SELECT TblWsub.ID, TblWsub.N_C, TblWsub.Code_W " & _ "FROM TblWsub " & _ "WHERE TblWsub.Code_W = " & Me.Wil_Miled & " " & _ "ORDER BY TblWsub.N_C;" End If End Sub وكانت النتيجة كالتالي :- إلا أنني غير راضٍ عن الفكرة 😢 . رغم أن أحد التقويض في الحلول هو أن النماذج الفرعية = نماذج مستمرة !!!!
  22. وعند الموافقة فتح على نموذج صامت المرفق المستخدم هو 32
  23. انا ابحث عن الطرق العفوية المتوقعة .. وابتعد عن الخطوات المتكلفة لو تكرمت واطلعت على آخر مرفق لي .. ليتك تعالج مشكورا اختفاء البيانات في حقل البلدية عندما يتم تحديث حقل الولاية
  24. بما أن أفكار معلمي أبو خليل لا تنتهي ( مشكوراً على جهوده التي نتعلم منها ) . وددت المشاركة على الهامش في ملف المشاركة الأصلية كالتالي .. في مربع النص "مكان الميلاد" الحدث نفسه عند الخروج ( كما هي رغبة أخي طاهر ) :- Private Sub مكان_الميلاد_Exit(Cancel As Integer) Dim sourceInfo As String sourceInfo = Me.Name & "|" & Me.Parent.Name DoCmd.OpenForm "C1", , , , , , sourceInfo End Sub طبعاً هذا الكود سيمرر اسم النموذج الفرعي واسم النموذج الرئيسي مفصولين بإشارة "|" إلى النموذج "C1" الآن في النموذج "C1" قمت بحجز المتغيرين والحدث التالي عند تحميل النموذج :- Private sourceSubform As String Private sourceMainForm As String Private Sub Form_Load() If Not IsNull(Me.OpenArgs) Then Dim parts() As String parts = Split(Me.OpenArgs, "|") If UBound(parts) = 1 Then sourceSubform = parts(0) sourceMainForm = parts(1) End If End If End Sub وفي الكومبوبوكس Com_Miled ، قمت بتحديث الكود ليصبح :- Private Sub Com_Miled_AfterUpdate() If sourceSubform <> "" And sourceMainForm <> "" Then With Forms(sourceMainForm).Controls(sourceSubform).Form .Com_Miled = Me.Com_Miled .Wil_Miled = Me.Wil_Miled End With End If DoCmd.Close acForm, Me.Name End Sub وبالتالي النتيجة خرجت معي بهذا الشكل :- ملاحظة :- لم أقم بالإطلاع على أي ملف مرفق تمت مشاركته .. WIL.zip
  25. وعليكم السلام ورحمة الله وبركاته عمي جعفر @jjafferr 🙂 شكرا لك على الإطلالة اللي تبهج النفوس 🙂🌹 رديت على سؤال عمنا أبو خليل هنا 😊👇 فعلا وهذي هي طريقة الاستخدام اللي ذكرتها في الشرح .. وفعلا أنا مستخدمنها وضايفنها كجزء من برنامج متابعة المهام الخاص بي في جهة العمل 🙂 : والأفكار في تطوير هذا المشروع كثيييييييييييييرة ما شاء الله
  26. غريب .. عجيب راجعت المثال اعلاه فوجد فيه خلل .. يبدو اني لم اتأكد منه تفضل تصحيح WIL5.rar
  27. طريقتي أو الفكرة اذا المتلاعب اتى بعد حضور عدد من الموظفين ويريد يعمل كما ذكرت حتى لو يعمل فورمات للجهاز وليس اعادة تشغيل فلن يتمكن من التوقيع الا بعد وقت توقيع آخر موظف حضر .. طبعا سوف تقول ان آخر موظف وقع في 8:30 والمتلاعب اتى في العاشرة من المؤكد يكفيه ان يرجع وقت البرنامج فقط الى 8:31 .............. ومع ذلك يوجد حل لهذه المشكلة الأخيرة ويمنع التلاعب بشرط بقاء الفورم مفتوح طيلة الوقت
  1. أظهر المزيد
×
×
  • اضف...

Important Information