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

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

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

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

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

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

على سبيل المثال حقل لارقام المحمول نجعله نصى لان حقل المحمول سيتم تخزين فيه مثلا 11 رقم وحتى يقبل 0 باول الرقم , لان الحقل الرقمى لا يقوم بذلك

مثل الصوره الاولى

الكود التالى

IsNumeric([Tel])=صواب Or Is Null

يقوم باجبار المستخدم بادخال قيم رقميه او ترك الحقل فارغ

كما الصوره التاليه

وبالمثال يتضح المقال

 

ارجو ان اكون وفقت للشرح

تقبلوا تحياتى وتمنياتى لكم بالتوفيق

طبتم واهتديتم

 

 

n1.jpg

n2.jpg

ex.mdb

تم تعديل بواسطه أحمد الفلاحجى
  • Like 6
  • Thanks 1
قام بنشر (معدل)

وهذا بالكود قبل الحدث

 بدون تحقق من الصحه

If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
ElseIf Len(Tel) <> 11 Then
 MsgBox "  فـضـلاً أدخـل  احـدعـشـر أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Cancel = True
Me.Tel.Undo
End If

 

تم تعديل بواسطه ابو ياسين المشولي
  • Like 2
قام بنشر
35 دقائق مضت, محمد ابوعبد الله said:

جزاك الله خيراً اخي احمد

راجياً من الله لك وللجميع الوفيق

تحياتي

 

واياك اخى محمد

34 دقائق مضت, ابو ياسين المشولي said:

وهذا بالكود قبل الحدث

 بدون تحقق من الصحه


If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
ElseIf Len(Tel) <> 10 Then
 MsgBox "  فـضـلاً أدخـل  احـدعـشـر أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Cancel = True
Me.Tel.Undo
End If

 

بارك الله فيك اخى ابوياسين

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

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

وهل كتابه الرقم 10 بدل 11 هذا لانه يعد من 0 كالمصفوفات ؟

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

طبتم واهتديتم

قام بنشر
8 دقائق مضت, أحمد الفلاحجى said:

واياك اخى محمد

بارك الله فيك اخى ابوياسين

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

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

وهل كتابه الرقم 10 بدل 11 هذا لانه يعد من 0 كالمصفوفات ؟

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

طبتم واهتديتم

جرب هذا

If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
ElseIf Len(Tel) <> 10Then
 MsgBox "  فـضـلاً أدخـل  عـشـرة أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 'Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
'Cancel = True
'Me.Tel.Undo
End If

 

8 دقائق مضت, أحمد الفلاحجى said:

واياك اخى محمد

بارك الله فيك اخى ابوياسين

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

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

وهل كتابه الرقم 10 بدل 11 هذا لانه يعد من 0 كالمصفوفات ؟

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

طبتم واهتديتم

جرب هذا

If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
ElseIf Len(Tel) <> 10Then
 MsgBox "  فـضـلاً أدخـل  عـشـرة أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 'Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
'Cancel = True
'Me.Tel.Undo
End If

 

قام بنشر
48 دقائق مضت, ابو ياسين المشولي said:

جرب هذا


If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
ElseIf Len(Tel) <> 10Then
 MsgBox "  فـضـلاً أدخـل  عـشـرة أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 'Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
'Cancel = True
'Me.Tel.Undo
End If

 

اخى ابوياسين

يقوم باظهار الرساله ثم يسمح

وقمت بادخال حرف فظهرت الرساله وسمح بالحرف

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

قام بنشر

أخى ابو ياسين

افضل نتيجه توصلت اليها هو هذا الكود

Private Sub Tel_Exit(Cancel As Integer)

If IsNull(Tel) = True Then
    Me.Tel = Null
    DoCmd.GoToRecord , , acNewRec
    Me.Names.SetFocus
ElseIf Not IsNumeric([Tel]) Then
    MsgBox "  ÝÜÖÜáÇð ÃÏÎÜá  ÃÑÞÜÇã  ÝÜÞÜØ  æáÜíÜÓ  ÍÜÑ æ Ý ", vbInformation, "  : ÎÜØÜÇÁ "
    DoCmd.CancelEvent
    Me.Tel.Undo
