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

اعادة ترقيم من زرار بالنموذج


إذهب إلى أفضل إجابة Solved by محمد احمد لطفى,

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

السلام عليكم ورحمة الله و بركاته 
مطلوب عند الضغط على الزارا (هنا) يبدأ البرنامج بتغير الارقام (اعادة ترقيم) بداية من 1 , 2 , 3 , 4 , 5 و هكذا

وجزاكم الله خيرا

Capture.JPG

test550055.mdb

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

وعليكم السلام ورحمة الله وبركاته

تفضل

ضع هذا الكود في وحدة نمطية


Public Function UpdateCounter()
    Dim SQL As String
    Dim Rs As New ADODB.Recordset
    Dim counter As Long

    counter = 1
    
   SQL = "SELECT IDx" & _
            " FROM table1 ORDER BY table1.Idx"
    With Rs
        .Open SQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        Do While Not .EOF
            ![idx] = counter
            counter = counter + 1
            .Update
            .MoveNext
        Loop
        .Close
    End With
    
    Set Rs = Nothing
    
End Function

وقم باستدعائه تحت زر الامر هكذا

UpdateCounter
Me.Requery

 

test550055.mdb

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

أستاذى @AlwaZeeR

ممكن بعد اذنك الترتيب ميكونش ليه علاقة بخلية NAmex  التأثير على Id فقط
يعنى اول خلية 1 و الثانة 2 و هكذا

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

7 دقائق مضت, AlwaZeeR said:

فقط تحتاج الى إضافة حقل في الجدول

ترقيم تلقائي

وفرز حسب هذا الحقل

 

test550055vv.mdb 728 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 0 downloads

بعتذر منك استاذى 

انا مش عاوز الموضوع ليه علاقة بالترتيب او ترتيب تلقائى

فى نموذجى اعطى ارقام 1 و 2 و 3 و 4 و احتاج الى تبديل الارقام ثم ارتب حسب الاسم او رقم خاص 

ثم اعمل اعادة ترتيب 

ويكون الترتيب كما يوجد فى النموذج 

الخليه الاولى 1 
الخلية الثانيى 2 

يعنى الترتيب يكون بالاسبقية فى النموذج لا يكون مرتبط بشىء أخر 

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

هل تأذنون لي أن أشارك معكم 

لاحظ المرفق يمكنك تغيير الفرز على حسب ترتيب الحرف أبجدياً تصاعدياً وتنازلياً في الاستعلام سيتم الترقيم على ضوءة في النموذج.

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

test550055_2.accdb

تم تعديل بواسطه ابوآمنة
  • Like 1
رابط هذا التعليق
شارك

أساتذتى الكرام 

لا اريد الكود أن يكون له علاقة مع جدول و استعلام 
لقد وجدت حل باستخدام هذا الكود 

Dim i As Integer

DoCmd.GoToRecord , , acFirst

For i = 1 To 8

Me.idx = DateAdd("d", i, 1) - 1
DoCmd.GoToRecord , , acNext
Next

DoCmd.Requery

و لكن أريده ان يتوقف بانتهاء السجلات بالنموذج و ليس عند تحديده      For i = 1 To 8

وجزاكم الله خيراً


 

test550055vv5522.rar

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

فهم السؤال ثلثي الاجازة 

:wallbash:

42 minutes ago, محمد احمد لطفى said:

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

اعمل مربع نص وسميه مثلا 

ALLRec

ضع فيه

=Count(*)

واجعل نهاية For

هذا الحقل

For i = 1 To AllRec

لا تنس عمل إخفاء للمربع المذكور

🙂

 

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

  • أفضل إجابة

شكرأ أستاذى @AlwaZeeR 

 

Dim i As Integer
DoCmd.GoToRecord , , acFirst
For i = 1 To 1000
If Not IsNull(idx) Then
Me.idx = DateAdd("d", i, 1) - 1
DoCmd.GoToRecord , , acNext
End If
Next

DoCmd.Requery

توصلت الى حل بدون عمل مربع نص

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

1 ساعه مضت, AlwaZeeR said:

ما الفائدة من الرقم 1000

وماذا سيحدث لو تم الكتابة في 

Namex

وتركت 

idx 

فارغا؟

هل سيقوم بالترقيم؟؟

 

مدى رقم كبير  لن يستطيع برنامجي تجاوزه 
idx دائما بها ارقام و ممكن تطبيقها على Namex وليس idx

هذا ما توصلت اليه فى النهاية حسب تفكيرى

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information