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

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

مغلق
بدأه SANDANET في 17 يونيو 2007 · 21 رد · 1,239 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أما بعد :

مطلوب كود يقوم بحذف جميع بيانات حقول محددة ، وهذه الحقول طبعا تكون محددة بالكود ، اي ان الكود يقوم بالابقاء على البيانات الاخرى في الحقول الاخرى في الجدول فقط يحذف بيانات حقول محددة له .

وشكرا

#2

السلام أخي/

كتب الكود حيث يزود بأسم الجدول وأسم الحقل أو رقم الحقل حسب الترتيب 1 أو 2 أو 3 ...... الخ

لا تتم العملية في حال إهمال أحدهما يجب أن تعبي واحد

أمل أن يفيدك

ملاحظة: لم أتحقق من عمل الكود في حال كان نوع الحقل رقم، وفي حال عدم عمالة يتم استبدال

 .Fields(ref).Value = Null

إلى

 .Fields(ref).Value = 0

الكود كما يلي:

Sub deleteSingleColumnData(tableName_ As String, Optional columnName_ As String, Optional columnIndex_ As Integer)
	On Error GoTo han
	Dim rs As Recordset
	Dim ref As Variant

	If Not IsMissing(columnName_) Then
		ref = columnName_
		GoTo doProcess
	End If
	If Not IsMissing(columnIndex_) Then
		ref = columnIndex_
		GoTo doProcess
	End If
	If IsMissing(columnName_) And IsMissing(columnIndex_) Then Err.Raise (0)
doProcess:
	Set rs = CurrentDb().OpenRecordset(tableName_)
	With rs

	 While Not .EOF
		 .Edit
			.Fields(ref).Value = Null
			Debug.Print "Deleting data from " & .Fields(ref).name & " setting value to empty"
			.Update
			.MoveNext
	  Wend
	End With
	MsgBox "Process is completed"
Exit Sub

han:
MsgBox "Error: can't do command"
End Sub

أخوك فراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 17 يونيو 2007 في 21:43

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#3

أخي الكريم فراس تحية طيبة وبعد :

مشكور جدا على الرد السريع على السؤال ... لكن لو تكرمت وشرحت لي كيف يتم استخدام هذا الكود واين اضع اسماء الحقول المراد حذف بياناتها واين اضع الكود في النموذج هل في زر أمر أم ماذا ؟

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

#4

عزيزي ساند نت/

يسعدني مساعدك بأي وقت،

كيفة استخدام الكود هي كما يلي:

1- قم بإنشاء حدث برمجي لأي زر ترغب أن ينفذ الأمر

2- وعندما تفتح شاشة VB قم بنسخ الكود السابق وضعه في أي مكان تحت أو أعلى Sub التابع للزر المراد برمجتة

3- وبعد ذلك قم بكتابة ما يلي داخل sub onClick:

مسح البيانات حسب اسم الجدول ورقم الحقل

deleteSingleColumnData "x",,1

حيث x اسم الجدول ويكون بين علامات التنصيص

و 1 هو رقم ترتيب الحقل ويتم تغيره حسب رقم الحقل المراد

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

[code]deleteSingleColumnData "x","y"

حيث x اسم الجدول ويكون بين علامات التنصيص

حيث y اسم الحقل ويكون بين علامات التنصيص

و لحظ ان خانة الرقم اهملت

لا أكثر ولا أقل من ذلك لإعداد الكود للتنفيذ

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

ولكم جزيل الشكر والتقدير أخي الكريم

أخوك فراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 17 يونيو 2007 في 21:37

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#5

بارك الله فيك أخي الكريم على هذا التوضيح وإن شاء الله سأقوم بتجربته الان

ولكي مني أحلى تحية

وشكرا

#6

أنا بأنتظار تجربتك والله يوفقك ويسدد خطاك

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

فراس ناصر

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#7

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

Private Sub Command26_Click()

On Error GoTo Err_Command26_Click

ثم وضعت كود أسم الجدول واسم الحقل بعد العبارة

Private Sub Command26_Click()

On Error GoTo Err_Command26_Click

deleteSingleColumnData "NEW_ORDER", , "ORDER_LIQ_NO"

وبعد ظهور الرسالة السابقة قمت بتغيير كلمة null ووضعت 0 لكن نفس المشكلة

عموما مشكور جدا جدا على جهدك معي وباركك الله

تم تعديل هذه المشاركة بواسطة SANDANET في 17 يونيو 2007 في 21:30

#8

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

:lol:

أسف كان خطأي فقد قلت عكست في مثالي السابق إليك التعديل التالي:

لتنفيذ الأمر باستخدام السم الجدول واسم الحقل

deleteSingleColumnData "x","y"

وفي حالتك فقط أحذف الفاصلة الزائدة بين الأسمين

لتنفيذ الأمر باستخدام السم الجدول ورقم الحقل

deleteSingleColumnData "x",,1

واكرر اعتذاري السرعة ما تجيب إلا الطعه وكنت مستعجل بالكتابة :P

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

