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

كيف أعرف الأرقام غير المشغولة؟؟.

مغلق
بدأه المالكي333 في 15 يوليو 2003 · 23 رد · 2,054 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.

لنفترض أن لدينا قاعدة بيانات شئون موظفين تتضمن بيانات حوالي مائة موظف وكل موظف تم إعطاؤه رقم يبدأ بالرقم واحد ثم ينتهي بالرقم مائة. أي أن أول موظف تم إدخال بياناته تم إعطاؤه الرقم واحد والثاني اثنان والثالث ثلاثة وهكذا حتى الموظف مائة الذي تم إعطاؤه الرقم مائة. خانة الرقم هنا ليست ( ترقيم تلقائي ) وإنما ( رقم ) عادي يتم إدخاله يدويا. أثناء العمل على قاعدة البيانات احتجنا إلى أن نقوم بحذف الموظف الذي يحمل الرقم ( 7 ) لأن بعض العرب يتشاءمون من هذا الرقم. كما قمنا بحذف الموظف الذي يحمل الرقم (13) لأن بعض الغرب يتشاءمون من هذا الرقم ثم حذفنا الموظف رقم ورقم ورقم. بعد ذلك تلقينا موظفين جدد وأردنا أن نبحث عن الأرقام التي كانت مشغولة بموظفين تم حذفهم بأرقامهم وأردنا أن نعطي لكل موظف جديد رقما من الأرقام التي تم حذفها. عندما نستعرض السجلات الموجودة سنستعرض السجل رقم 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 8 ، ...إلخ. وعندما لا نجد الرقم 7 بين هذه الأرقام سنعرف أن الرقم 7 يمكن استغلاله لتعيين موظف جديد عليه. لكن طريقة الاستعراض اليدوي بطيئة وغير دقيقة وأريد أن يكون ضمن النموذج خانة مربع نص أو مربع تحرير وسرد أو مربع قائمة يتضمن الأرقام المفقودة أو التي لا تتضمنها قاعدة البيانات بحيث تتضمن هذه القائمة الرقم 7 والرقم 13 وغيرها من الأرقام غير الموجودة في القاعدة وعندما أقوم بتسجيل موظف تحت هذا الرقم يختفي الرقم من مربع القائمة كدلالة على أنه تم استخدامه ولا يمكن تعيين موظف آخر على ذات الرقم. أعتذر على إطالة ( السالفة ) وأقدر تعاونكم وتجاوبكم وشكرا لكم.

#2

SORY I DONT HAVE ARABIC KEYBOARD

YOU CAN DO THAT WITH WHILE

I=1

DO UNTIL RS.EOF

IF RS.FIELD(0)=I THEN

RS.MOVENEXT

I=I+1

ELSE

MSGBOX "THIS NUMBER IS FREE" & I

EXIT SUB

END IF

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#3

Thank you m.r Omani (f) (gift)

#4

أخي عماني: السلام عليكم.

أطلعت على مثالك ولم أفهم منه شيئا :o

أولا هل أقوم بعمل مربع نص لعرض الأرقام غير المشغولة أم قائمة منسدلة أم ماذا ؟.

ثانيا: أين أضع هذا الكود تحديدا؟

ثالثا: هل يوجد في هذا الكود (متغيرات) أي أحرف أو كلمات يجب علي تغييرها حسب ما هو مطابق لقاعدة البيانات لدي ؟ أم أكتفي بنسخ الكود ولصقه كما هو دون أن تغيير ؟؟ أرجو أن أرى ردك أو من يملك الجواب ولكم خالص الشكر والتقدير.

#5

أخي العزيز الكود هو عبارة عن دوارة

تدخل من خلالها الى الجدول تبعك واللي أنا مثلنه بأنه RS

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

I=1

DO UNTIL RS.EOF

IF RS.FIELD(0)=I THEN

RS.MOVENEXT

I=I+1

ELSE

MSGBOX "THIS NUMBER IS FREE" & I

EXIT SUB

END IF

راح أعملك مثال وأرسله إن شاء الله

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#6

أستاذي: المالكي

أفيدك بما يلي:

أولا: أنت بحاجة إلى تشكيل قاعدة بيانات لشئون الموظفين الذين يعملون في مؤسستك. ولهذا يجب عليك قبل كل شيء الإعلان عن الوظائف الشاغرة في مؤسستك.

