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

كيف أضع رسائلي الخاصه بدل رسائل access

مغلق
بدأه ابوعبدالملك في 3 نوفمبر 2001 · 23 رد · 2,563 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندما أرتكب خطأ مثل

- تكرار المفتاح الأساسي

- نهاية السجلات وبدايتها

-عدم وجود بيانات في التقرير

-غير ذلك

تظهر رسالة أكسس التي تبين ذلك أو تبين بعض الأخطاء الممكنه والتي من ضمنها الخطأ المرتكب

السؤال : كيف أجعل جميع أو أغلب الرسائل خاصه بحيث الخطأ يستقبل من أكسس ولكن الرساله أكتبها أنا وأضع عنوانها أنا ؟؟

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

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#2

الأخ / أبو عبد الملك

إليك هذا الكود و هو لزر (( السجل التالي )) وبامكانك التعامل مع بقية الأخطاء على هذا الأساس

Private Sub أمر32_Click()

On Error GoTo Err_أمر32_Click

DoCmd.GoToRecord , , acNext

Exit_أمر32_Click:

Exit Sub

Err_أمر32_Click:

MsgBox " هذا آخر سجل في هذه القاعدة يا أفندي"

Resume Exit_أمر32_Click

End Sub

#3

شكرا أخي أبو بشاير

لكن كيف أعمل عند إدخال تكرار للمفتاح الأساسي

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#4

هذا الكود في حالة تكرار المفتاح الأساسي

Private Sub Serial_AfterUpdate()

Dim MyDB As Database, mytable As Recordset

Set MyDB = DBEngine.Workspaces(0).Databases(0)

Set mytable = MyDB.OpenRecordset("test", DB_OPEN_TABLE)

If IsNumeric(Me!Serial) Then

mytable.Index = "primarykey"

mytable.Seek "=", Serial

If mytable.NoMatch Then

Me!Serial = LCase(Me![serial])

Else

MsgBox "هذا السجل موجود مسبقا ، يجب ادراج رقم جديد"

Me.Serial.SetFocus

End If

End If

End Sub

ملاحظة : الجدول في هذا الكود اسمه test الحقل في النموذج والجدول اسمهما Serial لذا يجب تغييرهما بما يتناسب لديك

#5

عدم وجود بيانات في التقرير :

Msgbox "لايوجد بيانات"

Cancel=-1

غير ذلك :

الطريقة الأساسية لاعتراض الخطأ هي التي ذكرها الأخ أبو بشاير ، وهناك طريقة تجعل الأكسس يتجاوز السطر الذي حدث فيه الخطأ الى السطر الذي بعده :

On Error Resume Next

ولكن لن تظهر لك أي رسالة .

ولمعرفة رقم الخطأ :

Err.Number

ونستفيد من أنه إذا كان الخطأ رقم كذا فالسبب كذا وأعمل كذا وإذا كان الخطأ رقمه رقم آخر فالسبب أيضا آخر وأعمل كذا أو أظهر رسالة كذا ، وبإمكانك معرفة رقم الخطأ أثناء البرمجة :

Msgbox Err.Number

ولمعرفة وصف الخطأ الرسالة التي تظهر من الأكسس :

Err.Description

ولك تحياتي

#6

الأخ أبو عبد الملك :

إليك كود عدم تكرار الرقم أو الاسم حسب ما تريد كل ما عليك هو وضع هذا المكود فى حدث قبل التحديث للحقل الذي تريد عدم التكرار فيه

If (Eval("DLookUp(""[رقم العميل]"",""[T_CUS]"",""[رقم العميل] =form![رقم العميل]"") Is Not Null")) Then

Beep

MsgBox "تم تسجيل رقم العميل هذا من قبــــل .... !!!!", vbExclamation, "رقم عميل مكرر "

DoCmd.CancelEvent

End If

SendKeys "{f2}", False

مع ملاحظة تغيير ما يلي :

t_cus هو الجدول الذي يحتوى على البيانات

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

وجرب والله الموفق

أشرف خليل

#7

الاخ أبو عبد الملك

إليك قاعده صغيرة للمطلوب بإذن الله .

أشرف خليل

#8

الإخوه ألأفاضل المهتمين بهذا الموضوع . السلام عليكم . إذا كانت رسالة أكسس مثل الرسالة المرفقه فكيف يمكن تعديلها بإستخدام الكود.

جزيل الشكر لمن يتفضل بالإفاده .

محمود إبراهيم

#9

الأخ محمود

"إذا كانت رسالة أكسس مثل الرسالة المرفقه فكيف يمكن تعديلها بإستخدام الكود. " ماهي الرسالة المرفقة التي تسأل عنها ؟

ولك تحياتي

#10

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

أشرف خليل

http://mypage.ayna.com/ashrafk/db1.zip

#11

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

الأخ أشرف لم أستفد من مثالك لأن نسخة أكسس التي لدي 97

فأرجوك ضع نسخة 97 في المنتدى أو هذا بريدي

alh_a_m@yahoo.com

وأفضل وضعها في المنتدى ليسفيد منها جميع الأخوه إذا تكرمت.

وأكرر شكري للجميع

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#12

الأخ أبو عبد الملك .

جرب هذا الرابط والقاعدة متاحة للجميع من خلال هذا الرابط أو الرابط السابق

