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

البحث عن رقم ضمن أرقام متسلسلة في حقلين من إلى

مغلق
بدأه alhaithm في 13 أغسطس 2003 · 21 رد · 1,400 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأعزاء الكرام الأخوة مشرفي المنتدى

تحية وتقدير:

بعد البحث في المنتدى ، وضعت السؤال وأرجو أن يكون معبراً عن المطلوب تمشياً مع قواعد وضع الأسئلة.

المطلوب:

1) البحث عن رقم مسلسل واقع بين الأرقم الموجودة في حقل SerialFrom وحقل SerialTo على يكون البحث ونتائجة على نموذج ، وتكون النتائج مرتبطة برقم المستند

2) عرض جميع الأرقام الواقعة بين الأرقم الموجودة في حقل SerialFrom وحقل SerialTo وذلك في استعلام أو نموذج منفصل وتكون النتائج مرتبطة برقم المستند

مرفق عينة

db4.zip

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#2

بقاء الموضوع بدون إجابة ربما يكون الشرح غير واضح للأعضاء

#3

أخوتي الأعزاء

إذا كان المطلب غير واضح فيرجى غاية الرجاء ممن لديه الرغبة الجديه في المحاولة ، فليستوضح مشكوراً.

شكرا أخ/فهد على كرمك

تحياتي

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#4

يوجد فى الاستعلام RExtendedDetails حقل MapSerialFrom وحقل MapSerialTo هل هي المقصودة أو الحقول الأخرى مثل SerialFrom وهي تحتوى على رقم ونص فى وقت واحد .

ولكن جاءت لي فكرة وهي لما لا تلحق الحقلين فى جدول آخر على حقل واحد أي يحتوى على from و to وتستخدم between ... and .

#5

مرحبا أخي أشرف

تحياتي وتقديري أولا ، ثم شكرا على اهتمامك بالموضوع

نعم المقصود الحقول التي تحتوي على الرقم المركب من رقم ونص المسماة SerialFrom وSerialTo

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

ولكن التعبير

Between [Enter No] And [Enter No2]

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

أرجو التوضيح أو التجربة

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#6

أخي الهيثم . شكرا لك على تحياتك

ولكن مش عارف إذا كنت أنا فهمت ولا لأ . .

db4.rar

#7

شكرا أخي أشرف على محاولاتك

أوضح المطلوب للجميع:

ولنفترض أن الأرقام موضع الطلب تخص تذاكر السفر كمثال:

المعطيات:

إشتريت 12 تذكرة سفر من مكتب سفريات ووضعتها في مستند توريد وكان رقم المستند 213 وكانت أرقام التذاكر مسلسلة من (4446652) إلى (4446661) ووضعت الأرقام المسلسلة في حقلين بالشكل الذي رأيته (يعني من إلى)

ثم إشتريت 7 تذاكر أخرى ووضعتها في مستند رقم 214 وكانت أرقامها من (6557891) إلى (6557897)

وهكذا أضيف كل مجموعة إلى سجل التوريد

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

المطلوب: وسيلة بحث تساعدني على سرعة معرفة رقم المستند الذي وردت به تلك التذكرة.

لعل الصورة تكون واضحة الآن.

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#8

طيب جرب هذه الفكره .

شرح المثال

1- يوجد جدول اسمه tblgroup هذا تضع فيه رقم مستند التوريد ويبدأ من تذكرة رقم ...... وينتهي بتذكرة رقم .............. أي كل مستند يأتي لك تضعه فى هذا الجدول .

2- نفذ تشغيل النموذج frmItemsNew وضع بالحقل الأول رقم التذكرة التي تريد فى أي مستند توريد تكون . وبعد الادخال سيظهر لك رقم المستند تلقائيا .

وإن شاء الله يكون المطلوب .

أشرف خليل

tickets.rar

#9

هذا من عندي أنا وهو على حسب فهمي المتواضع

db4.zip

#10

أخي العزيز/ أشرف

الأخ/فهد الدوسري

لكم جزيل الشكر والامتنان على محاولاتكم الجادة والقيمة

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

الأخ/أشرف

المثال الذي أرسلته هو المقصود تماما ، ولكن للأسف الشديد أن قاعدة البيانات لدي بها العديد من الجداول وبالتالي العلاقات بين الجداول متداخلة ومتشعبة ، حيث لم يجدي تطبيق المثال بالعلاقة التي أنشأتها بين الجدولين في مثالك الذي أرسلت.

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

