اذهب الي المحتوي
أوفيسنا

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

قام بنشر

لدي جدول به حقل الاسم وحقل الرقم القومي

اريد ان اجعل حقل الرقم القومي لا يقبل الا ارقام فقط بواقع 14 رقم فقط

واريد استعلام يقوم بناء علي الرقم القومي بحساب تاريخ الميلاد والنوع (ذكر او انثي) ومحافظه الميلاد

قام بنشر

اخي الكريم بالنسبة للطلب الاول فقم بفتح الجدول في وضع التصميم ومن ثم ضع 00000000000000 في خاصية قناع الادخال لحقل الرقم القومي

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

قام بنشر

 :الاخ الفاضل شكراً علي سرعة الرد وبخصوص توضيح مكونات الرقم القومي

الرقم القومي مكون من 14 رقم 

 يبدأ برقم 2 ويدل علي ان الشخص مولود بعد سنة 1900 أو يبدأ برقم 3 ويدل ان الشخص مولود  2000 والرقمين التاليين يدلوا علي سنه الميلاد

والاربع ارقام التاليه تدل علي الشهر واليوم 

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

وباقي الارقام عشوائيه مع مراعاة ان الرقم الثاني من اليمين ان كان فردي يدل علي ان الشخص نوعه ذكر وان كان ذوجي يدل علي ان الشخص انثي

علي سبيل المثال : 26501152600516

يدل علي ان الشخص مولود سنة 1965 في شهر يناير يوم 15

وانه مولود في  محافظه سوهاج في مصر وانه ذكر

قام بنشر

لمعرفة تاريخ الميلاد استخدم 

Me![DateOfBirth] = Format(IIf(Left([IDNumber], 1) = 3, Mid([IDNumber], 2, 2) + 2000, Mid([IDNumber], 2, 2) + 1900) & "/" & Mid([IDNumber], 4, 2) & "/" & Mid([IDNumber], 6, 2), "yyyy/mm/dd")

 

قام بنشر
في ٦‏/٢‏/٢٠١٨ at 19:28, george2018 said:

لدي جدول به حقل الاسم وحقل الرقم القومي

اريد ان اجعل حقل الرقم القومي لا يقبل الا ارقام فقط بواقع 14 رقم فقط

واريد استعلام يقوم بناء علي الرقم القومي بحساب تاريخ الميلاد والنوع (ذكر او انثي) ومحافظه الميلاد

 

معالجة البيانات من الرقم القومى.rar

قام بنشر

بعد إذن الأفاضل

هذه دالة كنت قد صممتها لهذا الغرض قبل ذلك

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

Function mas_n_id_data(myid As Variant, Optional stype As Byte = 1) As Variant
If myid = "" Then mas_n_id_data = "": Exit Function
Dim n As Byte, governrate As Variant
If stype = 1 Then
    mas_n_id_data = DateSerial(IIf(Left(myid, 1) = 2, 19, 20) & Mid(myid, 2, 2), Mid(myid, 4, 2), Mid(myid, 6, 2))
ElseIf stype = 2 Then
governrate = Array("01-القاهرة", "02-الإسكندرية", "03-بورسعيد", "04-السويس", "11-دمياط", "12-الدقهلية", "13-الشرقية" _
, "14-القليوبية", "15-كفر الشيخ", "16-الغربية", "17-المنوفية", "18-البحيرة", "31-البحر الأحمر", "32-الوادى الجديد" _
, "19-الإسماعيلية", "21-الجيزة", "22-بني سويف", "23-الفيوم", "24-المنيا", "25-أسيوط", "34-شمال سيناء", "35-جنوب سيناء" _
, "26-سوهاج", "27-قنا", "28-أسوان", "29-الأقصر", "33-مطروح", "88-خارج مصر")
    For n = 0 To 27
        If Mid(myid, 8, 2) = Left(governrate(n), 2) Then
            mas_n_id_data = Right(governrate(n), Len(governrate(n)) - 3)
            Exit For
        End If
    Next
Else
    mas_n_id_data = IIf(Mid(myid, 13, 1) Mod 2 = 0, "أثنى", "ذكر")
End If
End Function

وطريقة استعمالها في الاستعلام  أو في خلايا الإكسل

=mas_n_id_data("00000000000000", 2)

حيث أن الأصفار هي الرقم القومي أو الحقل أو الخلية التي تحتوي عليه

والرقم الثاني

1 أو يترك خاليا لاستخراج تاريخ الميلاد كتاريخ

2 لاستخراج المحافظة كنص

3 لاستخراج النوع كنص

نفعنا الله وإياكم بما علمنا وعلمنا ما ينفعنا

  • Like 1
  • 5 years later...
قام بنشر
في 8‏/2‏/2018 at 22:49, أ / محمد صالح said:

بعد إذن الأفاضل

هذه دالة كنت قد صممتها لهذا الغرض قبل ذلك

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

Function mas_n_id_data(myid As Variant, Optional stype As Byte = 1) As Variant
If myid = "" Then mas_n_id_data = "": Exit Function
Dim n As Byte, governrate As Variant
If stype = 1 Then
    mas_n_id_data = DateSerial(IIf(Left(myid, 1) = 2, 19, 20) & Mid(myid, 2, 2), Mid(myid, 4, 2), Mid(myid, 6, 2))
ElseIf stype = 2 Then
governrate = Array("01-القاهرة", "02-الإسكندرية", "03-بورسعيد", "04-السويس", "11-دمياط", "12-الدقهلية", "13-الشرقية" _
, "14-القليوبية", "15-كفر الشيخ", "16-الغربية", "17-المنوفية", "18-البحيرة", "31-البحر الأحمر", "32-الوادى الجديد" _
, "19-الإسماعيلية", "21-الجيزة", "22-بني سويف", "23-الفيوم", "24-المنيا", "25-أسيوط", "34-شمال سيناء", "35-جنوب سيناء" _
, "26-سوهاج", "27-قنا", "28-أسوان", "29-الأقصر", "33-مطروح", "88-خارج مصر")
    For n = 0 To 27
        If Mid(myid, 8, 2) = Left(governrate(n), 2) Then
            mas_n_id_data = Right(governrate(n), Len(governrate(n)) - 3)
            Exit For
        End If
    Next
Else
    mas_n_id_data = IIf(Mid(myid, 13, 1) Mod 2 = 0, "أثنى", "ذكر")
End If
End Function

وطريقة استعمالها في الاستعلام  أو في خلايا الإكسل

=mas_n_id_data("00000000000000", 2)

حيث أن الأصفار هي الرقم القومي أو الحقل أو الخلية التي تحتوي عليه

والرقم الثاني

1 أو يترك خاليا لاستخراج تاريخ الميلاد كتاريخ

2 لاستخراج المحافظة كنص

3 لاستخراج النوع كنص

نفعنا الله وإياكم بما علمنا وعلمنا ما ينفعنا

مشكور الغالى 

ولكن كيف استخدمها غى الاكسيس واين اضعها

قام بنشر

في موديول جديد

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

بالطريقة المذكورة في المشاركة السابقة

بالتوفيق للجميع 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information