السلام للجميع/
بالنسبة لعملية حذف وتعديل السجلات عن طريق الكود تتم من خلال ما يسمى Recordset ويمكن الحصول عليها من خلال الأمر التالي:
كود
Dim rs As Recordset
Set rs = CurrentDb().OpenRecordset("أسم الجدول أو الإستعلام")
ومن خلال rs يتم التحكم بجميع السجلات التابعه للجدول أو الإستعلام
وعادة ما تكون النتيجة هي عدة سجلات داخل rs فكيف يتم التنقل بينهم واللعب بحقول السجل، العملية بغاية البساطة، حيث يتم عمل أمر شبية بالــ Loop وهو الأمر الداخلي while و أختها wend، وسبب استخدامها هو لأجل إمكانية إضافة شرط بعد عبارة while في حال عدم استيفاءها يتم الخروج من الحلقة وهي كما يلي:
كود
While Not rs.EOF
يتم كتابة الأوامر للتحكم يالسجل هنا
Wend
لحظ الشرط أعلاه وهي rs.EOF وهي تعني هل وصلنا لأخر شجل أم لا، وتم وضع عبارة not قبلها كي يتم عكس نتيجة EOF وهي تساوي flase حتى بلوغ أخر سجل، وأمر while يعمل فقط في حال كانت نتيجة التقيم true فبمجرد وضع not تصح العبار" أستمر في التدوير إدا كان rs لم يصل لأخر سجل.
وتنقسم الأوامر في rs إلى ثلاث أنواع أساسية وهي الإضافة والحذف والتعديل
كود
rs.addNew
rs.edit
rs.delete
ويجب وضع الأمر rs.update بعد الإتهاء من التعديل أو الإضاف لتأكيدها
وفي حال الرغبة في تحديد سجل معين يتم تعديلة يكون ذلك من خلال rs.Fields(x) وقيمة x هي يا رقم الحقل حسب الترتيب أو اسم الحقل بين علامات تنصيص. وتم معادلة قيمته الحقل بإستخدام if ....then
كود
if rs.Fields(x).Value = y then
اعمل كذا وكذا
end if
ويمكن وضع عبارة rs.delete داخل الشرط فيتم حذف الملف
وهناك استخدام أخر rs.Fields(x).Value وهي تغير القيمة، فإذا ازلنا الــif... then من المثال السابق يتم تغير قمية الحقل (ملاحظة لازم تكتب rs.edit قبل تغير القمة و update بعدها)
كود
rs.Fields(x).Value = y
وهذ شرح مبسط وليس كامل، أمل أن يستفاد منه
وفي الاسفل مثال يقوم بتعديل القيم لبعض الحقول
كود
Public Sub update()
Dim rs As Recordset
Set rs = CurrentDb().OpenRecordset("اسم الجدول")
' الإستمرار في الدوران حتى أخر سجل
While Not rs.EOF
' قم تغير الرقم 2 إلى رقم الحقل بالترتيب حسب الجدول
If rs.Fields(2).Value = "x" Then
rs.Edit
rs.Fields(2).Value = "aaaaaaaaaaaaa"
rs.update
End If
' الذهاب للسجل التالي
rs.MoveNext
Wend
'إغلاق الإتصال
rs.Close
End Sub
وأتمنى للجميع التوفيق
أخوكم فراس ناصر