📝 تشغيل استعلام إلحاقي في Access مع إظهار عدد السجلات التي سيتم إلحاقها
مقدمة
استعلامات الإلحاق (Append Queries) في Microsoft Access تُستخدم لإضافة سجلات جديدة من جدول أو استعلام إلى جدول آخر.
لكن المشكلة التي تواجه الكثيرين هي:
كيف أعرف عدد السجلات التي سيتم إلحاقها قبل تنفيذ الاستعلام؟
في هذا الدرس نشرح الطريقة الصحيحة لمعرفة عدد السجلات التي سيتم إضافتها، مع إمكانية عرض العدد للمستخدم قبل تنفيذ عملية الإلحاق.
🎯 أولًا: فهم فكرة استعلام الإلحاق
استعلام الإلحاق يقوم بإضافة سجلات من مصدر (جدول أو استعلام) إلى جدول آخر باستخدام:
INSERT INTO TableName
SELECT ...
لكن Access لا يعرض عدد السجلات إلا بعد التنفيذ، وهذا قد يسبب أخطاء إذا كانت البيانات كثيرة أو غير مناسبة.
🔍 ثانيًا: معرفة عدد السجلات قبل الإلحاق
لحساب عدد السجلات التي سيتم إلحاقها، نستخدم نفس استعلام الإلحاق ولكن بدون عملية الإلحاق، فقط نعدّ السجلات.
✔ الطريقة الأولى: استخدام استعلام Count
إذا كان لديك استعلام إلحاق مثل:
sql
INSERT INTO Table2 (Field1, Field2)
SELECT Field1, Field2
FROM Table1
WHERE Status='New';
قم بإنشاء استعلام جديد:
sql
SELECT Count(*) AS TotalRecords
FROM Table1
WHERE Status='New';
هذا الاستعلام يعرض عدد السجلات التي سيتم إلحاقها.
🖥️ ثالثًا: عرض عدد السجلات للمستخدم قبل الإلحاق (باستخدام VBA)
يمكنك استخدام كود VBA لعرض رسالة للمستخدم توضح عدد السجلات قبل تنفيذ الإلحاق.
✔ مثال كود VBA كامل:
vba
Private Sub btnAppend_Click()
Dim rs As DAO.Recordset
Dim SQLCount As String
Dim SQLAppend As String
Dim Total As Long
' استعلام العد
SQLCount = "SELECT Count(*) AS TotalRecords FROM Table1 WHERE Status='New';"
Set rs = CurrentDb.OpenRecordset(SQLCount)
Total = rs!TotalRecords
rs.Close
' عرض العدد للمستخدم
If Total = 0 Then
MsgBox "لا توجد سجلات لإلحاقها.", vbInformation
Exit Sub
End If
If MsgBox("سيتم إلحاق " & Total & " سجل. هل تريد المتابعة؟", vbYesNo + vbQuestion) = vbNo Then
Exit Sub
End If
' استعلام الإلحاق
SQLAppend = "INSERT INTO Table2 (Field1, Field2) SELECT Field1, Field2 FROM Table1 WHERE Status='New';"
CurrentDb.Execute SQLAppend, dbFailOnError
MsgBox "تم إلحاق " & Total & " سجل بنجاح.", vbInformation
End Sub
ماذا يفعل هذا الكود؟
يحسب عدد السجلات التي سيتم إلحاقها
يعرض العدد للمستخدم
يطلب تأكيدًا قبل التنفيذ
ينفذ الإلحاق فقط إذا وافق المستخدم
يعرض رسالة نجاح بعد الإلحاق
🧩 رابعًا: تشغيل الاستعلام الإلحاقي بدون VBA (الطريقة اليدوية)
إذا كنت لا تريد استخدام VBA:
افتح استعلام الإلحاق في وضع التصميم
اضغط على:
View → Datasheet View
سيعرض Access السجلات التي سيتم إلحاقها
يمكنك معرفة العدد من شريط الحالة أسفل الشاشة
بعد التأكد، اضغط:
Run
⭐ نصائح مهمة
دائمًا اختبر استعلام الإلحاق باستخدام Select Query قبل التنفيذ.
استخدم نسخة احتياطية من الجدول الهدف قبل الإلحاق.
استخدم dbFailOnError لضمان عدم إلحاق سجلات تالفة.
اعرض عدد السجلات للمستخدم لتجنب الأخطاء.
خلاصة
معرفة عدد السجلات قبل تنفيذ استعلام الإلحاق في Access أمر مهم لتجنب الأخطاء وضمان دقة البيانات. باستخدام استعلام Count أو كود VBA، يمكنك عرض العدد للمستخدم قبل التنفيذ، مما يجعل العملية أكثر أمانًا واحترافية.
طلبات المتابعين
استعلام الحاقي مفلتر على شروط معينة اذا تحققت يكون السجل جاهز للألحاق
اظهار رسالة تفيد بأن لديك مثلا ( عدد السجلات ) سجلات للترحيل هل تود الاستمرار (نعم/لا)
اذا (نعم) يتم تشغيل الاستعلام الالحاقي
مع اظهار رسالة - تم ترحيل عدد ( عدد السجلات ) قيود
اذا (لا) يتم الغاء تشغيل الاستعلام الالحاقي
مع اظهار رسالة -تم الغاء عملية الترحيل
اذا لم يكن لدي سجلات جاهزة للترحيل اظهار رسالة تفيد بانه لا يوجد سجلات للترحيل
التسميات
برامج مكتبية