أحمد وجيه قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 الأخوة الكرام آمل مساعدتي في ترقيم حقل رقم الحركة داخل نموذج (movement_in) بحيث يبدأ بحرفي (EN) ثم رقم السنة الحالية (22) ثم الشهر الحالي واليوم ليصبح الشكل النهائي كالتالي (EN220408000001) مرفق قاعدة البيانات حيث استطعت اضافة الحروف والسنة ولكن لم استطع اضافة الشهر واليوم الحركة.accdb
ابو جودي قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 7 ساعات مضت, أحمد وجيه said: ولكن لم استطع اضافة الشهر واليوم طيب للسنة استخدم Format(Date(),"yy") وللشهر استخدم Format(Date(),"mm") ولليوم استخدم Format(Date(),"dd") ولى عودة مرة اخرى للموضوع لتوضيح واضافة بعض الملاحظات داخل قاعدتك ولكن اعطنى قليل من الوقت
أحمد وجيه قام بنشر أبريل 8, 2022 الكاتب قام بنشر أبريل 8, 2022 أستاذنا @ابو جودي إذا أمكن تطبق التعديل على المرفق لأنه مش بيظبط معي
ابو جودي قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 اتفضل الكود بعد التعديل On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtMt, prtDy, prtTxt As Integer prtyr = Format(Date, "yy") prtMt = Format(Date, "mm") prtDy = Format(Date, "dd") prtTxt = CLng(Mid(DMax("movement_N", "movement"), 2, 2)) xLast = CLng(Right(DMax("movement_N", "movement", prtTxt = prtyr), 6)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!movement_N = "EN" & prtyr & prtMt & prtDy & Format(xNext, "000000")
أحمد وجيه قام بنشر أبريل 8, 2022 الكاتب قام بنشر أبريل 8, 2022 16 دقائق مضت, ابو جودي said: On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtMt, prtDy, prtTxt As Integer prtyr = Format(Date, "yy") prtMt = Format(Date, "mm") prtDy = Format(Date, "dd") prtTxt = CLng(Mid(DMax("movement_N", "movement"), 2, 2)) xLast = CLng(Right(DMax("movement_N", "movement", prtTxt = prtyr), 6)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!movement_N = "EN" & prtyr & prtMt & prtDy & Format(xNext, "000000") عدلت الكود ولكن لاحظت أنه لايتم زيادة الرقم تصاعدي وانه يتكرر نفس الرقم في كل مرة يعني المفروض اول سجل بيكون كالتالي EN220408001 فالسجل الثاني يكون رقمه EN220408002 وهكذا تصاعدي الحركة.accdb 1
ابو جودي قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 بالنسبة للملاحظات وجدتك تستخدم DLookup اكثر من مرة فى نفس الحدث لمجرد احضار بيانات من حقول اخرى لنفس الجدول اتفضل اهديكم احضار بيانات دفعة واحدة من اكثر من حقل عن طريق المصفوفات من خلال الـ DLookup على طريقة استاذى الجليل ومعلمى القدير و والدى الجبيب الاستاذ @jjafferr Dim strDLookupFlds As String Dim stLinkCriteria As String Dim MyVariable As String Dim Arry() As String Dim ChosFld As String MyVariable = 1 stLinkCriteria = "[FldCriteria]=" & MyVariable '|Numeric 'MyVariable = "Mahmoud" 'stLinkCriteria = "[FldCriteria] ='" & MyVariable & "'" '|String 'MyVariable = "03/01/1982" 'stLinkCriteria = "[FldCriteria] =#" & MyVariable & "#" '|Date strDLookupFlds = DLookup("[Fld1] & '|' & [Fld2] & '|' & [Fld3] & '|' & [Fld4] & '|' & [Fld5] & '|' & [Fld6] & '|' & [Fld7] & '|' & [Fld8]& '|' & [Fld9]", "[tblName]", stLinkCriteria) Arry = Split(strDLookupFlds, "|") Debug.Print strDLookupFlds ChosFld = Arry(0) Debug.Print ChosFld 'Arry(0) = Fld1 'Arry(1) = Fld2 'Arry(2) = Fld3 'Arry(3) = Fld4 'Arry(4) = Fld5 'Arry(5) = Fld6 'Arry(6) = Fld7 'Arry(7) = Fld8 'Arry(8) = Fld9 1 دقيقه مضت, أحمد وجيه said: عدلت الكود ولكن لاحظت أنه لايتم زيادة الرقم تصاعدي وانه يتكرر نفس الرقم في كل مرة طبعا لن يزيد الان صيام بعيدا عن المزاح انا لم اقم بالتجربة ولم اقترب من تلك الجزئية لا من قريب ولا من بعيد لو كانت موجودة الان فذلك لانها مشكلة ازلية بناء على تطبيقكم انتم وليس تعديلى انا ابشر سوف ارى ما يمكن عمله
ابو جودي قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 اتفضل انا عملت لك الكود بالشكل ده حتى يكون مرن فيمكن استخدامة لاى قاعدة ومع اى جدول Function MyID(ByRef strFieldName As String, ByRef strTableName As String) Dim lngNextNumber As Long Dim strNextNumber As String Dim strNewID As String Const intNumberOfZeros = 6 lngNextNumber = Nz(Right(DLast("[" & strFieldName & "]", strTableName), intNumberOfZeros), 0) + 1 strNextNumber = String(intNumberOfZeros - Len(CStr(lngNextNumber)), "0") & CStr(lngNextNumber) strNewID = "EN" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & strNextNumber MyID = strNewID End Function طبعا ممكن وضع الوظيفة السابقة فى موديول ويتم استدعاؤه حسب الحاجة تبعا لاسم الجدول واسم حقل الترقيم المخصص داخل الجدول من خلال السطر الاتى TextBox= MyID("movement_N", "movement") ملاحظة ممكن تتحكم فى عدد الاصفار من خلال تغيير الرقم 6 فى السطر تبعا للعد اللى تبغاه انت Const intNumberOfZeros = 6 الحركة (3).accdb 1
Moosak قام بنشر أبريل 9, 2022 قام بنشر أبريل 9, 2022 اسمحلي أستاذي الغالي @ابو جودي المشاركة معكم بهذه الطريقة التي عملتها سابقا وعدلتها للتناسب مع طلب الأخ العزيز @أحمد وجيه 🙂 للعلم أن الكود يعيد الترقيم من 1 بداية كل سنة جديدة 🙂 ويمكن تغيير ذلك إن شئت المواصلة لكل الأعوام .. الكود : Public Function NewID(strFieldinTable As String, strTable As String) As String 'This function returnes Value like This : EN220409000001 Dim T, CY, Y, M, D, OldN, NewN, LID LID = DMax(strFieldinTable, strTable) ' Brings The last ID from the table T = "EN" CY = Mid(LID, 3, 2) Y = Format(Date, "yy") M = Format(Date, "mm") D = Format(Date, "dd") OldN = Right(LID, 6) NewN = OldN + 1 If CY = Y Then NewID = T & CY & M & D & Format(NewN, "000000") Else NewID = T & Y & M & D & "000001" End If End Function ويتم استدعائه في حدث قبل الادراج هكذا : Me!movement_N = NewID("movement_N", "movement") الحركة.accdb 1
أحمد وجيه قام بنشر أبريل 9, 2022 الكاتب قام بنشر أبريل 9, 2022 شاكر لأستاذنا الغالي @ابو جودي وأستاذنا الغالي @Moosak على مساهمتكم الرائعة في حل مشكلتي بعد تطبيق الطريقتين اكتشفت التالي : 1 - رقم الحركة مش بيتغير يومي يعني كان من المفترض انه يبدأ كل يوم يعد من رقم 1 مع تغيير التاريخ كالتالي : يوم 08/04/2022 هيبدأ الرقم بـ EN220408001 ويوم 09/04/2022 مش هيكمل على ترقيم اليوم السابق لأ هيبدأ من الأول ويبقى الرقم كده EN220409001 2 - كان من المفترض ان رقم الحركة في شاشة movement_in بيبدأ بـ EN وفي شاشة movement_OUT بيبدأ بـ EX ودي أنا عدلتها باستخدام نفس الكود لكن المطلوب انه في كل حالة رقم الحركة يبقى تسلسلي حسب نوع الحركة اللي هي دخول وبشير لها بـ EN وخروج اللي بشير لها بـ EX وده كالتالي : EN220409001 EN220409002 EN220409003 EX220409001 EX220409002 EX220409003 وهكذا الى ان يتغير اليوم فيبدأ الترقيم مرة أخرى من رقم 001 مش عارف بقى في حل للموضوه ده ولا لأ 😅 الحركة.accdb 1
أفضل إجابة Moosak قام بنشر أبريل 9, 2022 أفضل إجابة قام بنشر أبريل 9, 2022 تم التعديل أخي أحمد حسب المعطيات الجديدة .. في المرة القادمة عليك أن تسرد جميع المعطيات من البداية لكي يتم كتابة الكود حسب المعطيات 🙂 فأنت لم تذكر بأن الترقيم يتجدد يوميا من قبل 😏 الحركة (1).accdb 1 1
ابو جودي قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 في 9/4/2022 at 14:19, Moosak said: لكي يتم كتابة الكود حسب المعطيات 🙂 طيب ولماذا نكتب الكود حسب المعطيات ليه ما نكتب كود ذكى وهو يشتغل لحاله حسب حاجة المستخدم يعنى بدون لا تعديل فى كتابة الاكواد ولا شئ ويقدر يشتغل مع اى قاعدة او اى جدول او اى حقل مهما كانت الاسماء واختلفت كمان يكون اكثر ذكاء يقدر يبدا الترقيم بالبادئة الى يريدها المستخدم en , ex or Mossa كمان يكون اكثر ذكاء يقدر يقدر يعمل اعادة التعيين للترقيم حسب الحاجة يوميا او شهريا او سنويا يعنى يعمل رسيت لوحدة حسب انت عاوزه يعمل الرسيت امتى من نفسه لوحده بدون ما تدخل تعدل شئ فى الكود فكر كده شوية يا باش مهندس ودعبس هنا وهناك @Moosak الاقيش عندك الكود الذكى ده لو مش عتدك اتفضل 1
Moosak قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 5 ساعات مضت, ابو جودي said: فكر كده شوية يا باش مهندس ودعبس هنا وهناك @Moosak الاقيش عندك الكود الذكى ده لو مش عتدك اتفضل هو أنا هلحق أعمل حاجة قبلك وأنت اللي يسموك @ابو جودي ("قاهر الأكسس")Cstr حتى إني كتبتهالك في دالة 😂 أنت شخص متفجر بالأفكار ما شاء الله عليك 😄 وأنا كمان حاليا شغال على حاجة كبيرة .. سترى النور قريبا إن شاء الله 😉💪🏼 1
Eng.Qassim قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 (معدل) 😂 16 دقائق مضت, Moosak said: ("قاهر الأكسس")Cstr ("قاهر الأكسس")Cstr= ابو جودي تم تعديل أبريل 10, 2022 بواسطه Eng.Qassim 1
ابو جودي قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 2 ساعات مضت, Moosak said: هو أنا هلحق أعمل حاجة قبلك كلنا واحد والمهم هو الوصول الى الغاية واعوذ بالله واياكم من القهر 2 ساعات مضت, Moosak said: أنت شخص متفجر بالأفكار ما شاء الله عليك 😄 جزاكم الله خيرا ... لكن والله ان الاجابات والحلول رزق من الله تعالى وفقط يستعملنى الله تعالى لاكون سبب ليس الا قاللهم اسأل ان يستعملنى فى الخير دائما وابدا 2 ساعات مضت, Moosak said: شغال على حاجة كبيرة .. سترى النور قريبا إن شاء الله ما شاء الله .. اسأل الله لكم التوفيق والسداد انتظر على أحر من الجمر بزوغ هذا النور ان شاء الله ولازلت اصر واتمنى وانادى ان تطرح افكار يتم النقاش حولها ويتم تناولها والعمل عليها بشكل جماعى حتما العمل الجماعى يولد الافكار ويزيد حصيلة الخيال اتمنى من كل قلبى ان نطلق العنان لافكارنا مجتمعين سوف تحدث فارق كبير بإذن الله على سبيل المثال تلك الافكار التى وضعتها اليوم لهذا الكود طبعا ولان اخونا الحبيب الاستاذ @أحمد وجيه وكما تفضلتم استاذى لم يسرد جميع المعطيات من البداية تم وضع الحلول بشكل عام تبعا للمرفق الذى تقدم به ولكن مع سررد الطلبات تباعا وبعد تقديم الحلول صالت وجالت بنات افكارى لوضع الكود بشكل وظيفة عامة تلبى كل الاحتياجات دون تكرار الاكواد تبعا لكل حالة فلو لاحظت فى تلك الاقتباسات في 9/4/2022 at 12:54, أحمد وجيه said: - رقم الحركة مش بيتغير يومي وكذلك في 9/4/2022 at 12:54, أحمد وجيه said: 2 - كان من المفترض ان رقم الحركة في شاشة movement_in بيبدأ بـ EN وفي شاشة movement_OUT بيبدأ بـ EX ودي أنا عدلتها باستخدام نفس الكود لكن المطلوب انه في كل حالة رقم الحركة يبقى تسلسلي حسب نوع الحركة اللي هي دخول وبشير لها بـ EN وخروج اللي بشير لها بـ EX وده كالتالي : EN220409001 EN220409002 EN220409003 EX220409001 EX220409002 EX220409003 وبذلك لابد من كتابة الاكواد اكثر من مرة تبعا لكل جدول ولكل حالة للبادئة فـ أنا الان أحاول جاهدا ان تكون الأكواد فى وظائف عامة قدر الامكان لتلبى كل الاحتياجات قدر الامكان للتقليل من استخدام الاكواد مستقبلا وبفضل الله تعالى والحمد لله الذى هدانا لهذا وما كنا لنهتدى لولا ان هدانا الله عزوجل تم الحصول على نتيجة من وجهة نظرى المتواضعة مرنة وشاملة وأحسبها كافية و وافية 1
Moosak قام بنشر أبريل 11, 2022 قام بنشر أبريل 11, 2022 7 ساعات مضت, ابو جودي said: ولازلت اصر واتمنى وانادى ان تطرح افكار يتم النقاش حولها ويتم تناولها والعمل عليها بشكل جماعى حتما العمل الجماعى يولد الافكار ويزيد حصيلة الخيال اتمنى من كل قلبى ان نطلق العنان لافكارنا مجتمعين سوف تحدث فارق كبير بإذن الله أنا معاك تمام بشا مهندس محمد في هذي النقطة 👍🏻 ، لكن أحس المنتدى نايم هذي اليومين ، الناس مشغولة بالعبادة واستغلال الشهر الكريم، الله يتقبل من الجميع 🙂 .
أحمد وجيه قام بنشر أبريل 11, 2022 الكاتب قام بنشر أبريل 11, 2022 الأخوة الكرام حقيقي عاجز عن شكركم جميعا ، جزاكم الله خير الجزاء
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.