الحل الشامل في نظري يكمن في أننا لو استطعنا أن نوجد تعبيراً ، أو كود فيجوال أو جملة إس كيو إل تؤدي وظيفة سرد جميع الأرقام المتسلسلة في جدول منفصل ، وبالتالي يمكن عمل أي وسيلة بحث أو استعلام بسهول من ذلك الجدول المنفصل.

مثال للمطلوب

رقم المستند 213 يحتوي على التذاكر من Ga445661 إلى Ga444669

رقم المستند 214 يحتوي على التذاكر من Rg445661 إلى Rg444669

فإن االتذاكر الوقعة بين المجموعتين هي:

الأرقام المستند

Ga445661 213

Ga445662 213

Ga445663 213

Ga445664 213

Ga445665 213

Ga445666 213

Ga445667 213

Ga445668 213

Ga445669 213

Rg445661 214

Rg445662 214

Rg445663 214

Rg445664 214

Rg445665 214

Rg445666 214

Rg445667 214

Rg445668 214

Rg445669 214

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

مع الأخذ بعين الاعتبار

(حقل الأرقام كما ترون حقل نصي / الأرقام يمكن أن تتشابه مع إختلاف الأحرف / حقل رقم المستند رقم وليس ترقيم تلقائي)

أكيد أنني أثقلت عليكم ، بهذا الموضوع

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

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#11

شوف هذا

db4.zip

#12

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

فرغ الجدول tblSerial ثم نفذ النموذج واضغط الزي الموجود به .

وشاهد النتيجة بعدها فى الجدول tblSerial

وتحياتي

alhithm.rar

#13

الأخ/فهد

تحية وتقدير

أشكرك على مجهودك ، وقد عمل الباحث الذي أرسلت ، وهو المطلوب الأول.

يبقى المطلوب الثاني وهو الأهم لأنه سيفي بالأول ضمناً ، وهو الذي شرحته أنفاً

الأخ/أشرف

أتعبتك معي وأشكرك ، وكما قلت أنت أنه يعمل مع رقم واحد ، وأيضا يكرر السجلات لنفس الرقم مع كل نقرة للزر.

عموماً سأحاول الاستفادة من هذا المثال ، غداً إن شاء الله.

لا أدري كيف الاتصال بالأخ/مصلح الحريصي بالرغم من أنني قد بعثت له الطلب عبر صندوق الرسائل الخاص ، ويبدو أنه لم يطلع عليه (لماذا الأخ مصلح؟) لأني أعتقد أن الحل يكمن في جملة إس كيو إل ، وأعتقد أن لديه دراية كافية بذلك

تحياتي وتقديري لكما

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#14

لا زال الطلب والرجاء قائمين:

مثال للمطلوب

رقم المستند 213 يحتوي على التذاكر من Ga445661 إلى Ga444669

رقم المستند 214 يحتوي على التذاكر من Rg445661 إلى Rg444669

فإن االتذاكر الوقعة بين المجموعتين هي:

الأرقام المستند

Ga445661 213

Ga445662 213

Ga445663 213

Ga445664 213

Ga445665 213

Ga445666 213

Ga445667 213

Ga445668 213

Ga445669 213

Rg445661 214

Rg445662 214

Rg445663 214

Rg445664 214

Rg445665 214

Rg445666 214

Rg445667 214

Rg445668 214

Rg445669 214

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

مع الأخذ بعين الاعتبار

(حقل الأرقام كما ترون حقل نصي / الأرقام يمكن أن تتشابه مع إختلاف الأحرف / حقل رقم المستند رقم وليس ترقيم تلقائي)

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#15

خي الهيثم

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

عموماً ربما لا يكون الموضوع صعباُ ولكن الصعوبة تكمن في فهمنا لما تريده بالشكل الصحيح .

أود لو سمحت توضح إيضاح النقاط التاليه ولا أوعدك بالحل قد يكون الموضوع صعباً وقد نتمكن من الوصول للحل ولكن أوعدك بالمحاولة الجادة .

هل تكتفي بتسجيل الحقلين SerialFrom وSerialTo

أم تسجل رقم كل تذكرة منفرد

يعني :

أرقام التذاكر التاليه

Ga445661 213

Ga445662 213

Ga445663 213

Ga445664 213

Ga445665 213

Ga445666 213

Ga445667 213

Ga445668 213

Ga445669 213

Rg445661 214

Rg445662 214

Rg445663 214

Rg445664 214

Rg445665 214

Rg445666 214

Rg445667 214

Rg445668 214

Rg445669 214

هل لها جدول تسجل فيه بهذا الشكل.

ما هي البيانات التي تريد عرظها في نموذج نتائج البحث غير رقم السند ورقم التذكرة.

