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

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

قام بنشر

السلام عليكم

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

وكما في البرنامج المرفق .

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

وشكرا

 

Example.accdb

قام بنشر
3 ساعات مضت, النهر العطشان said:

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

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

ثم نعمل حلقة باستخدام For Each تمر على كافة حقول السجل المطلوب نقله ⬇️

For Each fld In rst.Fields
If IsNull(fld.Value) Then

اي في حالة وجود اي حقل فارغ نفذ الشرط

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

DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0]

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

اما في حالة عدم وجود حقول فارغة فيتم نقل السجل للجدول الاخر سواء عن طريق استعلام او عن طريق مصدر السجلات

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

تحياتي

حقل.gif

  • Like 1
قام بنشر
34 دقائق مضت, مبرمج سابق said:

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

ثم نعمل حلقة باستخدام For Each تمر على كافة حقول السجل المطلوب نقله ⬇️

For Each fld In rst.Fields
If IsNull(fld.Value) Then

اي في حالة وجود اي حقل فارغ نفذ الشرط

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

DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0]

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

اما في حالة عدم وجود حقول فارغة فيتم نقل السجل للجدول الاخر سواء عن طريق استعلام او عن طريق مصدر السجلات

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

تحياتي

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

ممكن توضيح بمثال للملف المرفق

قام بنشر
11 ساعات مضت, النهر العطشان said:

ممكن توضيح بمثال للملف المرفق

نعم اخي وان كنت افضل ان يكون الحل مقدم من احد اساتذة الموقع او الخبراء الافاضل

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

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

في زر الامر نقل وضعنا الكود التالي

Dim n As Integer
n = IIf(IsNull([Text0]), 0, [Text0])
If DCount("*", "[Students]", "[ID]=" & n) = 0 Then Exit Sub
    Dim rst As Recordset
    Dim rs As Recordset
    Dim fld As Field
    Set rst = Me.RecordsetClone
    Set rs = CurrentDb.OpenRecordset("team")
    rst.FindFirst "[ID]=" & [Text0]
    For Each fld In rst.Fields
    If IsNull(fld.Value) Then
    MsgBox fld.Name
    DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0]
    Exit Sub
Else
    rs.AddNew
    rs.Fields(0) = rst.Fields(0)
    rs.Fields(1) = rst.Fields(1)
    rs.Fields(2) = rst.Fields(2)
    rs.Fields(3) = rst.Fields(3)
    rs.Fields(4) = rst.Fields(4)

    End If
    Next fld
    rs.Update
    rs.Close: rst.Close
    Set rs = Nothing: Set rst = Nothing

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

الاسطر 4 و 5 و 6 حجز متغيرات اثنين مصدر سجلات وواحد حقل

الاسطر 7 و 8 اسناد متغيرين الى مصدرهما

السطر التاسع البحث عن رقم الطالب

10 و 11 عمل حلقة لفحص الحقول في السجل المطلوب نقلة

12 و 13 و 14 اضهار رسالة باسم الحقل الفارغ وفتح النموذج على بيانات الطالب لاستكمال الحقول الفارغة وانهاء الاجراء لحين استكمال البيانات يمكن الاستغناء عن سطر 12

من 15 الى 21 في حالة عدم وجود حقول فارغة انقل السجل كل حقل بمكانه المحدد ايضا ممكن اختصاره من 7 اسطر الى 3 اسطر طالما اسماء الحقول متطابقة

باقي الاسطر لانهاء الشرط والحلقة الدوارة واغلاق مصدر السجلات

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

الملف مرفق

تحياتي

 

النهر.accdb

  • Like 4
قام بنشر
8 ساعات مضت, مبرمج سابق said:

عم اخي وان كنت افضل ان يكون الحل مقدم من احد اساتذة الموقع او الخبراء الافاضل

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

كنت اتمنى انا ايظا ان يشاركنا احد الاساتذة الكرام من الخبراء في هذا الموقع المحترم وبفكره اخرى وعلى مثالي المرفق .

باظهار رسالة للحقل الفارغ والتعديل علية .

مع جزيل الشكر والامتنان

 

Example.accdb

قام بنشر
27 دقائق مضت, النهر العطشان said:

ولو ان كود نقل السجل ليس هو في المثال المرفق من قبلي

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

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

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

على كل حال اعتبر هذا الرد رفع للموضوع لعلك تجد ما تريد

تحياتي

 

  • Like 1
قام بنشر
2 ساعات مضت, مبرمج سابق said:

على كل حال اعتبر هذا الرد رفع للموضوع لعلك تجد ما تريد

تحياتي

شكرا اخي على الاجابة جعلها الله في ميزان حسناتك