وهذا يتم بعمل جدول تضع فيه البينات الخاصة بوظائف مؤسستك؛ وهي كالتالي:

1- رقم الوظيفة ( فهرس أساسي )

2- درجة الوضيفة أو رتبة الوظيفة

3- مسمى الوظيفة

4- فئة الوظيفة

أو كل ماله علاقة بالوظائف في مؤسستك وهذا أمر ضروري جدا وإلا كيف تصنف موظفيك إذا لم يكن عندك هيكل وظيفي؟!!!

ثانيا: عمل جدول أخر لشاغلي الوظائف بمؤسستك وهذا يتمم على النحو التالي:

1- رقم الموظف ( هو نفس رقم الوظيفة في هيكل الوظائف والمقصود منه هو بدل أن تعينه بمسمى الوظيفة قم بتعيينه برقمها ـ قل له أنت معين على الوظيفة رقم ( 1 ) بدل أن تقول له أنت معين ( مدير عام ) ). ( مفهرس: تكرار (نعم)).

2- اسم الموظف

3- تاريخ التعيين

4- تاريخ الترقية

أو كل ماله علاقة بالموظف نفسه.

ثالثا: إنشاء علاقة بين هذين الجدولين ( رأس بأطراف ) تعين ( فرض التكاملي المرجعي لـ ( تحديث الحقول المرتبطة) فقط.

رابعا: قم بإنشاء النماذج عن طريق معالج النماذج الفوري.

ملاحظة:

ـــ تأكد من أن قاعدة البيانات هذه منسقة ( من اليمين لليسار ).

ـــ تأكد من أن قاعدة البيانات تدعم التاريخ الهجري.

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

أخوك: القحم

#7

السلام عليكم

فكرة أخرى :

هذا الكود سوف ينشئ جدول جديد يحتفظ فيه بالأرقام الشاغرة (غير المشغولة) ، فقط يحتاج منك تبديل إسم الجدول وإسم الحقل في الكود المرفق .

Sub FindMissingSeq()

  Dim dbs As Database

  Dim rst As Recordset

  Dim tdfNew As TableDef

  Dim mis As Recordset

  Dim LastSeq As Long

  Dim FieldName As String

  Dim MasterTable As String

  Dim MissingTable As String

  Dim msg As String

  

  On Error Resume Next

  

  '-------------------------------------------------------------------'

  MasterTable = "TS-t-Transactions"              '-- ÃßÊÈ ÅÓã ÇáÌÏæá --'

  FieldName = "Seq"  '-- ÃßÊÈ ÅÓã ÇáÍÞá ÇáÐí íÍÊæí Úáì ÇáÃÑÞÇã ÇáãÓáÓáÉ --'

  '-------------------------------------------------------------------'

  

  Set dbs = CurrentDb

  Set rst = dbs.OpenRecordset(MasterTable, dbOpenSnapshot)

  rst.Sort = FieldName

  Set rst = rst.OpenRecordset

  

  MissingTable = MasterTable & "_Missing_" & FieldName

  Set mis = dbs.OpenRecordset(MissingTable, dbOpenDynaset)

  If Err.Number = 3078 Then

    Set tdfNew = dbs.CreateTableDef(MissingTable)

    With tdfNew

      .Fields.Append .CreateField("From_" & FieldName, dbLong)

      .Fields.Append .CreateField("To_" & FieldName, dbLong)

      .Fields.Append .CreateField("Records", dbLong)

    End With

    dbs.TableDefs.Append tdfNew

    Set mis = dbs.OpenRecordset(MissingTable, dbOpenDynaset)

  Else

    DoCmd.Close acTable, MissingTable

    Set mis = dbs.OpenRecordset(MissingTable, dbOpenDynaset)

    With mis

      .MoveFirst

      Do While Not .EOF

        .Delete

        .MoveNext

      Loop

    End With

  End If

  

  msg = "ãä æÇÍÏ ¿ " & FieldName & " åá ÊÑíÏ Ãä ÊÈÏà ÃÑÞÇã ÍÞá" & vbCrLf & _

        "ÅÐÇ ÃÑÏÊ Ãä ÊÈÏà ãä ÈÏÇíÉ ÇáÃÑÞÇã Ýí ÇáÌÏæá ÅÎÊÑ áÇ"

  

  With rst

    .MoveFirst

    If vbYes = MsgBox(msg, vbYesNo) Then

      LastSeq = 0

    Else

      LastSeq = rst("[" & FieldName & "]")

      .MoveNext

    End If

    

    Do While Not .EOF

      If rst("[" & FieldName & "]") - LastSeq > 1 Then

        mis.AddNew

          mis("[From_" & FieldName & "]") = LastSeq + 1

          mis("[To_" & FieldName & "]") = rst("[" & FieldName & "]") - 1

          mis("[Records]") = rst("[" & FieldName & "]") - LastSeq - 1

        mis.Update

      End If

      LastSeq = rst("[" & FieldName & "]")

      .MoveNext

    Loop

  End With

  

  mis.Close

  rst.Close

  Set dbs = Nothing

  

  DoCmd.OpenTable MissingTable, , acReadOnly

End Sub

هذا الكود يصلح لحقل رقمي فقط .

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

الكتابة العربية الموجودة بالكود كالتالي :

1 - أكتب اسم الجدول

2 - أكتب اسم الحقل الذي يحتوي على الأرقام المسلسلة

3 - هل تريد أن تبدأ أرقام حقل ..... من واحد ؟

4 - إذا أردت أن تبدأ من بداية الأرقام في الجدول اختر لا

تحياتي .

#8

أخي عماني. شكرا أولا. سأنتظر المثال الذي أشرت إليه بالرغم من أن الأسئلة ما زالت مطروحة: هل أقوم بعمل مربع نص أم ماذا؟ أين أضع الكود الذي كتبته؟ عسى أن يجيب مثالك المنتظر عن أسئلتي المطروحة.

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

وبالنسبة لإجابتك المفصلة فإن القاعدة جاهزة بكل ما أشرت إليه فقط ينقصها معرفة الأرقام غير المشغولة لا غير.

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

#9

السلام عليكم

أخي المالكي ..

1 - الصق الكود في زر عند الضغط بعد إزالة أول سطر وآخر سطر فيه .

2 - بدل اسم الجدول واسم الحقل والمحصورين بين خطين في أعلى الكود .

3 - اضغط على الزر لتحصل على النتيجة في جدول جديد .

أما الجواب عن التقويم فهو للتالي :

اقتباس
ملاحظة:

ـــ تأكد من أن قاعدة البيانات هذه منسقة ( من اليمين لليسار ).

ـــ تأكد من أن قاعدة البيانات تدعم التاريخ الهجري.

تحياتي .

#10

السلام عليكم

مثال مرفق .

تحياتي .

missingseq.zip

#11

عزيزي المالكي:

حقيقة:

ـــ إن التنظيم الجيد لقاعدة البيانات من البدياية يريحك من عناء كبير قد لا تتوقعه، وإذا قمت بالتخطيط الجيد للبيانات؛ فلن تصبح بحاجة إلى شفرات معقدة.

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

حسناً: فلنشرع في المطلوب.

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

ـــ أذكرك: بأن حقل رقم الوظيفة في كلا الجدولين يجب أن يكونا من نوع واحد, إما (رقمي) وإما (نصي), والأفضل أن يكون حقلا رقميا.

الآن:

ـــ قم بإنشاء إستعلام بسيط.

لماذا بسيط؟ لأننا لسنا بحاجة الإحتفاظ بهذه البيانات، بل كل ما هنالك أننا نريد أن نستعرض هذه البيانات مؤقتا؛ إما على نموذج وإما على تقرير. والأمر الآخر أن هذه البيانات دائمة التغير. فبمجرد حذف موظف سوف تتغير. وكذلك إضافة موظف سوف تتغير. وحفظ هذه البيانات يوقع في الإرباك.

ـــ سؤال يطرح نفسه: ماهي الحقول التي تريد إستعراضها؟ وهو سؤال وجيه.

لا شك أن إجابتك وبكل تأكيد للثقة: أريد استعراض الوظائف الشاغرة. إذن تريد: رقم الوظيفة، مسمى الوظيفة, درجة الوظفة, مكان الوظيفة, ... بعبارة أخرى كل ما يتعلق بالوظيفة. ( وليس بشاغل الوظيفة ).

ـــ أضف إلى هذا الإستعلام كل من ( جدول الوظائف ) و ( جدول الموظفين ).

ـــ قم بإنشاء علاقة بينهما عن طريق رقم الوظيفة.

ـــ حرر هذه العلاقة بالنقر المزدوج على الرابط الواصل بينهما. واختر من قائمة خيارات الربط ( جميع البيانات من جدول الوظائف وتلك التي تتطابق معها من جدول الموظفين )، لا أذكر بالضبط نص العبارة، لكن هذا معناها.

ـــ أضف جميع الحقول التي تريد الإستعلام عنها من جدول الوظائف.

ـــ أضف حقل (رقم الوظيفة) من جدول الموظفين.

ـــ اكتب في مجال ( معايير ) في الحقل السابق الدالة ( IsNull ).

ـــ احفظ الاستعلام باسم الوظائف الشاغرة.

ملاحظة: حقل (رقم الوظيفة) من جدول الموظفين في الإستعلام السابق من المفترض ألا يكون ظاهراً. إذن قم بإخفاءه.

هذه هي الوظائف الشاغرة التي تبحث عنها.

وسوف يكون هناك مزيد بحث إذا كان ذلك لا يضائقك.

أتمنى لك التوفيق ولجميع الأعضاء

أخوكم: القحم

#12

أخي أبو هادي.. أشكرك كثيرا على إيضاحك وعلى مثالك.

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

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

#13

السلام عليكم

لم نعهدك أخي المالكي أن تكون إجاباتك مغتضبة ومبهمة وأنت من يريد إيضاح كل شيء وبالتفصيل !! :) .. أم هي الدبلوماسية فإذا كانت فلا بأس . (f)

