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

خطاء في كود الحذف+طلب وضع باسورد على الزر

بدأه killr في 5 سبتمبر 2008 · 10 رد · 1,228 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي زر لحذف البيانات يحذف لكن عندما اضغط على الزر لا يخرج خطاء

وضعت

Private Sub delelte1_Click()
If IsNull(frmname) Then
   If MsgBox("لاتوجد اي بيانات", vbCritical + vbOKOnly, "") = vbOK Then
   End If
   fnam.SetFocus
   Exit Sub
End If
If DLookup("name123", "tabel1", "name123 ='" & frmname & "'") = frmname Then
   DoCmd.RunSQL ("Delete From tabel1 Where name123 = '" & [frmname] & "';")
   Call Cls_Click
Else
   MsgBox "هذا السجل غير موجود"
End If
End Sub

هل هذا الكود مناسب لحذف السجل

مطلوب تعديل الكود بحيث اني اقدر احذف من جدولين .

مثلا انا عندي الجدول الاول table1 والجدول الثاني اسمه table2

وكيف وضع باسورد علي زر الحذف بحيث اذا كتب الباسورد يحذف

#2

اخي الفاضل

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

وهذا افضل من ان تضع كود لا نعلم كيف قمت بتركيبه بهذه الطريقه .

#3

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

واسف على الازعاج

upt1.rar

#4

اخي الفاضل

هل من الممكن التوضيح لأن مثالك هذا غير مفهوم وغير مرتب

الآن لديك جدولين هما tab و tab2

الجدول tab يوجد به حقلين هما

noitm - الرقم

nam - الاسم

والجدول tab2 d يوجد به الحقول التالية

noitm - الرقم

nOrder - ترقيم تلقائي

nauser - اسم المستخدم

nte - مذكره

هل المطلوب هو تحديث اسم المستخدم الموجود في الجدول الثاني بما هو موجود في الجدول الأول بناء على الإختيار من النموذج

اذا كان كذلك فهذا هو الكود اللازم لعمل ذلك فقط

Private Sub up1_Click()
If IsNull(fnumber) Then
   If MsgBox("يجب عليك اختيار رقم", vbCritical + vbOKOnly, "تنبيه") = vbOK Then
   End If
   fnumber.SetFocus
   Exit Sub
End If
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tab RIGHT JOIN tab2 ON tab.noitm = tab2.noitm SET tab2.nauser = tab!nam WHERE (((tab.noitm)=[forms]![test]![fnumber]))"

Call Cls_Click
DoCmd.SetWarnings True

End Sub

الأمر الآخر ماذا تريد من كود الألحاق هذا

DoCmd.RunSQL ("Insert Into tab (noitm,nameq,) Values ( fnumber,fnume, fnameusr , fnota_e);")

لا أرى له اي فائده حيث انه غير صحيح لعدم تساوي الحقول اثناء الإلحاق

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

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

Private Sub أمر37_Click()
If IsNull(fnume) Then
   If MsgBox("يجب اختيار اسم", vbCritical + vbOKOnly, "") = vbOK Then
   End If
   fnume.SetFocus
   Exit Sub
End If

DoCmd.SetWarnings False
	Dim strPasswd
	strPasswd = InputBox("الرجاء ادخال الرقم السري الصحيح", "حذف سجل")
	If strPasswd = "" Or strPasswd = Empty Then
		MsgBox "لم يتم ادخال الرقم السري", vbInformation, "Required Data"
		Exit Sub
	End If
	If strPasswd = "killr" Then
	 DoCmd.RunSQL "DELETE tab.noitm, tab.nam FROM tab WHERE (((tab.nam)=[forms]![test]![fnume]))"
	Else
		MsgBox "معذرة اخي الكريم .. الرقم السري خطأ", vbOKOnly, "تنبيه"
		Exit Sub
	End If
DoCmd.SetWarnings True
Call Cls_Click
End Sub

الرقم السري لحذف السجل هو killr

upt1_UP.rar

#5

الهدف اني لدي في النموذج حقول من الجدول الاول وحقول من الجدول الثاني وهي كثيره

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

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

بالنسبه لهذا الكود

DoCmd.RunSQL ("Insert Into tab (noitm,nameq,) Values ( fnumber,fnume, fnameusr , fnota_e);")

كان المقصود اني اخلي هذا الزر لتعديل والتخزين في نفس الوقت

سوف اجرب الكود واخبرك

لاتبخلي علي برئيك من حيث الكود هل صحيح طريقتي ام لا

لاني اريد ان ابني البرنامج بالاكواد من حيث اضافه البيانات والتخزين والحذف

وليس باستخدام المعالج ليسهل علي التعديل مستقبلا

#6

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

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

ام الثاني لم يفلح معي

مالحل

اريد ان ارسلك البرنامج على الخاص لكن لم استطع صندوق الرسائل ممتلئ لديك

اذا كان هناك مانع من ارسال البرنامج في الخاص سوف اغض النظر

وشكرا

تم تعديل هذه المشاركة بواسطة killr في 5 سبتمبر 2008 في 23:00

#7

الله يسامحك يا أخي

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

لاحظ معي البيانات في الجدول الأول tab

سوف نقوم بتحديث السجل الثاني لحقل الإسم nam وهو " الفريق العربي " الى الجدول الثاني tab2 للحقل nauser وهو moh2

post-15367-1220667555_thumb.gif