ElseIf Len(Tel) <> 11 Then
    MsgBox "  ÝÜÖÜáÇð ÃÏÎÜá  ÇÍÜÏÚÜÔÜÑ ÃÑÞÜÇã  ÝÜÞÜØ  æáÜíÜÓ  ÇÞÜá  Çæ ÇßÜËÜÑ ", vbExclamation, " : ÎÜØÜÇÁ "
    Cancel = True 'åÐÇÇáÓØÑ æÇáÇ ÊÍÊå íÚíÏ ÇáÊÑßíÒ áäÝÓ ÇáÍÞá'
    Cancel = True
    Me.Tel.Undo
End If

End Sub

فهل هذا تمام ام هناك افضل

فى انتظار مشاركتكم اخوانى

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

طبتم واهتديتم

  • أفضل إجابة
قام بنشر (معدل)

اظن هذا حسب طلبك

If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Me.Tel.Undo
ElseIf Len(Tel) <> 11 Then
 MsgBox "  فـضـلاً أدخـل  احد عـشـر أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Me.Tel.Undo
End If

 

ex.mdb

تم تعديل بواسطه ابو ياسين المشولي
  • Like 2
قام بنشر
منذ ساعه, ابو ياسين المشولي said:

اظن هذا خحسب طلبك


If Not IsNumeric(Tel) Then
 MsgBox "  فـضـلاً أدخـل  أرقـام  فـقـط  ولـيـس  حـر و ف ", vbInformation, "  : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Me.Tel.Undo
ElseIf Len(Tel) <> 11 Then
 MsgBox "  فـضـلاً أدخـل  احد عـشـر أرقـام  فـقـط  ولـيـس  اقـل  او اكـثـر ", vbExclamation, " : خـطـاء "
 Cancel = True 'هذاالسطر والا تحته يعيد التركيز لنفس الحقل'
Me.Tel.Undo
End If

 

ex.mdb 352 kB · 1 تنزيلات

تسلم اخى واستاذى ابو ياسين

تغيير الحدث لقبل التحديث جعله يعمل بافضل حال

وعمل معى فالرد السابق لى فى حدث عند الخروج بالتمام

تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق

طبتم واهتديتم

  • Like 1
قام بنشر

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

قمت بالتحسين بالمثال شويه على سبيل التجريب والتعليم

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

قمت باضافه حقل Kwmy بالجدول

قمت باضافه مديول لاستدعائه فى اى حقل وبه الكود التالى

Function chkNum(CNum As String, x As Byte)
Dim Cancel As Boolean
If Not IsNumeric(CNum) Then
     MsgBox "  ÝÜÖÜáÇð ÃÏÎÜá  ÃÑÞÜÇã  ÝÜÞÜØ  æáÜíÜÓ  ÍÜÑ æ Ý ", vbInformation, "  : ÎÜØÜÇÁ "
 Cancel = True 'åÐÇÇáÓØÑ æÇáÇ ÊÍÊå íÚíÏ ÇáÊÑßíÒ áäÝÓ ÇáÍÞá'
 DoCmd.CancelEvent
ElseIf Len(CNum) <> x Then
 MsgBox "  ÝÜÖÜáÇð ÃÏÎÜá " & x & " ÑÞã ÝÞØ ", vbExclamation, " : ÎÜØÜÇÁ "
 Cancel = True 'åÐÇÇáÓØÑ æÇáÇ ÊÍÊå íÚíÏ ÇáÊÑßíÒ áäÝÓ ÇáÍÞá'
DoCmd.CancelEvent
End If

End Function

وتم استدعائهم بالحقول كالتالى 

حقل قومى

Private Sub Kwmy_BeforeUpdate(Cancel As Integer)

Call chkNum(Kwmy, 14)

End Sub

حقل تليفون

Private Sub Tel_BeforeUpdate(Cancel As Integer)

Call chkNum(Tel, 11)

End Sub

والمثال المرفق بعد التعديل

تقبلوا تحياتى وتمنياتى لكم وللجميع بالتوفيق

طبتم واهتديتم

ex_up.mdb

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.

×
×
  • اضف...

Important Information