أحمد وجيه قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 الأخوة الكرام آمل مساعدتي في ترقيم حقل رقم الحركة داخل نموذج (movement_in) بحيث يبدأ بحرفي (EN) ثم رقم السنة الحالية (22) ثم الشهر الحالي واليوم ليصبح الشكل النهائي كالتالي (EN220408000001) مرفق قاعدة البيانات حيث استطعت اضافة الحروف والسنة ولكن لم استطع اضافة الشهر واليوم الحركة.accdbFetching info...
ابو جودي قام بنشر أبريل 8, 2022 قام بنشر أبريل 8, 2022 في 8/4/2022 at 04:19, أحمد وجيه said: ولكن لم استطع اضافة الشهر واليوم Expand طيب للسنة استخدم 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 في 8/4/2022 at 12:11, ابو جودي 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") Expand عدلت الكود ولكن لاحظت أنه لايتم زيادة الرقم تصاعدي وانه يتكرر نفس الرقم في كل مرة يعني المفروض اول سجل بيكون كالتالي EN220408001 فالسجل الثاني يكون رقمه EN220408002 وهكذا تصاعدي الحركة.accdbFetching info... 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 في 8/4/2022 at 12:29, أحمد وجيه said: عدلت الكود ولكن لاحظت أنه لايتم زيادة الرقم تصاعدي وانه يتكرر نفس الرقم في كل مرة Expand طبعا لن يزيد الان صيام بعيدا عن المزاح انا لم اقم بالتجربة ولم اقترب من تلك الجزئية لا من قريب ولا من بعيد لو كانت موجودة الان فذلك لانها مشكلة ازلية بناء على تطبيقكم انتم وليس تعديلى انا ابشر سوف ارى ما يمكن عمله
ابو جودي قام بنشر أبريل 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).accdbFetching info... 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") الحركة.accdbFetching info... 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 مش عارف بقى في حل للموضوه ده ولا لأ 😅 الحركة.accdbFetching info... 1
تمت الإجابة Moosak قام بنشر أبريل 9, 2022 تمت الإجابة قام بنشر أبريل 9, 2022 تم التعديل أخي أحمد حسب المعطيات الجديدة .. في المرة القادمة عليك أن تسرد جميع المعطيات من البداية لكي يتم كتابة الكود حسب المعطيات 🙂 فأنت لم تذكر بأن الترقيم يتجدد يوميا من قبل 😏 الحركة (1).accdbFetching info... 1 1
ابو جودي قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 في 9/4/2022 at 12:19, Moosak said: لكي يتم كتابة الكود حسب المعطيات 🙂 Expand طيب ولماذا نكتب الكود حسب المعطيات ليه ما نكتب كود ذكى وهو يشتغل لحاله حسب حاجة المستخدم يعنى بدون لا تعديل فى كتابة الاكواد ولا شئ ويقدر يشتغل مع اى قاعدة او اى جدول او اى حقل مهما كانت الاسماء واختلفت كمان يكون اكثر ذكاء يقدر يبدا الترقيم بالبادئة الى يريدها المستخدم en , ex or Mossa كمان يكون اكثر ذكاء يقدر يقدر يعمل اعادة التعيين للترقيم حسب الحاجة يوميا او شهريا او سنويا يعنى يعمل رسيت لوحدة حسب انت عاوزه يعمل الرسيت امتى من نفسه لوحده بدون ما تدخل تعدل شئ فى الكود فكر كده شوية يا باش مهندس ودعبس هنا وهناك @Moosak الاقيش عندك الكود الذكى ده لو مش عتدك اتفضل 1
Moosak قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 في 10/4/2022 at 15:09, ابو جودي said: فكر كده شوية يا باش مهندس ودعبس هنا وهناك @Moosak الاقيش عندك الكود الذكى ده لو مش عتدك اتفضل Expand هو أنا هلحق أعمل حاجة قبلك وأنت اللي يسموك @ابو جودي ("قاهر الأكسس")Cstr حتى إني كتبتهالك في دالة 😂 أنت شخص متفجر بالأفكار ما شاء الله عليك 😄 وأنا كمان حاليا شغال على حاجة كبيرة .. سترى النور قريبا إن شاء الله 😉💪🏼 1
Eng.Qassim قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 (معدل) 😂 في 10/4/2022 at 20:15, Moosak said: ("قاهر الأكسس")Cstr Expand ("قاهر الأكسس")Cstr= ابو جودي تم تعديل أبريل 10, 2022 بواسطه Eng.Qassim 1
ابو جودي قام بنشر أبريل 10, 2022 قام بنشر أبريل 10, 2022 في 10/4/2022 at 20:15, Moosak said: هو أنا هلحق أعمل حاجة قبلك Expand كلنا واحد والمهم هو الوصول الى الغاية واعوذ بالله واياكم من القهر في 10/4/2022 at 20:15, Moosak said: أنت شخص متفجر بالأفكار ما شاء الله عليك 😄 Expand جزاكم الله خيرا ... لكن والله ان الاجابات والحلول رزق من الله تعالى وفقط يستعملنى الله تعالى لاكون سبب ليس الا قاللهم اسأل ان يستعملنى فى الخير دائما وابدا في 10/4/2022 at 20:15, Moosak said: شغال على حاجة كبيرة .. سترى النور قريبا إن شاء الله Expand ما شاء الله .. اسأل الله لكم التوفيق والسداد انتظر على أحر من الجمر بزوغ هذا النور ان شاء الله ولازلت اصر واتمنى وانادى ان تطرح افكار يتم النقاش حولها ويتم تناولها والعمل عليها بشكل جماعى حتما العمل الجماعى يولد الافكار ويزيد حصيلة الخيال اتمنى من كل قلبى ان نطلق العنان لافكارنا مجتمعين سوف تحدث فارق كبير بإذن الله على سبيل المثال تلك الافكار التى وضعتها اليوم لهذا الكود طبعا ولان اخونا الحبيب الاستاذ @أحمد وجيه وكما تفضلتم استاذى لم يسرد جميع المعطيات من البداية تم وضع الحلول بشكل عام تبعا للمرفق الذى تقدم به ولكن مع سررد الطلبات تباعا وبعد تقديم الحلول صالت وجالت بنات افكارى لوضع الكود بشكل وظيفة عامة تلبى كل الاحتياجات دون تكرار الاكواد تبعا لكل حالة فلو لاحظت فى تلك الاقتباسات في 9/4/2022 at 10:54, أحمد وجيه said: - رقم الحركة مش بيتغير يومي Expand وكذلك في 9/4/2022 at 10:54, أحمد وجيه said: 2 - كان من المفترض ان رقم الحركة في شاشة movement_in بيبدأ بـ EN وفي شاشة movement_OUT بيبدأ بـ EX ودي أنا عدلتها باستخدام نفس الكود لكن المطلوب انه في كل حالة رقم الحركة يبقى تسلسلي حسب نوع الحركة اللي هي دخول وبشير لها بـ EN وخروج اللي بشير لها بـ EX وده كالتالي : EN220409001 EN220409002 EN220409003 EX220409001 EX220409002 EX220409003 Expand وبذلك لابد من كتابة الاكواد اكثر من مرة تبعا لكل جدول ولكل حالة للبادئة فـ أنا الان أحاول جاهدا ان تكون الأكواد فى وظائف عامة قدر الامكان لتلبى كل الاحتياجات قدر الامكان للتقليل من استخدام الاكواد مستقبلا وبفضل الله تعالى والحمد لله الذى هدانا لهذا وما كنا لنهتدى لولا ان هدانا الله عزوجل تم الحصول على نتيجة من وجهة نظرى المتواضعة مرنة وشاملة وأحسبها كافية و وافية 1
Moosak قام بنشر أبريل 11, 2022 قام بنشر أبريل 11, 2022 في 10/4/2022 at 21:49, ابو جودي said: ولازلت اصر واتمنى وانادى ان تطرح افكار يتم النقاش حولها ويتم تناولها والعمل عليها بشكل جماعى حتما العمل الجماعى يولد الافكار ويزيد حصيلة الخيال اتمنى من كل قلبى ان نطلق العنان لافكارنا مجتمعين سوف تحدث فارق كبير بإذن الله Expand أنا معاك تمام بشا مهندس محمد في هذي النقطة 👍🏻 ، لكن أحس المنتدى نايم هذي اليومين ، الناس مشغولة بالعبادة واستغلال الشهر الكريم، الله يتقبل من الجميع 🙂 .
أحمد وجيه قام بنشر أبريل 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.