الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تقسيم سلسلة رقمية بشروط

بدأه yasser saleh في 4 أبريل 2011 · 8 رد · 619 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الارقام.doc

yasserhome

#2
yasser saleh كتب:

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

ارجو سرعة الرد للاهمية

yasserhome

#3

اتبع الخطوات التالية أخى الكريم

1- أضف جدول جديد باسم Trange مكون من عمودين Frm و To

2- افتح نموذج و ضع به ذر

3- فى حدث عند الضغط للزر ضع هذا الكود

  Dim rst As DAO.Recordset
  Dim lngfrst ,lngcurr ,lngLast As Long
  CurrentDb.Execute "delete Trange.* from Trange;"

  Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
    rst.MoveFirst
    lngfrst = rst.Fields("id")
    lngLast = lngfrst

 While rst.EOF = False
   lngcurr = rst.Fields("id")

   Select Case lngcurr
     Case Is = lngfrst
     Case Is = lngfrst + 1
       lngLast = lngcurr
     Case Is > lngfrst + 1
       CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
       lngfrst = lngcurr
       lngLast = lngfrst
   End Select
   rst.MoveNext
 Wend
    CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"

  rst.Close
  Set rst = Nothing
  DoCmd.OpenTable "Trange"

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 4 أبريل 2011 في 22:58

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4
Abo_Yossof كتب:

اتبع الخطوات التالية أخى الكريم

1- أضف جدول جديد باسم Trange مكون من عمودين Frm و To

2- افتح نموذج و ضع به ذر

3- فى حدث عند الضغط للزر ضع هذا الكود

  Dim rst As DAO.Recordset
  Dim lngfrst ,lngcurr ,lngLast As Long
  CurrentDb.Execute "delete Trange.* from Trange;"

  Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
    rst.MoveFirst
    lngfrst = rst.Fields("id")
    lngLast = lngfrst

 While rst.EOF = False
   lngcurr = rst.Fields("id")

   Select Case lngcurr
     Case Is = lngfrst
     Case Is = lngfrst + 1
       lngLast = lngcurr
     Case Is > lngfrst + 1
       CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
       lngfrst = lngcurr
       lngLast = lngfrst
   End Select
   rst.MoveNext
 Wend
    CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"

  rst.Close
  Set rst = Nothing
  DoCmd.OpenTable "Trange"

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

و بس يجيب الارقام المسلسلة بالترتيب اللى معليهاش علامة صح

بمعنى مثلاً

عندى ارقام من 1 الى 100

منهم ارقام عليها علامة صح مثلاً

رقم 4 و 15 و 20 وهكذا

المطلوب :

من الى

1 3

5 14

16 19

21 100

وهكذا

ارجو انى اكون قد اوضحت لك المطلوب و مرة اخرى الف شكر

ومنتظر تعاونك معى و الوصول الى الحل

yasserhome

#5

لا أفهم ما تقصده أخى

لقد وضعت ما طلبته انت فى ملف الورد

ضع قاعدة بها ماتريد حتى يمكننا المساعدة

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#6
Abo_Yossof كتب:

لا أفهم ما تقصده أخى

لقد وضعت ما طلبته انت فى ملف الورد

ضع قاعدة بها ماتريد حتى يمكننا المساعدة

شكرا ليك مرة اخرى

ومرفق قاعدة البيانات

Abo_Yossof كتب:

لا أفهم ما تقصده أخى

لقد وضعت ما طلبته انت فى ملف الورد

ضع قاعدة بها ماتريد حتى يمكننا المساعدة

شكرا ليك مرة اخرى

ومرفق قاعدة البيانات

yasser saleh كتب:

شكرا ليك مرة اخرى

ومرفق قاعدة البيانات

شكرا ليك مرة اخرى

ومرفق قاعدة البيانات

بة نموذج لادخال الارقام والمطلوب كما ذكرت بالاعلى

Card Serial.rar

yasserhome

#7

استخدم هذا الكود

Dim rst As DAO.Recordset
  Dim lngfrst, lngcurr, lngLast As Long
  CurrentDb.Execute "delete Trange.* from Trange;"

  Set rst = CurrentDb.OpenRecordset("SELECT Table2.from, Table2.check FROM Table2 WHERE (((Table2.check) = False)) ORDER BY Table2.from;")
  rst.MoveFirst
    lngfrst = rst.Fields("from")
    lngLast = lngfrst

 While rst.EOF = False
   lngcurr = rst.Fields("from")

   Select Case lngcurr
     Case Is = lngLast
     Case Is = lngLast + 1
       lngLast = lngcurr
     Case Is > lngLast + 1
     'lngLast = lngcurr
       CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
       lngfrst = lngcurr
       lngLast = lngfrst
   End Select
   rst.MoveNext
 Wend
    CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
  rst.Close
  Set rst = Nothing
  DoCmd.OpenTable "Trange"

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#8
Abo_Yossof كتب:

استخدم هذا الكود

Dim rst As DAO.Recordset
  Dim lngfrst, lngcurr, lngLast As Long
  CurrentDb.Execute "delete Trange.* from Trange;"

  Set rst = CurrentDb.OpenRecordset("SELECT Table2.from, Table2.check FROM Table2 WHERE (((Table2.check) = False)) ORDER BY Table2.from;")
  rst.MoveFirst
    lngfrst = rst.Fields("from")
    lngLast = lngfrst

 While rst.EOF = False
   lngcurr = rst.Fields("from")

   Select Case lngcurr
     Case Is = lngLast
     Case Is = lngLast + 1
       lngLast = lngcurr
     Case Is > lngLast + 1
     'lngLast = lngcurr
       CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
       lngfrst = lngcurr
       lngLast = lngfrst
   End Select
   rst.MoveNext
 Wend
    CurrentDb.Execute "insert into Trange (Frm,To) values (" & lngfrst & "," & lngLast & ");"
  rst.Close
  Set rst = Nothing
  DoCmd.OpenTable "Trange"

مش لاقى كلام اقوله ليك يااخى الفاضل

عموما متشكر الف مرة على الاهتمام و الرد

وارجو ان تقبلنى اخ لك

الف شكر

لا

مليون شكر

yasserhome

#9

أخى الكريم

أهلا بك

كلنا فى النهاية أخوة و كلنا لا يرجو الا وجه الله

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

مواضيع مشابهة