عند استخدام قاعدة بيانات Microsoft Access على شبكة محلية (LAN)، قد يحتاج المستخدمون إلى التواصل فيما بينهم دون مغادرة البرنامج. بدلًا من استخدام برامج خارجية، يمكن إنشاء نظام دردشة داخلي يسمح بإرسال واستقبال الرسائل بين المستخدمين مباشرة من داخل قاعدة البيانات. هذه الطريقة مفيدة في الأنظمة الإدارية، المحاسبية، وأنظمة نقاط البيع.
🎯 فكرة نظام الدردشة في Access
يعتمد نظام الدردشة على:
- جدول لتخزين الرسائل.
- نموذج لإرسال الرسائل.
- نموذج آخر لعرض الرسائل الواردة.
- كود VBA لتحديث الرسائل تلقائيًا.
بهذه الطريقة يمكن لأي مستخدم إرسال رسالة إلى مستخدم آخر يعمل على نفس قاعدة البيانات.
🗂️ أولًا: إنشاء جدول الرسائل
قم بإنشاء جدول جديد باسم:
Messages
ويحتوي على الحقول التالية:
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
هذا الجدول هو الأساس الذي تُخزن فيه الرسائل.
📨 ثانيًا: إنشاء نموذج إرسال الرسائل
أنشئ نموذجًا باسم:
frm_SendMessage
ويحتوي على:
- مربع نص لاسم المرسل
- مربع نص لاسم المستلم
- مربع نص لكتابة الرسالة
- زر إرسال
كود زر الإرسال:
Private Sub btnSend_Click()
CurrentDb.Execute "INSERT INTO Messages (FromUser, ToUser, MessageText, MsgDate, IsRead) " & _
"VALUES ('" & Me.txtFrom & "', '" & Me.txtTo & "', '" & Me.txtMessage & "', Now(), False)"
MsgBox "تم إرسال الرسالة بنجاح", vbInformation
Me.txtMessage = ""
End Sub
📥 ثالثًا: إنشاء نموذج استقبال الرسائل
أنشئ نموذجًا باسم:
frm_Inbox
واجعله يعتمد على استعلام يعرض الرسائل الموجهة للمستخدم الحالي فقط.
مثال على الاستعلام:
SELECT * FROM Messages
WHERE ToUser = [اسم المستخدم الحالي]
ORDER BY MsgDate DESC;
يمكنك إضافة زر لتحديث الرسائل.
🔄 رابعًا: تحديث الرسائل تلقائيًا
لجعل الرسائل تظهر فور وصولها، نستخدم مؤقت النموذج (Timer).
الخطوات:
- افتح نموذج Inbox في وضع التصميم.
- اجعل الخاصية:
Timer Interval = 5000
(أي تحديث كل 5 ثوانٍ)
- أضف الكود التالي:
Private Sub Form_Timer()
Me.Requery
End Sub
بهذا يتم تحديث الرسائل تلقائيًا دون تدخل المستخدم.
🔔 خامسًا: تنبيه المستخدم عند وصول رسالة جديدة
يمكن إضافة كود بسيط لإظهار رسالة تنبيه:
Private Sub Form_Timer()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Messages WHERE ToUser='" & Me.txtUser & "' AND IsRead=False")
بعد قراءة الرسالة، يمكن تحديث الحقل IsRead إلى True.
If Not rs.EOF Then
MsgBox "لديك رسالة جديدة من: " & rs!FromUser, vbInformation
End If
Me.Requery
End Sub
⭐ مميزات نظام الدردشة داخل Access
- لا يحتاج برامج خارجية.
- يعمل على الشبكة المحلية بسهولة.
- مناسب للأنظمة الإدارية والمحاسبية.
- يمكن تخصيصه حسب عدد المستخدمين.
- يدعم الإشعارات والتنبيهات.
خلاصة
إنشاء نظام دردشة داخل Access فكرة عملية جدًا لتسهيل التواصل بين المستخدمين داخل نفس النظام. باستخدام جدول الرسائل، النماذج، وبعض أكواد VBA، يمكنك بناء نظام مراسلة كامل يعمل تلقائيًا ويعرض الرسائل فور وصولها. هذه الطريقة تجعل قاعدة البيانات أكثر تفاعلًا واحترافية.
الملفات المرفقة تجدونها هنا
الشكل الجديد بعد التطوير أرسال الرسالة
الشكل الجديد بعد التطوير أرسال الرسالة
مراجعة جميع الرسائل التي تم ارسالة أو استلامها من المستخدم
التسميات
برامج مكتبية





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