ننتظر من الاساتذة الخبراء في الموقع على اعطائنا حل آخر للموضع وان امكن بالكود المستخدم في عملية نسخ سجل من جدول الى اخر المرفق بالملف اعلاه

وشكرا

قام بنشر

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

مشاركه مع اخى واستاذى ووالدى الحبيب @مبرمج سابق جزاه الله عنا كل خير 💐🌹

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

الكود التالى والمرفق بالمثال

Private Sub Command2_Click()

Dim n As Integer
n = IIf(IsNull([Text0]), 0, [Text0])
If DCount("*", "[Students]", "[ID]=" & n) = 0 Then MsgBox "هذا القيد غير موجود": Exit Sub
    Dim rst As Recordset

    Dim fld As Field
    Set rst = Me.RecordsetClone

    rst.FindFirst "[ID]=" & [n]

    For Each fld In rst.Fields
        If IsNull(fld.Value) Then
            MsgBox fld.Name
            DoCmd.OpenForm "frm_Stud", , , "[id]=" & [n]
            Exit Sub
        End If
    Next fld

DoCmd.SetWarnings False

DoCmd.RunSQL "INSERT INTO Team ( ID, Fullname, tel, Degree, class ) " & vbCrLf & _
             "SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & vbCrLf & _
             "FROM Students " & vbCrLf & _
             "WHERE (((Students.ID)=[Forms]![Form]![Text0]));"

DoCmd.SetWarnings True

Me.Text0 = ""
Me.Text0.SetFocus

End Sub

وتعديل بسيط ع كود معلمى ووالدى الحبيب جزاه الله عنا كل خير

وهو اخراج جزء الاضافه لما بعد فحص الحقول

Private Sub Command2_Click()
Dim n As Integer
n = IIf(IsNull([Text0]), 0, [Text0])
If DCount("*", "[Students]", "[ID]=" & n) = 0 Then Exit Sub
    Dim rst As Recordset
    Dim rs As Recordset
    Dim fld As Field
    Set rst = Me.RecordsetClone
    Set rs = CurrentDb.OpenRecordset("team")
    rst.FindFirst "[ID]=" & [Text0]
    
    For Each fld In rst.Fields
        If IsNull(fld.Value) Then
            MsgBox fld.Name
            DoCmd.OpenForm "frm_Stud", , , "[id]=" & [Text0]
            Exit Sub
        End If
    Next fld
    
    rs.AddNew
    rs.Fields(0) = rst.Fields(0)
    rs.Fields(1) = rst.Fields(1)
    rs.Fields(2) = rst.Fields(2)
    rs.Fields(3) = rst.Fields(3)
    rs.Fields(4) = rst.Fields(4)
    rs.Update
    
    rs.Close: rst.Close
    Set rs = Nothing: Set rst = Nothing
End Sub

 

تقبلوا تحياتى ومرورى

Example_1.accdb

  • Like 2
  • Thanks 1
قام بنشر (معدل)

وهذه مشاركة مع اساتذتي الكرام ... مع التحية لهم جميعا .....

If DCount("*", "[Students]", "[ID]=" & Me.Text0) > 0 Then

    Dim rst As DAO.Recordset
    Dim fld As Field
    Dim a As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & _
                                        "FROM Students " & _
                                        "WHERE (((Students.ID)=" & [Forms]![Form]![Text0] & "));")
    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If IsNull(fld.Value) Then
    MsgBox "قم باكمال البيانات" & "(" & fld.Name & ")" & "ليس هناك بيانات في الحقل"
    DoCmd.OpenQuery "استعلام1", acViewNormal
    Exit Sub
    End If
    Next fld
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Team ( ID, Fullname, tel, Degree, class ) " & vbCrLf & _
            "SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & vbCrLf & _
            "FROM Students " & vbCrLf & _
            "WHERE (((Students.ID)=[Forms]![Form]![Text0]));"

DoCmd.SetWarnings True
Me.Text0 = ""
Else
   MsgBox "هذا القيد غير موجود"
End If
Me.Requery
Me.Text0 = Null
Me.Text0.SetFocus

 

Example.accdb

تم تعديل بواسطه kanory
  • Like 2
  • Thanks 1
قام بنشر

يمكن اختصار:
 

n = IIf(IsNull([Text0]), 0, [Text0])

إلى:

n = Nz(Me.Text0), 0)


ويمكن لمزيد من الاختراز تبديل:
 

If IsNull(fld.Value) Then

إلى:
 

If Trim(Nz(fld.Value, "")) = "" Then


