اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

ارجو اعطائي درس في فن التكرر و التسلسل جملة او كلمة او حرف متكرر مع تسلسل ارقام و احرف متتالية


إذهب إلى أفضل إجابة Solved by husamwahab,

الردود الموصى بها

ارجو  شرح لي درس في التكرار احرف مع تسلسل مثال (AA-00) الى (ZZ-99) يكون التكرار يبداء AA-02 / AA-01 / AA-00 و AB-9 الى ZZ-99 

بفكرة اخري عندي جدول اريد عمل تكويد احرف و ارقام متسلسلة و احرف متالية 0-A الى ZZZZZ-99999 

وشكرا

رابط هذا التعليق
شارك

طيب يا اخواني ما في احد يساعد و يعطني معلومه او يرشدني الى درس في تكرار الكلمة و تسلسل الارقم كده السكوت يسبب توتر و قلق

رابط هذا التعليق
شارك

  • أفضل إجابة

السلام عليكم استاذ ابو عبد الله

طلبك هو تسلسل يعتمد على تغير الرقم والحرف

بهذه الحالة هناك طريقتين 

الاولى : ثبات الحرف وتغير الرقم وصولا الى الرقم 99999 ثم يبدا الترقيم من جديد مع حرف جديد

الثانية : ثبات الرقم وتغير الحروف وصولا الى

zzzzz

ثم يبدا الترقيم من جديد مع رقم جديد

فالامر يشبه ورقة الاكسل الاولوية للصف ام للعمود

احد الامثلة يشير الى الطريقة الاولى لكن للتاكد اي الطريقتين طلبك

وعذرا للاطالة

DB.rar

تم تعديل بواسطه husamwahab
  • Like 3
رابط هذا التعليق
شارك

شكرا بارك الله فيكم .... التكرار اخواني الجدولين ممتازين (فقط اريد حاجتين التكرار و التبديل للاحرف و التبديل بينها من AA00,AA99-AB00,AB99-BA00, الى ZZ99

وثانيا الى ادراجها في جدول TAB في الاكسس ) ..  مطلوبه يوم السبت في الجامعة ... وشكراً

تم تعديل بواسطه ابوعبدالله_1972
رابط هذا التعليق
شارك

جرب هذا الكود:
 

Function NextCode(PrevCode As String) As String
  Dim fL As String
  Dim sL As String
  Dim No As Byte
  
  'Validation
  NextCode = PrevCode
  If Len(PrevCode) <> 4 Then Exit Function
  If Not IsNumeric(Right(PrevCode, 2)) Then Exit Function
  
  fL = Mid(PrevCode, 1, 1)
  sL = Mid(PrevCode, 2, 1)
  No = Mid(PrevCode, 3, 2)
  
  If Not fL Like "[A-Z]" Then Exit Function
  If Not sL Like "[A-Z]" Then Exit Function
  
  'Start Coding ----------------------------------
  If No < 99 Then
    No = No + 1
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If sL < "Z" Then
    No = 1
    sL = Chr(Asc(sL) + 1)
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If fL < "Z" Then
    No = 1
    fL = Chr(Asc(fL) + 1)
    NextCode = fL & sL & Format(No, "00")
    'Exit Function
  End If
End Function

Sub test()
  Dim Seq As Integer
  Dim NewCode As String
  
  NewCode = "AA00"
  For Seq = 1 To 10000
    NewCode = NextCode(NewCode)
    Debug.Print NewCode
    If NewCode = "ZZ99" Then Exit For
  Next Seq
End Sub

في حالة أن أردت الرقم يبدأ من صفر بدل السطرين من No = 1 إلى No = 0

  • Like 2
رابط هذا التعليق
شارك

اسعد الله ايامكم في هذا الجدمعة المباركة و يجعلكم ربي من المبروكين بذن الله العلي الكريم

Hawiii استاذي لا اعرف كيف اكتب الاكود .. ممكن تكمل جميلك و ترسلها لي

رابط هذا التعليق
شارك

