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

[ تمت الإجابة ]محتاج طريقة اخذ التاريخ من الرقم المدني ، واسم الأب من اسم الأبن

رائج
بدأه (( عبدالله )) في 22 نوفمبر 2008 · 11 رد · 36,693 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني ( اولاً اريد توضيح شيء وهو اني بحثت ولم اجد مطلوبي ) لذلك وضعت الموضوع ...

انا قبل لا اضع الموضوع كنت عارف ان سؤالي سأله الكثيرون لكن لم اجد موضوع واحد ^^

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

ولدي مربع آخر يكتب فيه تاريخ الميلاد ... ويكون على النح التالي yyyy/mm/dd ...

الرقم المدني متكون كما يلي اول خمس ارقام عادية +02 (يوم)+01 (شهر)+88 (سنة)+رقم

بالأضافة الى السنة بحيث تكون السنة هكذا 1988 وليس هكذا 88 ...

كيف استطيع اخذ تاريخ الميلاد اوتوماتيكياً من الرقم المدني ^^ <<<<< عقد السالفة ...

يعني اول ما اكتب الرقم المدني على طول يكتب لي تاريخ الميلاد بالأستناد اليه ...( من دون تدخل مني )

والسؤال الثاني

عني مربعين نص .. الأول فيه اسم الولد كامل والثاني اسم الأب كامل

اسم الولد دائماً يكون هكذا على الصيغة هذه (اسم1 فراغ اسم2 فراغ اسم3 فراغ اسم4) ... فكيف أأخذ اسم الأب من اسم الولد بحيث يحذف لي اسم الولد من الأسم الكامل ( من خلال الفراغات ) ...

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

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

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#2
اقتباس
يمكن انا عقدت السالفة

ليس الامر فقط بالتعقيد - لكن اسمح لي يا أخ عبدالله

اسألتك تبدو غريبة !!!

عند بناء القاعدة لماذا لايكون لديك مخطط وتصور بما تحتاجه

أفضل من تدخل نفسك في هذه المتاهات وتبدأ تبني برامجك من

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

بالله عليك هل يعقل أن يكون التاريخ بداخل الرقم المدني !!

أرجو أن لا تغضب من طرحي الصريح .. موفق أخي الكريم

تم تعديل هذه المشاركة بواسطة ekseer في 22 نوفمبر 2008 في 22:11

1
#3

بالعكس اخي الكريم لا اغضب ولا هم يحزنون ^^

لكن عندنا نحن بالكويت الرقم المدني عبارة عن تاريخ الميلاد وزيادة عليه ارقام معينة ....

وانا عطيتك مثال لرقم مدني واريد طريقة لاستخلاج تاريخ الميلاد من الرقم ... بالأكسيس طبعاً ^^

اعتقد وضحت الصورة الآن ... يعني ابي اذا دخلت الرقم المدني لشخص يدرج التاريخ تلقائياً ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#4
اقتباس
اعتقد وضحت الصورة الآن ... يعني ابي اذا دخلت الرقم المدني لشخص يدرج التاريخ تلقائياً

نعم وضحت واعتذر اليك في سؤء فهمي للموضوع

حيث ان الامر هكذا ... عليه أمل ارفاق المثال الذي به

المشكلة وان شاء الله يكون خير

#6

يا رجال لا اعتذار ولا شيء ، انا اللي اعتذر عن سوء توضيحي للفكرة ...

جزاك الله خير اخوي وبارك الله فيك ...

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

اختي الوحدة النمطية نقلتها كما هي ، وعملت حدث لأسم الأبن والرقم المدني ، ضبطت معي الرقم المدني لكن الأسم ما ضبطت ....؟ (( لا ينقل لي شيء ))....؟

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

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#7

اخي الفاضل عبدالله

يوجد وحده نمطيه خاصة بتقسيم الإسم الى عدة اجزاء

Function PartOfName(InName As String, NumberOfPart As Byte) As String
Dim TheSpaceNumber As Byte
Dim I As Integer, U As Integer

InName = NoSpaces(InName)
PartOfName = ""
If InName = "" Then Exit Function

Do
	U = I
	I = InStr(I + 1, InName, " ", 1)
	If I <> 0 Then
		TheSpaceNumber = TheSpaceNumber + 1
		If TheSpaceNumber = NumberOfPart Then Exit Do
	ElseIf TheSpaceNumber + 1 = NumberOfPart Then
		I = Len(InName) + 1
		Exit Do
	Else
		Exit Function
	End If
