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

الرجاء تعديل الكود البرمجي

بدأه سلامنا لكم في 20 فبراير 2012 · 5 رد · 392 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني واخواتي الاعضاء والمشرفين الكرام

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

تم اكتشاف ان النموذج

فيه حالتان :

الحالة الاولى : المستخدم غير مسند الى نموذج

مثلا مستخدم اسمه (f) وباسوورد (f) يدخل للقاعدة بصورة طبيعية وهو غير مسند الى اي نموذج

و ولو ادخلنا الاسم f وكلمة مرور خطأ لايدخل للقاعدة ولحد الان مافي مشاكل

المشكلة في الحالة الثانية: المستخدم المسند الى نموذج

مثلا المستخدم ( a) وكلمة مروره (1) مسند الى النموذج (aa )

عند ادخال اسم المستخدم ( a ) واي كلمة مرور خطأ يفتح النموذج ( aa )

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

حتى يفتح النموذج (aa) .

فمن لديه القدرة على التعديل ارجو المساعدة العاجلة

ولكم الشكر وكل التقدير والاحترام

za-Fiveusers.rar

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 21 فبراير 2012 في 01:12

#2

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

تفضل أخي سلامنا لكم التعديل في المرفقات

وسلامنا لكم وللجميع

post-212280-059880600 1329771558_thumb.j

za-Fiveusers.rar

المرفقات
e1.jpg
1

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#3

السلام عليكم

جزاك الله خير اخي اياد وبارك الله بيك وكثر من امثالك

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

المفيدة والزاخرة في العلم.واراك جاهدا في الردود على الاعضاء

اتمنى في استمرارية الردود لننهل من علمكم الوافر والقيم

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

لفهم التعديل

ومشكور وماقصرت والله يكثر من امثالك الخيرة

وسلامك واصل لكل خير في هذا الدنيا والملائكة تسجل سلامك

في صحيفتك ان شاء الله وفي ميزان حسناتك

وبالله التوفيق

#4

السلام عليكم أخي الكريم

شكراً لكلماتك الجميلة

اليك أخي ماقمت به

Private Sub أمر6_Click()
Dim X
If IsNull(Text1) Or IsNull(Text2) Then
MsgBox "احد الحقول فارغة", vbOKOnly, "رجاءاً"
Exit Sub
Else
X = DLookup("[id]", "TeblUser", "[UserNam] =[Text1] And [Text2] = [Passwd]")
If IsNull(X) Then GoTo Msg
Select Case Me.Text1
Case Is = "a"
DoCmd.OpenForm "aa"

Case Is = "b"
DoCmd.OpenForm "bb"

Case Is = "c"
DoCmd.OpenForm "cc"

Case Is = "d"
DoCmd.OpenForm "dd"

Case Is = "e"
DoCmd.OpenForm "ee"

End Select
End If
If Not IsNull(X) Then
DoCmd.Close acForm, "login"
Else
msg:
MsgBox " اسم المستخدم او كلمه المرور خطاء راجع مسؤول البرنامج", vbOKOnly, "تاكيد صلاحيات الدخول"
DoCmd.CancelEvent
End If

أضفت سطرين في البداية والنهاية وهما

If IsNull(X) Then GoTo Msg
.....
.....
.....
Msg:

والمعنى هو كالتالي:

إذا كانت X فارغة أي أنها لم تحقق شرط تطابق كلمة السر لان x تعني أن يبجث في جدول TeblUser عن التطابق المطلوب وإن لم يجده فسيعطي القيمة null فارغ فعندئذ إذهب مباشرة الى الفقرة msg دون أن تمر الى باقي التعليمات

ثم وضعت في السطر الآخر بداية للفقرة msg حيث أن التعليمات التي تليها تفيد بأن شرط التطابق لم يتحقق وبالتالي سيظهر رسالة تنبيه بذلك وستنتهي العملية دون فتح أي نموذج

طبعا هناك حل أفضل قمت بإضافته الآن

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