تحياتي .

#14

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

عموما أطلعت على المثال وحسب فهمي المتواضع أنك قمت بعمل جدول مستقل للوظائف.. هل هذا صحيح ؟ ثم قمت بإدراج أرقام الوظائف في هذا الجدول.. صحيح ؟ ثم قمت بعمل جدول آخر يتضمن الأرقام المشغولة والتي يجب أن تكون موجودة ضمن الجدول الأول. وقمت بعمل تعليمات برمجية مهمتها المطابقة بين الجدولين فما وجدته في الجدولين فهذا يعني أن الوظيفة مشغولة وإذا لم تجد الرقم إلا في الجدول الأول دون الجدول الثاني فهذا يعني أن الوظيفة شاغرة غير مشغولة. أرجو أن يكون هذا صحيحا. فإذا كان هذا صحيحا فهذا يعني أنني فهمت. وإن لم يكن كذلك فهذا يعني أنني ما زلت ( متنح ). بتشديد النون.

طريقتك هذه جيدة إلى حد بعيد. لكن حسب ما هو موجود لدي في القاعدة فإن أرقام الوظائف معروفة مسبقا ومسلسلة تسلسلا رقميا يبدأ بالرقم واحد وينتهي بالرقم 100 على سبيل المثال. وكل ما أطلبه أن يبحث زر الأمر هذا في خانة رقم الوظيفة عن أي رقم لا يوجد ضمن النطاق بين 1 و 100 ثم يعرضه لنا مشكورا دون أن نقوم بإدخال أرقام الوظائف في جدول مستقل أو نحو ذلك. علما أن هناك حقل مستقل للترقيم التلقائي ولا يعنينا في شيء البتة في هذه القاعدة فهو مجرد حقل تنظيمي بين القاعدة ونفسها. أرجو أن يكون في ما أوضحته أنا شيئا من الإيضاح لأستاذنا أبي هادي. وإن كنت ما زلت لم أقم بتطبيق ما أشار إليه العم ( القحم أو الشايب أو العود الكبير ) حول استخدام دالة Null وسأقوم بالتطبيق في أقرب فرصة ثم أوافيكم بالنتيجة إن شاء الله تعالى. مقدرا لكم تفانيكم في خدمة هذا المنتدى والسلام عليكم. (f) (gift)