أنا لا أعرف مطلبك بالضبط ، فإذا مطلبك فقط هو حلقات تكرارية من البداية إلى النهاية دفعة واحدة وتحفظ في جدول فعليك بمثال أخينا @husamwahab فهو مثال ممتاز.

عن مثالي:
مثالي هو دالة تولد كود جديد للسجل التالي بناء على الكود الحالي أو المعطى.
وأستطيع أن أصنع لك آخر للسجل السابق بحيث تستطيع التقليب بني الأكواد دون الحاجة لتخزينها ودون أن تضطر أن تبدأ من أصغر/أول كود في السلسلة.
ويمكنك كذلك استعراض كامل السلسلة بعمل إجراء إضافي.

إذا رغبت في فكرتي فأخبرني كيف تريد المثال ، هل تريد نموذج "فورم" يأخذ منك أحد الأكواد ثم يظهر لك الكود السابق والكود الحالي؟

وأرجع وأؤكد عليك في حالة رغبتك فقط إضافة كامل السلسلة في جدول فعليك بمثال حسام.
أنتظر ردك.

رابط هذا التعليق
شارك

منذ ساعه, Hawiii said:

أنا لا أعرف مطلبك بالضبط ، فإذا مطلبك فقط هو حلقات تكرارية من البداية إلى النهاية دفعة واحدة وتحفظ في جدول فعليك بمثال أخينا @husamwahab فهو مثال ممتاز.

عن مثالي:
مثالي هو دالة تولد كود جديد للسجل التالي بناء على الكود الحالي أو المعطى.
وأستطيع أن أصنع لك آخر للسجل السابق بحيث تستطيع التقليب بني الأكواد دون الحاجة لتخزينها ودون أن تضطر أن تبدأ من أصغر/أول كود في السلسلة.
ويمكنك كذلك استعراض كامل السلسلة بعمل إجراء إضافي.

إذا رغبت في فكرتي فأخبرني كيف تريد المثال ، هل تريد نموذج "فورم" يأخذ منك أحد الأكواد ثم يظهر لك الكود السابق والكود الحالي؟

وأرجع وأؤكد عليك في حالة رغبتك فقط إضافة كامل السلسلة في جدول فعليك بمثال حسام.
أنتظر ردك.

ماشاء الله عليك فناااان 

ياليت لو تفحت فيها موضوع جديد عشان نستفيد مثل هذه الامثلة تزيد من حصيلتنا العلمية في برمجة الاكسس و خاصة اننا مبتدئين 😅

3 ساعات مضت, Hawiii said:

في حالة أن أردت الرقم يبدأ من صفر بدل السطرين من No = 1 إلى No = 0

سؤال مهم اذا حبيت ان الرقم يبدء من صفرين كيف الطريقة 001 - 002 و يكون قبلها الأحرف

رابط هذا التعليق
شارك

وجدت خطأ في الكود السابق ، ياريت من الإداريين حذفه
أنا الآن أفحص الكود وقد أضفت عليه زيادات وكذلك عملت دالة أخرى لتعطينا الكود السابق.

5 دقائق مضت, د.كاف يار said:

سؤال مهم اذا حبيت ان الرقم يبدء من صفرين كيف الطريقة 001 - 002 و يكون قبلها الأحرف

إذن لننتهي من قضاء حاجة السائل ، وسأبدأ بتطوير الدالتين فورا بمزيد من الخيارات إن شاء الله.

  • Like 1
رابط هذا التعليق
شارك

الكود بعد التصحيح
 

Function NextCode(ByVal PrevCode As Variant) As String
  Dim fL As String
  Dim sL As String
  Dim No As Byte
  
  'Validation ----------------------------------
  NextCode = ""
  PrevCode = Trim(Nz(PrevCode, ""))
  If PrevCode = "" Then
    NextCode = "AA01"
    Exit Function
  End If
  
  If Len(PrevCode) <> 4 Then Exit Function
  If Not IsNumeric(Right(PrevCode, 2)) Then Exit Function
  
  fL = Mid(PrevCode, 1, 1)
  sL = Mid(PrevCode, 2, 1)
  No = Mid(PrevCode, 3, 2)
  
  If Not fL Like "[A-Z]" Then Exit Function
  If Not sL Like "[A-Z]" Then Exit Function
  
  'Start Coding ----------------------------------
  If No < 99 Then
    No = No + 1
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If sL < "Z" Then
    No = 1
    sL = Chr(Asc(sL) + 1)
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If fL < "Z" Then
    No = 1
    sL = "A"
    fL = Chr(Asc(fL) + 1)
    NextCode = fL & sL & Format(No, "00")
    'Exit Function
  End If