post-15367-1220667574_thumb.gif

من خلال النموذج بعد اختيار الرقم 2 او الإسم " الفريق العربي "

post-15367-1220667781_thumb.gif

بعد ضغط زر التعديل يتم تحديث الحقل من moh2 الى الفريق العربي وتأكد ايضا من الجدول الثاني tab2 انه تم التحديث

post-15367-1220668029_thumb.gif

نأتي لزر الحذف ونريد ان نحذف السجل رقم 1 من خلال النموذج وسيظهر لنا المطالبة بإدخال الرقم السري وهو killr وسيتم حذف السجل ولنتأكد من الجدول الأول هل تم الحذف أم لا

post-15367-1220668295_thumb.gif

post-15367-1220668451_thumb.gif

#8

الكود الصراحه عقدني

احين نفرض ان بيانات الرقم موجوده وهي 123

وبيانات الاسم موجوده وهي killr

وبيانات ال name out هي كامري

لمن اختار الرقم 123 سوف يعرض هذه البيانات الي حطيتها

انا بجي اعدل خانه name out الي هي موجوده باسم كامري

بعدلها الى نيسان وبضغط على تعديل بعد ماضغطه

الي صار ان خانه name out صارت نفس خانه الاسم

يعني طلعلي في كلا الخانتين killr killr

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

اما بالنسبه لزر الحذف شغال ميه ميه ماعليه كلام لكن لدي ملاحظه انه يكشف الباسورد عند كتابته الا يمكن تغيرها عند الكتابه الى *****

----------

الخلاصه انا اريد كود للحفظ وتعديل لما اريد تعديل بعض الحقول لجميع الحقول في كلا الجدولين

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

ارجو اني وضحت المطلوب

تم تعديل هذه المشاركة بواسطة killr في 6 سبتمبر 2008 في 14:01

#9
killr كتب:
احين نفرض ان بيانات الرقم موجوده وهي 123

وبيانات الاسم موجوده وهي killr

لمن اختار الرقم 123 سوف يعرض هذه البيانات الي حطيتها

انا بجي اعدل خانه name out الي هي موجوده باسم كامري

بعدلها الى نيسان وبضغط على تعديل بعد ماضغطه

الي صار ان خانه name out صارت نفس خانه الاسم

يعني طلعلي في كلا الخانتين killr killr

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

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

الجدول الأول : tab يوجد به حقلين فقط وهما

حقل الرقم : وبه 123

حقل الإسم : وبه killr

الى هنا تمام ولا يوجد اي مشكله

الجدول الثاني tab2 ويوجد به الحقول التالية

حقل الرقم : وبه 123

حقل الإسم : كامري

في النموذج

انت وضعت حقل الإسم من الجدول الثاني بإسم name out وطبعا سيكون به كلمة ( كامري ) كما هي في الجدول tab2

الى هنا تمام ولا يوجد مشكلة

الآن لو قمنا بضغط الزر تعديل سيقوم الكود بتعديل كلمة ( كامري ) الى كلمة killr وهذا هو الصحيح

اما انت فإنه يوجد لديك مشكلة كبيرة

وهي انك تقوم بتغيير كلمة ( كامري ) الى ( نيسان ) يدويا في النموذج وهذا خطأ

المفروض ان استعلام التحديث بدون تدخل منك انه يقوم بتحديث حقل الإسم في الجدول الثاني tab2 من كلمة ( كامري ) الى كلمة ( killr ) حسب ما هو موجود في حقل الإسم في الجدول الأول tab

وسوف يصبح لديك كلمة killr مكرره الأولى خاصة بالجدول الأول وهي الأساس والثانية خاصة بالجدول الثاني وهي المعدلة عن كلمة ( كامري )

killr كتب:
الخلاصه انا اريد كود للحفظ وتعديل لما اريد تعديل بعض الحقول لجميع الحقول في كلا الجدولين

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

لا يوجد لديك في الجدولين حقول متطابقه سوى حقل واحد هو الإسم فقط هو الذي تستطيع التحديث او الإلحاق له اما بقية الحقول فلا تستطيع لعدم وجود حقول لها في الجدول الأول .

بالنسبة لجعل كلمة السر killr تظهر على شكل نجوم فهذا الملف بعد التعديل

upt1_UP2.rar

#10

اختي الكريمه

القيمه المتشابه بين الجدولين هي الرقم فقط ام الاسم في tab فهو اسم القطعه

اما tab2 الي هو name out ليس المقصود الاسم الي في الجدول الاول بل حقل اخر مختلف تماما

انا مخصصه لكتابه اسم العميل

#11

اخي الفاضل

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

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

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

حقل الرقم ( هذا الحقل لا يكون ترقيم تلقائي او مفهرس لأنه لا يمكن تحديثه وسيمنعك محرك قاعدة البيانات MS JET4.0 من هذا ) بل يكون حقل رقم عادي ( نوعه رقمي )

حقل الإسم ( نوعه نصي )

الجدول الثاني سيكون به الحقول التاليه

حقل التاريخ ( نوعه تاريخ / وقت )

الرقم ( نوعه رقمي )

حقل ملاحظات ( نوعه مذكره )

نلاحظ اننا نستطيع التحديث او الإلحاق بين الجدولين فقط بين حقل ( الرقم ) لأنه هو المتشابه بينهما اما بقية الحقول غير متشابهه او غير متطابقه .

اتمنى ان تكون الفكره وصلت

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