#16

الأخ/مصلح

بعد التحية والاحترام

لم يعد البحث مطلبا فقد حلت مشكلتة عن طريق مساهمة الأستاذ/فهد الدوسري.

المطلوب هو أن نجد وسيلة لسرد الأرقام التي تقع بين عمودين

من Gs965401 إلى Gs965410

في جدول منفصل بحث تصبح بالشكل التالي:

Gs965401

Gs965402

Gs965403

Gs965404

Gs965405

Gs965406

Gs965407

Gs965408

Gs965409

Gs965410

أي أن الإدخال سيكون موجزا في حقلي SerialFrom و SerailTo

والمطلوب من البرنامج أن يقوم بتفصيلها مع بيان أرقم مستندات توريدها

أرجو أن يكون الأمر قد اتضح

تحياتي وتقديري

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#17

اتحلت مشكلة المثال السابق

alhithm.rar

#18

أخي الهيثم

هذا مثال متواضع أرجو أن تجد فيه الفائدة المرجوة

#19

أخوة أشرف و Gaham

شكرا على محاولاتكم الحثيثة

أخي أشرف التجربة التي أرسلتها : في حرفي البداية مثبتين Ga

وعدد خانات الأرقام مثبتة

أخي Gaham

التجربة التي أرسلت تحتاج لتعديل بسيط لم أتمكن منه وهو أن لا تثبت عدد خانات الأرقام ، ولا تدع الكود يبدأ ترقيم أخر رقم من تلقاء نفسه مبتدءا بالرقم 1

فقد يبدأ الترقيم من 9 مثلا

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

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

#20

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

Function CreateSerial()
  Dim dbs As DAO.Database
  Dim rstInfo As DAO.Recordset
  Dim rstTarget As DAO.Recordset
  Dim varId As Variant
  Dim strPrefix As String
  Dim lngFrom As Long
  Dim lngTo As Long
  Dim i As Long

  On Error GoTo ErrHandler

  Set dbs = CurrentDb
  Set rstInfo = dbs.OpenRecordset("tblInfo", dbOpenDynaset)
  Set rstTarget = dbs.OpenRecordset("tblSerial", dbOpenDynaset)

  ' Loop through the records of tblInfo
  Do While Not rstInfo.EOF
    varId = rstInfo!ID
    strPrefix = Left(rstInfo!From, 2)
    lngFrom = CLng(Right(rstInfo!From, 6))
    lngTo = CLng(Right(rstInfo!To, 6))

    For i = lngFrom To lngTo
      rstTarget.AddNew
      rstTarget!ID = varId
      rstTarget!Serial = strPrefix & Format(i, "000000")
      rstTarget.Update
    Next i

    rstInfo.MoveNext
  Loop

ExitHandler:
  On Error Resume Next
  rstInfo.Close
  rstTarget.Close
  Set rstTarget = Nothing
  Set rstInfo = Nothing
  Set dbs = Nothing
  Exit Function

ErrHandler:
  MsgBox Err.Description, vbExclamation
  Resume ExitHandler
End Function
#21

أخي الهيثم

نعم ما قلته صحيح.

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

أما ما ذكرت من السلبيات فأنا على علم به ويمكن معالجته إذا من معرفة ما يلي:

__ معرفة طول النص في الحقل. وهل هو ثابت؟

__ معرفة طول المقطع الحرفي داخل النص. وهل هو ثابت؟

__ معرفة طول المقطع الرقمي داخل النص. وهل هو ثابت؟

أرجو الإجابة على هذه التساؤلات.

أخوك القحم

#22

الأخ/أشرف

الأخ/Gaham

أشكركما على مجهودكما والاهتمام والمتابعة للموضوع

الأخ/ Gaham

إجابة على أسألتك

__ معرفة طول النص في الحقل. وهل هو ثابت؟ لا ليس بثابت

__ معرفة طول المقطع الحرفي داخل النص. وهل هو ثابت؟ ليس بثابت ممكن ثلاثة حروف وممكن سبعة حروف

__ معرفة طول المقطع الرقمي داخل النص. وهل هو ثابت؟ ليس بثابت ممكن 4 أرقام إلى 10 أرقام

الأخ/أشرف

الوحدة النمطية التي التي كتبتها هنا وبعد تجربتها، تعاني من نفس مشكلة كود الأخ/Gaham

أي أنها لا تعترف إلا بحرفين وعدد محدد من الأرقام

وما نيل المطالب بالتمني

ولكن تؤخذ الدنيا غلابا

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…