End Function


Sub TestNext()
  Dim rst As Recordset
  Dim Seq As Long
  Dim NewCode As String
  
  DoCmd.RunSQL "Delete * from Table1;"
  Set rst = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)

  NewCode = ""
  With rst
    For Seq = 1 To 100000
      NewCode = NextCode(NewCode)
      .AddNew
        !Seq = Seq
        !Code = NewCode
      .Update
      If NewCode = "ZZ99" Then Exit For
    Next Seq
  End With
  
  rst.Close
  MsgBox "Done"
End Sub

 

  • Like 2
رابط هذا التعليق
شارك

2 ساعات مضت, Hawiii said:

الكود بعد التصحيح
 

Function NextCode(ByVal PrevCode As Variant) As String
  Dim fL As String
  Dim sL As String
  Dim No As Byte
  
  'Validation ----------------------------------
  NextCode = ""
  PrevCode = Trim(Nz(PrevCode, ""))
  If PrevCode = "" Then
    NextCode = "AA01"
    Exit Function
  End If
  
  If Len(PrevCode) <> 4 Then Exit Function
  If Not IsNumeric(Right(PrevCode, 2)) Then Exit Function
  
  fL = Mid(PrevCode, 1, 1)
  sL = Mid(PrevCode, 2, 1)
  No = Mid(PrevCode, 3, 2)
  
  If Not fL Like "[A-Z]" Then Exit Function
  If Not sL Like "[A-Z]" Then Exit Function
  
  'Start Coding ----------------------------------
  If No < 99 Then
    No = No + 1
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If sL < "Z" Then
    No = 1
    sL = Chr(Asc(sL) + 1)
    NextCode = fL & sL & Format(No, "00")
    Exit Function
  End If
  
  If fL < "Z" Then
    No = 1
    sL = "A"
    fL = Chr(Asc(fL) + 1)
    NextCode = fL & sL & Format(No, "00")
    'Exit Function
  End If
End Function


Sub TestNext()
  Dim rst As Recordset
  Dim Seq As Long
  Dim NewCode As String
  
  DoCmd.RunSQL "Delete * from Table1;"
  Set rst = CurrentDb.OpenRecordset("Table1", dbOpenDynaset)

  NewCode = ""
  With rst
    For Seq = 1 To 100000
      NewCode = NextCode(NewCode)
      .AddNew
        !Seq = Seq
        !Code = NewCode
      .Update
      If NewCode = "ZZ99" Then Exit For
    Next Seq
  End With
  
  rst.Close
  MsgBox "Done"
End Sub

 

منطقيا و عمليا لا فائدة من هذا العمل 

مجهود و ضياع وقت دون فائدة

ليس كل ا يدور في العقل من تجارب يحب ان تنفذ فالبرمج اساسها المنطق

عيني ما اقصد في الكلام لكن هذا واقع بشكل كبير في المنتدى

رابط هذا التعليق
شارك

اسعد الله ايامكم في هذا الجمعة المباركة و يجعلكم ربي من المبروكين بذن الله العلي الكريم

ليس كل ا يدور في العقل من تجارب يحب ان تنفذ فالبرمج اساسها المنطق