مع الإعتذار لكاتب الأكواد فهي صحيحة ولكن صيغت أولها للإختصار والأخرى لمزيد من الإحتراز.

  • Like 2
قام بنشر (معدل)

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

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

شكر وتقدير الى الاستاذ kanory المحترم

شكر وتقدير الى الاستاذ احمد الفلاحجي المحترم

شكر وتقدير الى الاستاذ مبرمج سابق المحترم

شكر وتقدير الى الاستاذ AbuuAhmed المحترم

من لم يشكر المخلوق لم يشكر الخالق

بالنسبة لكود استاذنا الكبير kanory لدي سؤال ؟

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

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

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

وكما في الملف المرفق

 

 

 

exap 3.accdb

تم تعديل بواسطه النهر العطشان
خطاء في السؤال
قام بنشر

الشكر لله ثم لاخوانننا واساتذتنا جزاهم الله عنا كل خير

3 ساعات مضت, النهر العطشان said:

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

اتفضل التعديل على تعديلك لكود اخى واستاذى @kanory جزاه الله خيرا

Private Sub Command2_Click()
If DCount("*", "[Students]", "[ID]=" & Me.Text0) > 0 Then

    Dim rst As DAO.Recordset
    Dim fld As Field
    Dim a As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & _
                                        "FROM Students " & _
                                        "WHERE (((Students.ID)=" & [Forms]![Form]![Text0] & "));")

    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If IsNull(fld.Value) Then
    
  
    MsgBox "فارغ   " & fld.Name & "   حقل", vbOKOnly + vbMsgBoxRight, "انتبه"
    End If
    Next fld
   
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
    End If

 End Sub

بالتوفيق

  • Like 1
  • Thanks 1
قام بنشر (معدل)
3 ساعات مضت, احمد الفلاحجي said:

اتفضل التعديل على تعديلك لكود اخى واستاذى @kanory جزاه الله خيرا

السلام عليكم استاذي الفاضل احمد الفلاحجي المحترم

شكر وتقدير لحضرتك والى الاستاذ الفاضل kanory المحترمين

جعلها الله في ميزان حسناتكم .

وهو المطلوب .

ولكن هل يمكن :

1-هل يمكن ان تتوحد الرسائل التي تنبهني ان هنالك حقول فارغه برسالة واحده فقط بكل الحقول الفارغة للسجل الواحد ؟

2-وهل يمكنني ان احدد اي حقل يعني اريد ان اختار حقل معين مثلا اختار حقلين فقط (الاسم ورقم الهاتف) وتتغاضى عن بقية الحقول الفارغة من هذا الكود باسم السجلات التي اريدها ؟

    Set rst = CurrentDb.OpenRecordset("SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & _
                                        "FROM Students " & _
                                        "WHERE (((Students.ID)=" & [Forms]![Form]![Text0] & "));")

 

وشكرا

 

 

تم تعديل بواسطه النهر العطشان
اضافة كود
قام بنشر (معدل)
في 5‏/8‏/2022 at 20:04, النهر العطشان said:

ولكن هل يمكن :

1-هل يمكن ان تتوحد الرسائل التي تنبهني ان هنالك حقول فارغه برسالة واحده فقط بكل الحقول الفارغة للسجل الواحد ؟

2-وهل يمكنني ان احدد اي حقل يعني اريد ان اختار حقل معين مثلا اختار حقلين فقط (الاسم ورقم الهاتف) وتتغاضى عن بقية الحقول الفارغة من هذا الكود باسم السجلات التي اريدها ؟

اتفضل ان شاء الله يكون ما تريد

Private Sub Command2_Click()
If DCount("*", "[Students]", "[ID]=" & Me.Text0) > 0 Then

    Dim rst As DAO.Recordset
    Dim fld As Field
    Dim a As Integer
    Set rst = CurrentDb.OpenRecordset("SELECT Students.ID, Students.Fullname, Students.tel, Students.Degree, Students.class " & _
                                        "FROM Students " & _
                                        "WHERE (((Students.ID)=" & [Forms]![Form]![Text0] & "));")

    For a = 1 To rst.RecordCount
        For Each fld In rst.Fields
            If IsNull(fld.Value) Then
                If fld.Name = "Fullname" Or fld.Name = "tel" Then
                    x = fld.Name & vbCrLf & x
                End If
            End If
        Next fld
        rst.MoveNext
    Next a
    
    If Len(x & "") <> 0 Then MsgBox "All Fields Null :" & vbCrLf & x, vbOKOnly, "انتبه"
    
    rst.Close: Set rst = Nothing
    End If

 End Sub

بالتوفيق

 

exap3_3A.accdb