#15

السلام عليكم

أخي المالكي .. شكرا أولا لتصحيحك خطأي الإملائي بدبلوماسية متمرسة وبشكل مقتضب .

أما ما تحتاجه من المثال فهو تصدير جدول Seq_Missing_Default ونموذج Form1 فقط إلى أي مشروع لديك . ثم من مشروعك قم بفتح النموذج واختر الجدول والحقل المطلوبين واضغط على زر شواغر ليفتح لك جدول يحتوي على الشواغر .

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

تحياتي .

#16

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

الاخ / المالكي333

1- هل يتم حذف معلومات الوظيفه عندما تحذف معلومات الموظف .

و معلومات الوظيفه قد تكون (( القسم او الاختصاص او رقم الوظيفه او المرتبة او الرتبة ))

2-ومباذا تستبدل اسم الموظف هل تضع في حقل الاسم ((شاغر)) عندما تحذف معلومات الموظف او تتركه الحقل فارغ دون بينات

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

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

#17

مناقشة:

ـــ قد يسأل سائل فيقول: لماذا جعلنا الرابط بين الجدولين ( رأس بأطراف ) مع أن البيانات في كلا الجدولين ليست مكررة ولن تتكرر؟ لماذا لم نجعل العلاقة ( رأس برأس ).؟