Private Sub أمر6_Click()
Dim X
If IsNull(Text1) Or IsNull(Text2) Then
MsgBox "احد الحقول فارغة", vbOKOnly, "رجاءاً"
Exit Sub
Else
X = DLookup("[id]", "TeblUser", "[UserNam] =[Text1] And [Text2] = [Passwd]")
Debug.Print X

' إذا تحقق شرط التطابق
If Not IsNull(X) Then
DoCmd.Close acForm, "login"
Select Case Me.Text1
Case Is = "a"
DoCmd.OpenForm "aa"

Case Is = "b"
DoCmd.OpenForm "bb"

Case Is = "c"
DoCmd.OpenForm "cc"

Case Is = "d"
DoCmd.OpenForm "dd"

Case Is = "e"
DoCmd.OpenForm "ee"

End Select
' إذا لم يتحقق شرط التطابق
Else
MsgBox " اسم المستخدم او كلمه المرور خطاء راجع مسؤول البرنامج", vbOKOnly, "تاكيد صلاحيات الدخول"
DoCmd.CancelEvent
End If
End If
End Sub

ارجو أن أكون قد أوصلت الفكرة بشكل جيد

اليك التعديل الجديد

وسلامنا لكم وللجميع

za-Fiveusers2.rar

تم تعديل هذه المشاركة بواسطة إياد بيك في 21 فبراير 2012 في 02:24

1

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

#5

السلام عليكم

اخي بارك الله بك على الشرح

الحل الاول اذا لم تطابق اذهب الى رسالة التنبيه

والحل الثاني اذا تطابقت اغلق نموذج الدخول وقم بالاختيار الصحيح

واسند الى النموذج المطلوب

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

لاتشغل بالك كثيرا اذا الحل الاول يفى بالغرض

بقى شيء اريد اعرفه مامعنى

Debug.Print X بعد دالة دي لوك آب

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

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 21 فبراير 2012 في 15:07

#6
سلامنا لكم كتب:

السلام عليكم

اخي بارك الله بك على الشرح

والحل الثاني انك عكست الشرط

الحل الاول اذا لم تطابق اذهب الى رسالة التنبيه

والحل الثاني اذا تطابقت اغلق نموذج الدخول وقم بالاختيار الصحيح

واسند الى النموذج المطلوب

بقى شيء اريد اعرف مامعنى

Debug.Print X بعد دالة دي لوك آب

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

أهلين مرة تانية

الحل الثاني كان موجود أصلا في المرفق الأول الذي قمت أنت بارفاقه ولكن كان يجب تغيير الترتيب فقط

بالنسبة للتعليمة Debug.Print X هي في الحقيقة لا تؤثر أبداً على سير التعليمات البرمجية لامن قريب ولا من بعيد

والغرض منها عرض قيمة x في شاشة العرض الفوري immediate Window

حيث أنني احتجت أن أرى القيمة الحقيقة لهذا المتغير x

حاول أخي الكريم ادخال هذا المثال البسيط لتوضيح الفكرة

Sub Test()
Const TestVal = 4646
Debug.Print "Test Value:" & TestVal
End Sub

وانظر ماذا يحدث عند التنفيذ بالضغط على F5

وسلامي لك وللجميع

l

post-212280-087038900 1329826241_thumb.j

post-212280-057219300 1329826248_thumb.j

المرفقات
g1.JPGg2.JPG

تم تعديل هذه المشاركة بواسطة إياد بيك في 21 فبراير 2012 في 15:15

عَـجِبْتُ لِمَنْ يَتَفَكَّـرُ فى مَـأْكُولِهِ كَيْـفَ لا يَتَفَـكَّـرُ فى مَعْـقُـولِهِ، فَيُجَنِّبُ بَطْنَهُ ما يُؤْذيهِ، وَ يُودِعُ صَدْرَهُ ما يُرْدِيهِ

(الحسن بن علي بن أبي طالب)

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