تم تعديل بواسطه احمد الفلاحجي
  • Like 1
  • Thanks 1
قام بنشر
7 ساعات مضت, احمد الفلاحجي said:

اتفضل ان شاء الله يكون ما تريد

سؤال استاذ الفاضل احمد ماهي فائدة استخدام حلقتين تكرارية

    For a = 1 To rst.RecordCount
        For Each fld In rst.Fields
            If IsNull(fld.Value) Then

اليست واحدة تكفي لتنفيذ المطلوب وخصوصا اننا نتعامل مع سجل واحد كل مره واذا اردنا استخدام for next بدلا من for each

For x = 0 To rst.Fields.Count - 1
If IsNull(rst.Fields(x)) Then

وايضا لماذا الانتقال للسجل التالي

        rst.MoveNext
    Next a

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

في 5‏/8‏/2022 at 11:12, AbuuAhmed said:

مع الإعتذار لكاتب الأكواد فهي صحيحة ولكن صيغت أولها للإختصار والأخرى لمزيد من الإحتراز.

احسنت اخي ولكل طريقته

وطالما تحدثنا عن الاختصار ممكن نختصر الكود كاملا الى سبعة او ثمانية اسطر فقط بتحويل الحلقة التكرارية الى وحدة نمطية ثم تقوم بتعويض الحقول الفارغة والمكتمل الى 0 و 1

وايضا ممكن تنفيذ كل المطلوب بدون استخدام vba اي عن طريق استعلام اضافي واستخدام المايكروا وفي هذه الطريقة لن نستطيع اظهار اسماء الحقول وانما فقط رسالة بوجود حقول فارغة

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

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

تحياتي للجميع

  • Thanks 1
قام بنشر (معدل)

دالة Nz ، دالة قوية وتغنيك عن استخدام عبارة الـ if ، أو دالة IIf
علما لم أطلع على كل الأكواد ولم أقرأ جميع الردود ولما علقت لم أركز على كاتبها ، ونحن في منتدى نتعلم كل يوم شيء جديد وكثير من الأحيان أبدل فيه طريقتي التي اعتدت عليها لما أرى طريقة جديدة دون التدقيق كثيرا في كاتبها. 
لكم كل الود والتقدير. 

تم تعديل بواسطه AbuuAhmed
تصحيح أخطاء مطبعية
  • Like 1
قام بنشر

اخى ومعلمى ووالدى العزيز @مبرمج سابق

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

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

12 ساعات مضت, مبرمج سابق said:

اليست واحدة تكفي لتنفيذ المطلوب وخصوصا اننا نتعامل مع سجل واحد كل مره واذا اردنا استخدام for next بدلا من for each

نعم تكفى وجزاك الله خيرا ع تنبيهك لنا ع ما قد سهونا عنه

تقبلوا تحياتى ومرورى

  • Like 1
قام بنشر

ياهلا بالعم احمد مساك الله بالخير

9 دقائق مضت, احمد الفلاحجي said:

حتى يصيبنى واخوتى واساتذتى دعوه تعيننا ع الحياه المريره

اسال الله ان يعينك ويسهل امورك ويجعل لك من كل هم فرجا ومن كل ضيق مخرجا

تحياتي يا ابا بسملة 🌹

  • Thanks 1
قام بنشر
منذ ساعه, مبرمج سابق said:

اهلا بالعم احمد مساك الله بالخير

1 ساعه مضت, احمد الفلاحجي said:

حتى يصيبنى واخوتى واساتذتى دعوه تعيننا ع الحياه المريره

اسال الله ان يعينك ويسهل امورك ويجعل لك من كل هم فرجا ومن كل ضيق مخرجا

تحياتي يا ابا بسملة 🌹

اهلا بوالدى العزيز مساكم الله بكل خير

اللهم آمين واياكم جميعا

14 ساعات مضت, مبرمج سابق said:

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

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

💐🌹

  • Like 1
قام بنشر
12 دقائق مضت, احمد الفلاحجي said:

معك حق استاذى العزيز

الحقيقة الموضوع هو قناعات ومن حق اخونا العزيز النهر العطشان اختيار الطريقة التي تناسبة وليس من حقي او اي احد خر فرض طريقك معينة عليه ولكني اضع رأيي والفصل الاخير بيد صاحب الموضوع

16 دقائق مضت, احمد الفلاحجي said:

ضعيف فى الاكواد مثلى

في هذه اختلف معك من جهتين اولا هو يحاول التعلم ويعدل على الاكواد فان لم ينجح الان سوف ينجح باذن الله مستقبلا

وفي الجانب الاخر بل انت استاذ وخبير وبشهادة الجميع

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

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