![]() |
|
مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94) +--- قسم : مايكرسوفت أكسيس Microsoft Access (http://vb4arb.com/vb/forumdisplay.php?fid=170) +--- الموضوع : مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع (/showthread.php?tid=45802) الصفحات:
1
2
|
مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - أحمد عامر - 28-03-23 عندي قاعدة بيانات تحت الإنشاء (غير مكتملة) وأريد كود VBA ليوثق ويحول العملية التالية الشركة تحتوي على 8 أقسام وكل قسم به أدمن واحد وعدة مستخدمين والمطلوب: 0. بعد دخول المستخدم يكون معروف لدى البرنامج أنه يتبع أي قسم 1. المستخدم ينشأ طلبية والأدمن من حقه الموافقة أو الرفض عليها مع إبداء الأسباب 2. الأدمن بعد الموافقة عليها يمررها أو يحولها لأي أدمن من الأقسام الأخرى للتعميد عليها 3. بعد التعميد الأخير تذهب لقسم المالية لتحويل قيمة الطلبية وإشعار المستخدم المنشئ الأول للطلبية بأنه تم التحويل ويرفق له ملف التحويل البنكي 4. ملف التحويل البنكي يكون متاح فقط لقسم المالية 5. تتم هذه العمليات بين الأقسام بحيث أي تعديل في المنتصف يكون متبوع باسم المستخدم (موثقة باسم المستخدم سواء مستخدم عادي أو أدمن) ولا أنسى الشكر والعرفان لأحد الأصدقاء على أحد المنتديات العربية بمساعدتي ولكن بحكم انشغاله لم تكتمل الفكرة أريد المساعدة من فضلكم ولكم جزيل الشكر والعرفان الطلبية في الفورم اللي اسمه Outgoing RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - sanyor77 - 28-03-23 من الواضح أنك ترغب في إنشاء قاعدة بيانات لإدارة عمليات الشركة. يمكنك استخدام VBA (Visual Basic for Applications) لتحقيق ذلك. سأقدم لك بعض الأفكار والشفرات البرمجية الأساسية لبناء هذا النظام. أولاً، للتعامل مع الأقسام والمستخدمين والأدمن، يمكنك إنشاء جداول في قاعدة البيانات لحفظ هذه المعلومات. على سبيل المثال، يمكنك إنشاء جداول بالأسماء التالية: Departments, Users و Admins. بالنسبة للطلبيات، يمكنك إنشاء جدول بالاسم Orders يحتوي على الحقول اللازمة مثل ID الطلب، المستخدم المنشئ، القسم، الحالة (مثلاً مقدمة، معتمدة، مرفوضة)، الأدمن الموافق أو المرفض، الأسباب وغيرها من الحقول الضرورية. يمكنك بناء نموذج (Form) بالاسم Outgoing لإدخال وعرض تفاصيل الطلبيات. يمكن استخدام الأكواد البرمجية التالية كأساس لما تريد تحقيقه:
PHP كود : Function GetUserDepartment(ByVal userID As String) As String
PHP كود : Sub ApproveOrder(ByVal orderID As String, ByVal adminID As String)
PHP كود : Sub RejectOrder(ByVal orderID As String, ByVal adminID As String, ByVal rejectionReason As String)
PHP كود : Sub TransferOrderToFinance(ByVal orderID As String)
PHP كود : Sub ConfirmBankTransfer(ByVal orderID As String, ByVal bankTransferFile As String)يرجى ملاحظة أن هذه الشفرات البرمجية توفر فكرة عامة عن كيفية تنظيم الوظائف لمعالجة الطلبيات ولا تعتبر حلاً كاملاً جاهزاً للاستخدام. قد يكون من الضروري تعديل هذه الشفرات وفقًا لتفاصيل قاعدة البيانات الخاصة بك والتفاصيل الأخرى المحددة لمتطلبات العمل الخاصة بك. بعد تطبيق هذه الوظائف، يمكنك استخدام الأزرار وعناصر التحكم الأخرى على النموذج (Form) لتنفيذها بناءً على إجراءات المستخدمين والأدمن. يمكنك أيضًا إضافة ميزات مثل تسجيل الدخول والتحقق من صلاحيات المستخدمين والأدمن لتأكيد أنهم يمكنهم الوصول فقط إلى الوظائف المناسبة لأدوارهم. أيضاً، قد يكون من الجيد إضافة تسجيل التغييرات (Logging) لتتبع التعديلات على الطلبيات وتوثيقها. يمكنك إنشاء جدول جديد في قاعدة البيانات يسمى OrderHistory يحتوي على حقول مثل: ID الطلب، المستخدم، التاريخ والوقت، الإجراء (مثلاً إنشاء، تعديل، موافقة، رفض، تحويل) وتفاصيل الإجراء. يمكنك إضافة دالة لتسجيل التغييرات مثل: PHP كود : Sub LogOrderChange(ByVal orderID As String, ByVal userID As String, ByVal action As String, ByVal actionDetails As String)ثم يمكن استدعاء هذه الدالة في جميع الوظائف الأخرى (مثل CreateOrder، ApproveOrder، RejectOrder، TransferOrderToFinance، ConfirmBankTransfer) لتوثيق جميع التغييرات التي تحدث على الطلبيات. يُفضل أن تستخدم مكتبة مثل ADO أو DAO للاتصال بقاعدة البيانات وتنفيذ الاستعلامات. تأكد من إجراء الاختبارات المناسبة وتنظيم الشفرة البرمجية بشكل جيد لضمان الحصول على نظام قوي وموثوق. تخصيص هذه الأفكار والشفرات البرمجية الأساسية لتلبية احتياجات عملك الخاصة. لضمان أداء النظام الجيد والأمان، يمكنك اتباع بعض النصائح العامة:
RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - أحمد عامر - 28-03-23 المشكلة لقلة خبرتي بكود VBA لا أستطيع عمله .. نرجو المساعدة RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - sanyor77 - 28-03-23 لا توجد مشكلة! سأقدم لك مزيد من المساعدة في كتابة الأكواد البرمجية بلغة VBA للوظائف المطلوبة. أولاً، دعونا نراجع ما تحتاجه:
يرجى مراعاة أن هذا الكود لا يحتوي على أي تنفيذات داخل الوظائف والإجراءات. لإكمال الكود، ستحتاج إلى إضافة التفاصيل الخاصة بك، مثل الاتصال بقاعدة البيانات وإجراء الاستعلامات المناسبة لتحقيق الوظائف المطلوبة. حسنًا، سأوضح كيفية إضافة تنفيذات داخل الوظائف والإجراءات. سأستخدم ADO (ActiveX Data Objects) كطريقة للاتصال بقاعدة البيانات. أولاً، تأكد من إضافة مرجع إلى "Microsoft ActiveX Data Objects" من خلال "Tools" > "References" في محرر VBA. ثم قم بإضافة الكود التالي لتعريف الوظيفة GetUserDepartment: PHP كود : Function GetUserDepartment(ByVal userID As String) As Stringتأكد من استبدال "Your_Connection_String" بسلسلة الاتصال الخاصة بقاعدة البيانات الخاصة بك. هذا فقط مثال على كيفية تنفيذ الاتصال بقاعدة البيانات وإجراء استعلام داخل وظيفة. ستحتاج إلى تطبيق نفس النهج على الوظائف والإجراءات الأخرى حسب الاحتياجات الخاصة بك. تأكد من تعديل الاستعلامات وأسماء الجداول والحقول وفقًا لتصميم قاعدة البيانات الخاصة بك. يمكنك البدء بتعديل الوظائف والإجراءات الأخرى بناءً على المثال الذي قدمته، وفقًا لمتطلبات النظام الخاص بك. إذا كنت بحاجة إلى مزيد من المساعدة، فلا تتردد في طرح المزيد من الأسئلة. RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - أحمد عامر - 28-03-23 وما هي "Your_Connection_String" سلسلة الاتصال الخاصة بقاعدة البيانات. RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - أحمد عامر - 29-03-23 أول جزء وهو ال module تم عدا الجزئية الخاصة بالConnection RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - sanyor77 - 29-03-23 (28-03-23, 09:28 PM)أحمد عامر كتب : وما هي "Your_Connection_String" سلسلة الاتصال الخاصة بقاعدة البيانات. "Your_Connection_String" هو سلسلة الاتصال الخاصة بقاعدة البيانات التي تحتوي على معلومات تتعلق بالإتصال بقاعدة البيانات، مثل اسم السيرفر، اسم القاعدة، اسم المستخدم وكلمة المرور. دالة GetUserDepartment تستلم كلمة المرور userID كمدخل وتعود بقسم المستخدم المرتبط بهذا المعرف. كل شيء على الأخص، الدالة تفتح اتصال بقاعدة البيانات عن طريق استخدام سلسلة الاتصال المحددة وتنفذ استعلام SQL للحصول على بيانات المستخدم وذلك عن طريق استخدام عنصر ADODB.Recordset. عندما يتم العثور على بيانات، يتم تعيين قيمة القسم للمستخدم الذي يتم البحث عنه إلى المتغير الذي يعود به الدالة. RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - أحمد عامر - 29-03-23 يعني سلسلة الاتصال في قاعدة بياناتي هي Userid صحيح كده RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - Taha Okla - 29-03-23 (29-03-23, 05:39 PM)أحمد عامر كتب : يعني سلسلة الاتصال في قاعدة بياناتي هي أمثلة عن سلسلة الاتصال : 1 - قاعدة بيانات آكسس الاصدار 12.0 بدون كلمة المرور (باسوورد) : كود : Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Persist Security Info=False;2 - قاعدة بيانات آكسس الاصدار 12.0 مع كلمة المرور (باسوورد(MyDbPassword أكتب كلمة المرور مكانها إن كانت موجودة)) : كود : Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Jet OLEDB:Database Password=MyDbPassword;3 - إذا كانت من إصدار قديم مثلاً 2003 وما قبل : كود : Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;4 - قاعدة البيانات في مسار المشروع نفسه (لانكتب مسارها بل نكتبها هكذا) : كود : Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\myAccessFile.mdb;Persist Security Info=False;أو هكذا : كود : Provider=Microsoft.ACE.OLEDB.12.0;Data Source=myAccessFile.accdb;Persist Security Info=False;هذه السلاسل تكتبها مكان (Your_Connection_String) مع تعديل ما يناسبها من مسار قاعدة البيانات أو كلمة المرور .. وهكذا ... RE: مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع - sanyor77 - 29-03-23 (29-03-23, 05:39 PM)أحمد عامر كتب : يعني سلسلة الاتصال في قاعدة بياناتي هي لا، سلسلة الاتصال في قاعدة البيانات هي المعلومات اللازمة للاتصال بقاعدة البيانات، بما في ذلك عنوان الخادم، اسم قاعدة البيانات، اسم المستخدم وكلمة المرور. "UserID" هو عبارة عن حقل يوجد ضمن جدول في قاعدة البيانات ويستخدم لتعريف المستخدمين. |