http://mypage.ayna.com/ashrafk/db97.mdb

أشرف خليل

#13

حاولت إضافة صورة الرسالة هنا ولكن للأسف لم تفلح جميع المحاولات لإدراج صوره . علي كل حال الرسالة هي :

Microsoft Access

The text you entered isn't an item in the list .

Select an item from the list, or enter text that matches one of the listed items.

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

محمود إبراهيم

#14

الأخ محمود

الظاهر أن النسخة التي لديك من الأكسس إنجليزية وإلا النسخة العربية تظهر رسالة كافية جداً ، عموما في حدث عند عدم الوجود في القائمة ضع :

Response = acDataErrContinue

MsgBox "هذا البند ليس من القائمة " & vbCrLf _

& "أعد الاختيار من القائمة"

طبعا خاصية التزام بالقائمة إلى نعم .

الأخ أشرف

ماشاء الله عليك ، مشاركاتك في زيادة ، كل موضوع ألقى اسمك فيه الله يبارك لك .

زادك الله علما وسددك ووفقك .

ولك تحياتي

#15

أخي أبو حمود :

شكر لكلماتك العذبة ، ولو أنك أنت السباق والحمد لله قاربت الميزانية على الإنتهاء .

أشرف خليل

#16

الأخ أشرف

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

أشكرك على نتائج المثال لكني في الحقيقه أول مره أرى الدوال أو الأوامر التي إستخدمتها فياليت لو كلفت عليك تشرح المثال ولو شرح موجز وإن إستطعت التفصيل فمفصلاً

ولك شكري وتقديري

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#17

أخي أبو حمود . أخي أشرف ..

وجدت في مساعدة أكسس بخصوص ال Combo Box أنه حتي إذا ما كتبت رساله في (On Not In List ( Event Procedure فإن أكسس لن تسكت وسوف تكتب هي أيضا رسالتها التي أشرت إليها في ردي السابق . هي مصممه علي ذلك عمدا و مع سبق الإصرار . جربت ذلك ووجدتها فعلا بعد النقر علي زر OK في رسالتي تقوم هي بفتح رسالتها . جربوا . أليس ذلك من برود دم أكسس . و لكم جزيل الشكر علي المتابعه .

محمود إبراهيم

ملحوظه : كيف أدرج صوره هنا مثل صورة رسالة أكسس مثلا ؟

#18

الأخ محمود

هل جربت ما وضعته لك ؟

السطر :Response = acDataErrContinue هو المسؤل عن عدم ظهور رسالة الأكسس .

ولك تحياتي

#19

الأخ عبد الملك والأخ محمود

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

أما عن شرح الكود فهو كالتالى :

If (Eval("DLookUp(""[رقم العميل]"",""[T_CUS]"",""[رقم العميل] =form![رقم العميل]"") Is Not Null")) Then

Beep

MsgBox "تم تسجيل رقم العميل هذا من قبــــل .... !!!!", vbExclamation, "رقم عميل مكرر "

DoCmd.CancelEvent

End If

SendKeys "{f2}", False

دالة DlookUpتقوم بفحص الحقل ( رقم العميل )الموجود فى الجدول T_cusوالذي يساوي فى نفس الوقت حقل رقم العميل بالنموذج بشرط أن لا يكون الحقل فارغ ( is not null ) طبعا هذا كله بعد كلمة if وهي جملة شرطية كما نعرف يعني احتمال الجواب صح أو خطأ فإذا كان الجواب صح أعطى صوت (Beep) واظهر الرسالة تم تسجيل العميل من قبل .

أما السطر docmd.cancelEvent فمعناه بعد ظهور الرسالة الغى الحدث السابق ولوضع علامة الإدخال فى الحقل نفسه كتبت السطر

SendKeys "{f2}", False

حتى لا يتعدى حقل الإدخال حقل آخر .

********************

أنفع أكون مدرس ولا لسه شوية

أشرف خليل

جاءتني فكرة إضافية وهي كيف نجعل مع رسالة التكرار اسم العميل الذي تم تكراره

#20

ترتيب الكود فقط

If (Eval("DLookUp(""[رقم العميل]"",""[T_CUS]"",""[رقم العميل] =form![رقم العميل]"") Is Not Null")) Then 
Beep 
MsgBox "تم تسجيل رقم العميل هذا من قبــــل .... !!!!", vbExclamation, "رقم عميل مكرر " 
DoCmd.CancelEvent 
End If 
SendKeys "{f2}", False

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#21

ترتيب الكود صح ؟ لكن كيف فصلت الكود عن الكتابة

أشرف

#22

هذه الميزه في المنتدى

طالع [code2*]

إنتبه : هذه العلامه * لكي لا يفعل الكود

http://arabteam.nicmatic.com/vb/showthread...p?threadid=5258

حركات حلوه :D

طبعاً

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

#23

الأخ أبو حمود .. ذادك الله علما و نفع بك .

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

محمود إبراهيم

#24

أشكر جميع من ساهم برد على هذا الإستفسار

ونظراً لضيق وقتي فقد إحتفضت بنسخه من السئوال وسأطبق جميع المحاولات

وأكرر شكري وتقديري لجميع

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

------------------وما توفيقي إلا بالله--------------------

إذا كنت بالله مستعصما---------فماذا يضيرك كيد العبيد

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

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