وأنا ما زلت في أنتظار نجاح التجربة لديك مني فاصل النت إلى إذا أشتغل معك

أخوك فراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 17 يونيو 2007 في 21:36

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#9

وانا بالانتظار أخي الكريم

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

تم تعديل هذه المشاركة بواسطة SANDANET في 17 يونيو 2007 في 21:37

#10

عزيزي تم تعديل المثال أعلاه أرجو الإطلاع علية في أشتراك رقم 8

يمكن تجربة النوعين من الحقل وفي حال وجود مشاكل سأقوم بتعديل الكود لإستيعاب الحاتين

أخوك فراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 17 يونيو 2007 في 21:42

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#11

وااااااااااااااااااااااااااااااااااااااااااااااااااااااااووووووو واااااااااااااااااااااااااااااوووو نجت العملية

الف الف شكر لك فعلاً كانت الفاصلة هي المسببة للمشكلة

بارك الله فيك أخي فراس

لك مني احلى تحية ويارب اقدر أردلك الجميل

#12

اخي الفاضل

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

نشكر الأخ فراس على المساعدة

وقد يكون هذا الحل هو الأسهل والأنسب لك لأنك تستطيع ان تضع به ماتشاء من الحقول المطلوبه

طبعا انا اخترت حقلين فقط لمسح البيانات منها وهي حقل الإسم وهو نصي وحقل الرقم وهو رقمي

انظر الى الكود

Private Sub DEL_Click()
Dim c, i
c = DCount("[Name]", "Table")
DoCmd.GoToRecord , , acFirst
For i = 1 To c
Me!Name = ""
Me!Number = 0
DoCmd.GoToRecord , , acNext
Next i
MsgBox "تم مسح البيانات بنجاح", vbInformation + vbMsgBoxRight, "مسح البيانات"
Me.Requery
End Sub

بالنسبة للحقل النصي نجعله مساوي لـ لا شيئ يعني "" علامتي اقتباس

اما الحقل الرقمي فنجعله مساويا للصفر

انظر في الكود لحلق الإسم وحقل الرقم

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

وهذا مثال

ClearSomeOfFields.rar

#13

الف الف مبروك :lol:

يا شيخ لو ما اشتغل معك ما كنت نمت الليلة أثلجت صدري، والله يوفقك وسررت بماسعدتك والتعرف على أخوان شرواك

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

أخوك / فراس فهد نصر

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#14

شرفتيني بزيارتك أختي الكريمة زهرة

ولكي جزيل الشكر على مساعدتك هذه وسأقوم بإذن الله بتجربة الكود الذي وضعتيه

تم تعديل هذه المشاركة بواسطة SANDANET في 17 يونيو 2007 في 21:52

#15

هههههههههه أخي فراس هذا كله من فضل الله وفضل هذا المنتدى الراقي وفضلك ولا أنسى أختي زهرة وفقها الله ووفقك في الدنيا والآخرة

وانتظروني في المزيد من الأسئلة ;) بإذن الله

#16

السلام أختنا الفاضلة زهره المنتدى/

أشكرك لإهتمامك ومشاركتك لنا هذا النقاش، ,اتمنى لك التوفيق.

:) ما أروع الأكسس وتنوع الطرق في القيام بالحلول المختلفة، ولكن عندي تعليق بسيط وهو لزوم تعديل الكود الأساسي في حال تغير أسم الحقل كل مره خلافا لما كتب سابقا حيث التغير يتم على مستوى المتغيرات للــــ Sub. ولا غير ذلك فإن تقليل عدد السطور لكود هو الأفضل والأسهل والأحسن.

والف شكر على تنبيهي على مسألة النص والرقم.

ولكي فائق الإحترام والتقدير

أخوكم/ فراس

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#17

اختي زهرة : كيف يتم اضافة حقل آخر في الكود ؟ ماهو التعديل اللازم اجراءه

وشكرا

#18

مرحبا أخي الكريم/

يمكن تعديل ما يلي:

Me!Name = ""
Me!Number = 0

حيث تكون مكتوبة ME ثم علامة تعجب واسم الحقل المراد ثم علامة يساوي ثم القيمة المرادة وهي "" أو صفر

:lol:

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#19

ممممممممم سأجرب ذلك ... تعبتك معاي أخي فراس سامحني

#20

أخي ساند/

لعمل الكود بشكل صحيح يجب أن يتم ربط الــFrom مع الجدول أو الإستعلام لتتمكن من كتابة ME ومن ثم كتابة اسم الحقل وإلا لن يتعرف الفورم عل الحقل.

أمل من الأخت الفاضلة زهرة التعقيب على هذا.

شكرا

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#21

كلامك صحيح اخي فراس وهذه من الأساسيات التي يجب ان يعرفها الأخ SANDANET وإلا كيف سيتعلم كتابة الأكواد .

#22

بسم الله الرحمن الرحيم

بارك الله فيك اخي الكريم

وبارك فيك اختنا زهرة

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

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

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

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

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

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