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

تحديد كلمة المرور 3 مرات فقط وبعدين يغلق البرنامج تلقائياً... كيف؟؟؟

مغلق
بدأه asfora في 21 يوليو 2006 · 4 رد · 718 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخواني الأحباب في المنتدي

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

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

والكود الذي استعرته من الأستاذ ناصر هو كما يلي

Private Sub Command1_Click()
Dim str1 As Integer   'هذا متغير عــام يمثل عداد لعدد مرات إدخال بيانات دخول خاطئة ، و تم تعريفه على انه متغير عام حتى يقوم بالاحتفاظ بأخر عدد يخزنه
Dim Str As String  'هذا المتغير لتخزين كلمة المرور بعد البحث عن اسم المستخدم
Dim nam As String
rs.MoveFirst
rs.Find "user_name='" + CStr(Combo2.Text) + "'", 0, adSearchForward, 1
If Not rs.EOF Then
Str = rs![Password]  'هنا يتم تعبئة المتغير بكلمة المرور التي حصل عليها من الجدول
End If

If Text2.Text = Str Then ' نقارن كلمة المرور من الجدول بالنص المكتوب
nam = Combo2.Text 'هذا المتغير عبارة عن متغير عام بحيث يكون اسم المستخدم موجود معنا في النظام دائماً لإستخدامة في أي شاشة من شاشات النظام
main.Show
Unload Me
ElseIf Text2 <> Str And str1 = 0 Then 'إذا كانت المحاولة خاطئة يعيدها ثلاث مرات فقط
MsgBox "كلمة المرور غير صحيحة ، اعد المحاولة", vbMsgBoxRight + vbMsgBoxRtlReading, " الدخول إلى النظام"
str1 = 1
Text2.Text = ""
Text2.SetFocus
'Exit Sub
ElseIf Text2 <> Str And str1 = 1 Then
MsgBox " كلمة المرور غير صحيحة ، اعد المحاولة ", vbMsgBoxRight + vbMsgBoxRtlReading, " الدخول إلى النظام"
str1 = 2
Text2.Text = ""
Text2.SetFocus
'Exit Sub
ElseIf Text2 <> Str And str1 = 2 Then
MsgBox " كلمة المرور غير صحيحة ", vbMsgBoxRight + vbMsgBoxRtlReading, "الدخول إلى النظام "
'Exit Sub
If str1 >= 2 Then
Command2_Click
End If
'rs.Find "user_name='" + nam + "'", 0, adSearchForward, 1
End If
End Sub

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

ولكم جزيل الشكر

#2

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

اخي قم بتحميل المثال المرفق

الكود سهل ان شاء الله

جربه واخبرني بالنتيجة

==========

الى اللقاء

Passwd.rar

JusT LeT YouR MinD WorK

#3

أخي مستر كينج ... إخواني الأحباب

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

مع العلم أنني عرفت في form_load ما يلي

dim pw as integer

pw=0

وإليك الكود

Private Sub Command1_Click()
Dim Str As String 
Dim nam As String
rs.MoveFirst
rs.Find "user_name='" + CStr(Combo2.Text) + "'", 0, adSearchForward, 1
If Not rs.EOF Then
Str = rs![password] 
End If

If Text2.Text = Str Then 
nam = Combo2.Text
main.Show
Unload Me
Else
pw = Val(pw) + 1
MsgBox"كلمة المرور غير صحيحة ، نرجوا اعادة إدخالها", vbMsgBoxRight + vbMsgBoxRtlReading, " 
Text2.Text = ""
Text2.SetFocus
If pw = 3 Then
End
End If
End If
End Sub
#4

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

اخي الخطأ كله في انك عرفت المتغير pw في الفورم لود لأنه بذلك اصبح معرف على مستوى الـ Sub فقط

ولحل المشكلة قم بوضع في قسم التصريحات العامة (General Delaration)

dim pw as integer

وسيعمل معك البرنامج بنجاح ان شاء الله

============

الى اللقاء

JusT LeT YouR MinD WorK

#5

أخي مستر كينج

حقيقي أنا عاجز عن الشكر

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

عرفت المتغير في الgeneral وتم تنفيذه فعلاً

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

شكراً مرة أخرى

أحمــــــــــــد

:D

:D

:D

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

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

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

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

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

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