الحلبي قام بنشر مايو 18 قام بنشر مايو 18 (معدل) السلام عليكم مرفق مثال ـ العمل لدى شركتنا تقوم بتوريد اصناف الى بعض البلاد المطلوب : انشاء رقم توريد بناءا على نوع التوريد (مستورد ـ محلى ـ يدوى) بناءا على اسم الصنف ونوع التوريد وتاريخ التوريد بشرط ان فى التاريخ الواحد للصنف الواحد للنوع الواحد يكون رقم التوريد متسلسل ويبدا من رقم ا -2-3 الخ واذا تغير نوع الصنف فى فى تاريخ مختلف لنوع مختلف يبدا الترقيم من رقم 1 بمعنى : فى يوم 2024/5/22 سوف يورد صنف1 محلى فياخذ رقم التوريد له ا فى نفس اليوم 2024/05/22 سوف يورد صنف1 مستورد فياخذ رقم التوريد له ايضا 1 فى نفس اليوم 2024/05/22 سوف يورد صنف1 يدوى فياخذ رقم التوريد له ايضا 1 فى نفس اليوم 2024/05/22 سوف يورد محلى (مرة اخرى ) فياخذ رقم التوريد له ايضا 2 فى نفس اليوم 2024/05/22 سوف يورد صنف1 مستورد فياخذ رقم التوريد له ايضا 2 اى ان التاريخ الواحد للصنف الواحد للنوع الواحد يسلسل له رقم التوريد فاذا تكرر نفس ياخذ الرقم الذى يليه اسف للاطالة وجزاكم الله خيرا التوريد.accdb تم تعديل مايو 18 بواسطه الحلبي السهو
Foksh قام بنشر مايو 18 قام بنشر مايو 18 صديقي الدكتور @الحلبي ،، وعليكم السلام ورحمة الله وبركاته ،، مع أني دخلت في دوامة لحتى أفهم المطلوب 😄 ، لكن دعنا بداية نخطو خطوة خطوة .. بدايةً لازم نبدأ باستعلام يسترجع لنا جميع التوريدات الموجودة وبنفس الوقت يحسب عدد التوريدات لكل اسم صنف ونوع توريد في نفس اليوم. ونشوف الاستعلام التالي إن كان فعلاً سيسترجع المطلوب أم لا :- SELECT Main.nume, Main.typtest, Main.bookingdate, Count(*) AS num_of_supplies FROM Main GROUP BY Main.nume, Main.typtest, Main.bookingdate; وبعدين هنحاول نستخدم دالة العد DCount علشان نحسب عدد التوريدات السابقة من نفس النوع والصنف والتاريخ ، وبعدها يتم تعيين الرقم الصحيح للتوريد الحالي بإضافة الرقم 1 للعدد السابق ، ونجرب على الاستعلام التالي :- SELECT a.nume, a.typtest, a.bookingdate, (SELECT COUNT(*) FROM Main AS b WHERE b.nume = a.nume AND b.typtest = a.typtest AND b.bookingdate = a.bookingdate AND b.k < a.k)+1 AS k FROM main AS a; الآن علشان نحدث قيمة الحقل K في الجدول Main بقيمة رقم التوريد الجديدة لكل صنف ونوع وتاريخ ، نستخدم استعلام تحديث البسيط ده . وطبعاً استثنيت القيم الفارغة ، ونجرب :- UPDATE Main SET k = (SELECT COUNT(*) FROM SupplyTable AS b WHERE b.nume = Main.nume AND b.typtest = Main.typtest AND b.bookingdate = Main.bookingdate AND b.k <= SupplyTable.k) WHERE Main.k IS NULL; الآن في النموذج Main اختر اي حدث تريده ونحط الكود التالي لإضافة القيمة في مربع النص K برقم التوريد الجديد بناءً على القيم الموجودة في مربعات النص (nume و typtest و bookingdate) :- Dim newK As Integer newK = DCount("*", "SupplyTable", "nume='" & Me.nume & "' AND typtest='" & Me.typtest & "' AND bookingdate=#" & Me.bookingdate & "#") + 1 Me.k = newK حيث تم حجز متغير رقمي واسميته كمثال newK يقوم بعد القيم لرقم التوريد الجديد . التوريد.accdb
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 11 دقائق مضت, Foksh said: حيث تم حجز متغير رقمي واسميته كمثال newK يقوم بعد القيم لرقم التوريد الجديد . صاحبى الاستاذ / فايد حياك الله على المداخلة والمساعدة المرفق الذى حضرتك ارفقته ليس به اى اكواد مثل المرفق الاول فارجو ان تضع فى المرفقات هذه الاستعلامات فى المثال حتى اجرب ماذا سيحدث وهل هو المطلوب ام لا شكر لك وجزاك الله خير على المساعدة
Foksh قام بنشر مايو 18 قام بنشر مايو 18 1 دقيقه مضت, الحلبي said: المرفق الذى حضرتك ارفقته ليس به اى اكواد مثل المرفق الاول الأكواد الثلاثة هي استعلامات SQL موجودة باسماء Query1 , Query2 , Query3 .. وضعت الكود في وظيفة مستقلة واستدعيتها في حدث بعد التحديث لمربعات النص الثلاثة في النموذج .
ابوخليل قام بنشر مايو 18 قام بنشر مايو 18 السلام عليكم مشاركة معكم احبتي حيث كنت اعمل على المثال اولا : اخي الحلبي يفضل ان يكون النموذج ادخال بيانات وليس عرض .. وهذا الذي عملته لك وافضل من ذلك ان يكون النموذج غير منضم ويتم ادراج البيانات في الجدول من خلال الكود .. من اجل زيادة الضبط .. وعدم اتاحة حدوث اي خطأ عند ادخال البيانات وعلى كل حال خرجت بالنتيجة التالية : Dim i As Integer Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("SELECT main.* " & _ "FROM main " & _ "WHERE main.nume='" & Me.nume.Value & "' " & _ "AND main.bookingdate=#" & Me.bookingdate.Value & "# " & _ "AND main.typtest='" & Me.typtest.Value & "' ") rs.MoveLast rs.MoveFirst For i = 1 To rs.RecordCount If i > 0 Then If i = 1 Then Me.k = 1 Else Me.k = i End If End If rs.MoveNext Next i Set rs = Nothing التوريد2.rar
kkhalifa1960 قام بنشر مايو 18 قام بنشر مايو 18 مشاركة مع استاذ @Foksh تفضل د/ @الحلبي محاولتي حسب مافهمت . ووافني بالرد . التوريد-1.rar 1
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 34 دقائق مضت, Foksh said: حيث تم حجز متغير رقمي واسميته كمثال newK انا غلطان لك وجدت ملفك وبه الاكواد ولكن معلش انا اسف ياصاحبى اسم الصنف ليس من الشروط يعنى لو تغير اسم الصنف ليس لنا دخل المهم التاريخ ونوع التوريد : ولهم ثلاث احوال فى تاريخ 2024/05/20 وردنا نوع محلى فيكون رقم التوريد ياخذ رقم 1 فى نفس التاريخ 2024/05/20 وردنا نوع مستورد فيكون رقم التوريد 1 والمحلى الذى قبله ياخذ رقم 2 ( لان المستورد يورد برقم قبل رقم التوريد) فى نفس التاريخ 2024/05/20 وردنا نوع يدوى فيكون رقم 3 هم الثلاث حالات فاذا تكرروا فياخذون التسلسل 2-3-4-5 الخ ولكن المستورد ياخذ الرقم الاقل اذا غيرنا فقط التاريخ تكرر العملية السابقة بان رقم التوريد ياخذ بالتسلسل ولكن يبدأ برقم ا اما المستورد يسبق النوعين الاخريين لم اعرف هل انا وضحت الصورة ام انا ضغيف التعبير
Foksh قام بنشر مايو 18 قام بنشر مايو 18 8 ساعات مضت, الحلبي said: اى ان التاريخ الواحد للصنف الواحد للنوع الواحد هذه الجملة تنفي هذه الجملة في طلبك 😂 4 دقائق مضت, الحلبي said: اسم الصنف ليس من الشروط يعنى لو تغير اسم الصنف ليس لنا دخل
Foksh قام بنشر مايو 18 قام بنشر مايو 18 4 دقائق مضت, الحلبي said: نعم ليس لنا دخل باسم الصنف جرب التعديل بعد ازالة اسم الصنف كشرط التوريد.accdb
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 29 دقائق مضت, ابوخليل said: لسلام عليكم وعليكم السلام استاذى ومعلمى الفاضل ابو خليل بارك الله فيك على المداخلة ولا يحرمنا من مداخلتك ومساعدتك لنا ارجو منك ان تقرأ اخر تعليق لى جزاكم الله خير وجعلكم سندا لنا 19 دقائق مضت, kkhalifa1960 said: مشاركة مع استاذ @Foksh تفضل د/ @الحلبي استاذى ومعلمى ومقدم المساعدات لكل المنتدى جزاك الله خير على مداختك وارجو منك قراءة اخر تعليق لى ففيه الخلاصة واشكرك ايها المعلم الكبير لمساعتك لى جزاكم الله خير
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 استاذى ومعلمى الاستاذ / فايد المرفق الذى ارفقته الاخير لا يعمل مثلما اطلب شوف صديقى انسى كل اللى فات وخليك معايا من اول هنا انا عندى ثلاث عمليات توريد (محلى ـ مستورد ـ يدوي) عندما نورد فى تاريخ ما نوع محلى فان رقم التوريد ياخذ رقم ا وعندما نورد فى نفس التاريخ ويكون النوع مستورد يكون رقم التوريد رقم 1 ايضا وعندما نورد فى نفس التاريخ ويكون النوع يدوى يكون رقم التوريد رقم ا ايضا (هم الثلاث عمليات فقط الذى يتم عليهم انشاء رقم التوريد) لكــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــن اذا بقى التاريخ كما هو واختارنا محلى يأخذ رقم 2 واذا اخنارنا مستورد ياخذ رقم 2 ايضا كذلك اذا اختارنا يدون ياخذ رقم 2 اى ان فى التاريخ الواحد يكون رقم التوريد 1 وعندما تكرر نوع التوريد فى التاريخ الوحد يسلسل رقم التوريد وياخذ الرقم التالى فى التسلسل اى الرقم 2 واذا تكرر نفس نوع التوريد ياخذ الرقم 3
Foksh قام بنشر مايو 18 قام بنشر مايو 18 (معدل) طبعاً صديقي @الحلبي ، تستطيع الاستغناء عن الاستعلامات الثلاثة ، هي فقط للتأكد من الاحصاء وضبط العدد ، يعني فقط الكود الذي في النموذج يخدم هدفك على ما أعتقد . جرب هذا ,, علي أكون قد فهمت صح هههههه التوريد - Copy.accdb تم تعديل مايو 18 بواسطه Foksh اضافة مرفق معدل
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 24 دقائق مضت, Foksh said: قد فهمت صح هههههه صديقى الاستاذ فايد امسح عندك كل ارقام التوريد وابدأ فى اختيار نوع التوريد ياخذ رقم 2 لماذا مع اننا فى البداية واتعتقد ان يحتاج قبل الكود ان نعرفه ان رقم التوريد اذا كان فارغ ياخذ رقم 1 ثم يسسلسل بعد ذلك
Foksh قام بنشر مايو 18 قام بنشر مايو 18 3 دقائق مضت, الحلبي said: لماذا مع اننا فى البداية واتعتقد ان يحتاج قبل الكود ان نعرفه ان رقم التوريد اذا كان فارغ ياخذ رقم 1 ثم يسسلسل بعد ذلك هل قمت بتحميل آخر مرفق في مشاركتي الأخيرة ؟؟؟؟؟؟ https://www.officena.net/ib/applications/core/interface/file/attachment.php?id=230011&key=82ec48622ab73edbcdc75988d22d14c5 الدالة DCount تعيد القيمة 0 تلقائياً اذا كان الجدول فارغاً !!!
الحلبي قام بنشر مايو 18 الكاتب قام بنشر مايو 18 6 دقائق مضت, Foksh said: هل قمت بتحميل آخر مرفق في مشاركتي الأخيرة ؟؟؟؟؟؟ نعم قمت بتحميله ولكن معلش استاذى امسح كل ارقام التوريد حاول ان تدخل اول سجل فماذا يكون رقم التوريد
ابوخليل قام بنشر مايو 18 قام بنشر مايو 18 تفضل يا دكتور تم الغاء شرط الصنف Me.Refresh Dim i As Integer i = Nz(DCount("*", "Query1"), 0) If i > 0 Then If i = 1 Then Me.k = 1 Else Me.k = i End If End If التوريد3.rar 1
أفضل إجابة الحلبي قام بنشر مايو 18 الكاتب أفضل إجابة قام بنشر مايو 18 6 دقائق مضت, ابوخليل said: فضل يا دكتور هو هذا الكلام ياسلام عليك معملنا الكبير وشيخنا الجليل ابو خليل الله الله الله الله عليك نعم هذا المطلوب الله يفتح عليك ويبارك فى عمرك واسرتك ويرحم والديك جزاك الله كل خير مع ان الاستاذ / فايد كاد ان يصل الى المطلوب ولكنه لم اوضح له السؤال بالقدر الكافى ولكنى اشكره واسف على تعبه معايا ولو كان الوقت بدرى شوية كان وصل للحل ولكن انا اعرف ظروفه جيدا فجزاك الله خير وبارك فى اسرتك ورحم والديك واتقدم بالشكر للأستاذ العظيم المخلص المحترم جدا الاستاذ / خليفة / @kkhalifa1960 وجزاه الله كل خير عنى ورحم الله والديه ورزقه بغير حساب وبارك فى صحته جزاكم الله خير فانتم خير مساعدا لنا فى هذا المنتدى انا لم اعرف اضع اسم من كأفضل اجابة اعذرونى لم اضع احدا لان كلهم تعبوا معى ومحرج جدا جدا جدا بين عمالقه اكسس 1
الحلبي قام بنشر مايو 19 الكاتب قام بنشر مايو 19 12 ساعات مضت, Foksh said: هل قمت بتحميل آخر مرفق في مشاركتي الأخيرة استاذى ومعلمى الاستاذ / فايد للمرة الثانية اكون انا المخطأ عشان يكون الترقيم مصبوط لازم امسح حقول التاريخ وحقول ترقيم الوارد معا ، انا كنت امسح ترقيم التوريد فقط عشان كده كان يعطينى تكرار وعدم التسلسل الصحيح انا اعتذر لك ياصاحبى وفعلا مثالك مصبوط 100% وانا العلطان ـ ارجو ان تتقبل اعتذارى وبعدين هل الاستاذ/ فايد تصعب عليه مثل هذه الامور انا عارف ومتأكد من خبراتك فى الاكسس جزاك الله كل خير
Foksh قام بنشر مايو 19 قام بنشر مايو 19 5 دقائق مضت, الحلبي said: استاذى ومعلمى الاستاذ / فايد للمرة الثانية اكون انا المخطأ عشان يكون الترقيم مصبوط لازم امسح حقول التاريخ وحقول ترقيم الوارد معا ، انا كنت امسح ترقيم التوريد فقط عشان كده كان يعطينى تكرار وعدم التسلسل الصحيح انا اعتذر لك ياصاحبى وفعلا مثالك مصبوط 100% وانا العلطان ـ ارجو ان تتقبل اعتذارى وبعدين هل الاستاذ/ فايد تصعب عليه مثل هذه الامور انا عارف ومتأكد من خبراتك فى الاكسس جزاك الله كل خير ولا يهمك يا دكتور ،، وهذا دليل على بل أخلاقك وطيب معدنك .. لا داعي للإعتذار صدقني ، والحمد لله على هذه النعمة التي أوتينا منها قليلا
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.