ـــ أقول هناك فرق لطيف يتضح بالمثال.

ـــ قم بإنشاء استعلام جديد وأضف إليه كل من جدول الوظائف وجدول الموظفين.

ـــ سوف تنشأ بينهما تلقائا سيظهر جانب جدول الوظائف رمز صغير يشبة الرقم (1)، وسيضهر أمام جدول الموظفين رمز صغير أيضا يشبة الصفرين المتجاورين.

ابقِ هذه العلاقة على ماهي عليه. ( هذه الرموز تعني أن العلاقة بين الجدولين علاقة رأس بأطراف)

ـــ أضف رقم الوظيفة من جدول الموظفين، أضف جميع الحقول من جدول الوظائف ثم أحفظ الاستعلام وقم بتشغيله مرة أخري وأدخل رقم الوظيفة.

ماذا ستلاحظ؟

دون ملاحظات لنتعرف عليها.

أخوك: القحم.

#18

أخي أبو هادي.. شكرا لك وانتظرني قليلا بارك الله فيك.

أخي أحزان.. أهلا وسهلا.. عندما أقوم بحذف رقم الوظيفة فإن ذلك يعني أنني أقوم بحذف ( الجمل بما حمل ) أي أن السجل يتم حذفه بما يتفرع عنه من سجلات فرعية ويصبح كامل السجل أثرا بعد عين.

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

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

#19

إليكم المثال المرفق مدعما بالشرح المطلوب. (gift) (f) (clock)

çلôوçûٌ1.zip

#20

عزيزي: المالكي

ـــ لم تقم بصميم القاعدة حسب ما اتفقنا عليه. ولذلك لن تظفر بما تريد.

ـــ لن تستطيع تطبيق الدالة في مثالك المرفق لأن تصميمك للجداول غير صحيح

ـــ حاول مرة أخرى وشكراً

أخوك القحم

#21

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

هذا مثال وفيه يقوم بتحديث جميع الحقول الى قيمة خاليه معدا حقل رقم الوظيفه

علماً ان كلام الاخ /Gaham صحيح 100%

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

çلôوçûٌ1.zip

#22

السلام عليكم

أخي المالكي .. مرفق مثالك بعد إضافة ما طلبت .

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

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

تحياتي .

çلôوçûٌ_97.zip

#23

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

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

أستاذي أبو هادي.. أشكرك شكرا جزيلا. فقد تم اختبار المثال وأعطى النتيجة المطلوبة 100%. لكنني أتساءل عن جدوى التقسيمات الثلاثة التي تضمنها المثال ( من وظيفة ـ إلى وظيفة ـ عدد ). ألا يكفي عمودا واحدا كما تضمنه مثال أخينا أحزان؟ هو مجرد تساؤل من باب الاطلاع والاستزادة مما أعطاك الله من علم في هذا المجال. وحتى لا أصبح كمن يحمل أسفارا دون أن يعلم ما فيها. أكرر لك تقديري الخالص ولا أدري لماذا يخالجني شعور أنك ( أقحم ) من عمنا القحم :D ؟ أقصد أن شعوري يقول لي إنك أكبر سنا من العم القحم. لأنني أشعر تجاه شخصك الكريم بشيء من ( الوقار ) بصراحة صادقة.ولا يهون عمنا القحم والسادة المشاهدين.

#24

السلام عليكم

أخي المالكي .. التقسيمات لتقليل عدد السجلات في حالة ما إذا كان هناك أكثر من وظيفة متتابعة شاغرة وليكن مثلا 5 وظائف فسيعرضها في سجل واحد بدلا من 5 سجلات فما بالك لو كان العدد 50 أو 500 .. (تخيل) .

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

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

تحياتي .

missingseq.zip

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

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