كلامك 100% و لكن احد اولادي  قسم علوم السياسة و الاقتصاد ليس لها في الكمبيوتر اي علم و لكن استاذ المادة (( اسمها تكود العناوين )) طلب منا هذا الملف بنفس هذا الصيغة و الاضافات المضافة في الملف

 
اسال الله العلي القدير ان يبارك لكم في علمكم و ابنائكم و صحتكم و مالكم و كل من يعزي على قلبكم
اطلب من الله ثم منكم ارفقت جدول عمل من عملكم معدل علية بعض الاضافات المطلوبة اريد من الله ثم منكم ان يتم العمل عليه ((اطلب من الله ثم منكم الا تنسوني و الرد بارك الله فيكم )

 

 

DB-1-بعد الاضافة.zip

رابط هذا التعليق
شارك

49 دقائق مضت, ابوعبدالله_1972 said:

ارفع الملف بإصدار 2007 أو أقل 
علما إذا أردت التعديل على عمل غيري فأنا أعتذر ، فالمبرمج للمثال هو أولى بتكملة طلبك.

رابط هذا التعليق
شارك

منذ ساعه, طلب اكسس said:

منطقيا و عمليا لا فائدة من هذا العمل 

مجهود و ضياع وقت دون فائدة

ليس كل ا يدور في العقل من تجارب يحب ان تنفذ فالبرمج اساسها المنطق

عيني ما اقصد في الكلام لكن هذا واقع بشكل كبير في المنتدى

هو مثال للترميز/التكويد وهو مطلوب لبرامج البنوك والمحاسبة والمخازن وخصوصا البرامج التي ترمز بنظام الشرائح Segments.
وليس كل ما تدرسه/تتعلمه لا بد من تطبيقه في حياتك العملية فيكفيها أنها تساعد على نمو قدراتك في تفكيك وبناء كل شائك يعترض مسيرتك العملية.

رابط هذا التعليق
شارك

اسال الله رب العرش العظيم و اسال ان يبارك فيكم جميعا و عزكم و اكرمكم شكر لكم (يقول عليه الصلاة و السلام لايشكر الله من لايشكر الناس) شكر الف شكر لكم بارك الله فيكم و رزقكم الله بصحة و تنزل عليكم البركات حبيب قلبي طلب صغير اعلم باني تثاقلت عليكم بطلبات ..و اطلب من الله ثم منكم تكملة الجميل

(ان علطان في البداية و لايكون في نفسكم اي شئ ...  :-

عدد الاحرف لايساوي عدد الاقام ممكن تزيد الارقام او ويقل عدد الحروف و العكس كذلك (مطلوب فعلاً). مثلا الاحرف البداء 5 و الانتهاء 5
الاحرف ممكن صغيرة و كبيرة . و الارقام البداء 3 و الانتهاء 3 ارقام و الكمية مفتوحة . و يعطني كل تنبية الوحده . (يستمر (نعم/لا) ؟

و يعطني كل تنبية الوحده . (يستمر (نعم/لا) ؟

1 = ان عدد الارقام مختلف مع عدد الحروف.            يعطني تنبية الوحده . (يستمر (نعم/لا) ؟                                  
2 = ان عدد الحروف مختلف عدد الارقام.            يعطني تنبية الوحده . (يستمر (نعم/لا) ؟
3 = ان عدد الارقام في البداء يختلف في الانتهاء (في البدء 2 و النهاية 3) ؟     يعطني تنبية الوحده . (يستمر (نعم/لا) ؟
4 = ان عدد الارقام في البداء اكثر من النهاية  (في البدء 3 و النهاية 2) ؟     (يرفض) يجب تعديل الارقام في البداية تكون اقل من النهاية او متساوي العدد                          
5 = ان عدد الاحرف في البداء يختلف في الانتهاء.  يعطني تنبية الوحده . (يستمر (نعم/لا) ؟
6 = ان عدد الاحرف في الانتهاء يختلف في البداء.(عدد الاحرف في النهاية اقل من البداية) ؟(يرفض)يجب تعديل الادخالات عددللاحرف في البدايةتكون اقل من النهايةاو متساوي العدد
7 = ان حجم (حرف صغيراوكبير) الاحرف في البداء يختلف في الانتهاء. ؟ يعطني تنبية الوحده . (يستمر (نعم/لا) ؟
8 = ان حجم (حرف صغيراوكبير) الاحرف في الانتهاء يختلف في البداء. ؟ يعطني تنبية الوحده . (يستمر (نعم/لا) ؟

 

و اعتذر منكم و لكم خالص التقدير و الشكر ؟ 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information