Loop

	PartOfName = Trim(Mid(InName, U + 1, I - U - 1))
End Function

Function NoSpaces(InName As String) As String
Dim NewName As String, ThePrevStr As String, TheStr As String
Dim I As Integer
InName = Trim(InName)
For I = 1 To Len(InName)
	TheStr = Mid(InName, I, 1)
	If TheStr = " " And ThePrevStr = " " Then TheStr = ""
	If TheStr <> "" Then ThePrevStr = TheStr
	NewName = NewName & TheStr
Next
NoSpaces = NewName
End Function

ومن ثم يتم تجميع اسم الأب كاملا بالكود

هذا الكود يوضع في النموذج في حدث بعد التحديث لرقم الهوية

Private Sub IDNumber_AfterUpdate()
Me![DateOfBirth] = 1900 + (Mid([IDNumber], 2, 2)) & "/" & Mid([IDNumber], 4, 2) & "/" & Mid([IDNumber], 6, 2)
End Sub

هذا الكود يوضع في النموذج في حدث بعد التحديث لإسم الإبن ليتم تحديث اسم الأب ( قم بالتعديل لتسميات الحقول حسب ما هو موجود لديك )

Private Sub sName_AfterUpdate()
Me![fName] = PartOfName([sName], 2) & " " & PartOfName([sName], 3) & " " & PartOfName([sName], 4)
End Sub

المثال يعمل بشكل جيد ولا يوجد به اي مشكله

1
#8

اختي المثال تبعك يعمل مية بالمية ...

لكن انا طبقته كما هو وكما شرحتي ولكن لم يضبط معي إلا تاريخ الميلاد ... اما الأسم فلم يضبط معي .....؟

لا ينقل لي اسم الأب كاملا ولا حتى حرف واحد ...؟ اعتقد يكتب لي فراغ فقط ...؟

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

منتظر جواب اختي الكريمة ، وجزاك الله خيرا ...

تم تعديل هذه المشاركة بواسطة (( عبدالله )) في 24 نوفمبر 2008 في 19:56

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#9

اخي الفاضل

الوحدة النمطية تنقل كما هي مع اي قاعدة بيانات بدون اي تعديل

كما رأيت في المثال المرفق

فإنه يوجد حقل رقم الهوية IDNumber نضع بعد تحديثه في الكود حقل تاريخ الميلاد DateOfBirth

وايضا حقل اسم الإبن sName نضع بعد تحديثه في الكود حقل اسم الأب fName

حيث سيقوم الأمر PartOfName المأخوذ من الوحدة النمطية بأخذ الإسم الثاني ( 2 ) وهو اسم الأب من اسم الأبن كاملا ويستمر الى اسم الجد ( 3 ) وايضا الإسم الأخير ( 4 ) من اسم الأبن

بمعنى لو كان اسم الإبن بهذه الطريقة :

محمد عبدالله سلطان خالد

فسيكون اسم الأب :

عبدالله سلطان خالد

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

1
#10

اختي الكريمة ...

جزاك الله خير الجزاء اختي على الشرح ...

المشكلة كانت تكمن ان اسم المربع الخاص بادخال اسم الأبن هو Name

قدر الله ان اغير الأسم من Name الى Name1 ....

فانحلت المشكلة ...

فاللهم لك الحمد والمنة ، وبارك الله فيك ..

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#11

اختي الكريمة يوجد نقطة اخيرة نسيتها ...

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

يعني انا الآن لدي تقريباً 700 اسم ابن ولدي خانة فارغة ل 700 اسم اب ، اريد طريقة معينة املئ جميع خانات اسماء الأباء ...؟

لان لو ابي اعملها يدوي راح تأخذ مني وقت كثير ... وجزاك الله خيرا ...

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#12

رجاء ان يتم مراجعة الموضوع فى الرقم القومى المصرى آخر رقم يسارا 2 يدل على ان تاريخ الميلاد قبل عام 2000 والرقم 3 يدل على ان تاريخ الميلاد بعد 2000 وهذا لا يضط معى فى النموذج الموجود بمشاركة الاستاذة زهرة

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

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

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

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

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