تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع
#11
تم

كما هو المطلوب تم إنشاء جدول للمستخدمين وجدول للأدمن وجدول للأقسام وجدول للأوردرات

ما هي الخطوة القادمة
الرد }}}
تم الشكر بواسطة:
#12
الخطوة التالية هي كتابة الكود اللازم لتنفيذ الوظائف التي وصفتها في البداية، مثل تحديد قسم المستخدم، السماح للمستخدم بإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب، تحويل الطلبية بين الأدمن للتعميد، وغيرها من الوظائف.
يمكنك استخدام الأكواد المذكورة في إجابتي السابقة كنقطة انطلاق لتنفيذ الوظائف الأساسية، وتعديلها وفقًا لمتطلبات نظامك الخاص. قم بتعديل الاستعلامات وأسماء الجداول والحقول وفقًا لتصميم قاعدة البيانات الخاصة بك.
إذا كان لديك أي أسئلة أو استفسارات، فلا تتردد في طرحها. سأكون سعيدًا لمساعدتك في أي شيء.
بالتأكيد، سأكون سعيدًا بمساعدتك في كتابة الكود. ولكن يجب أولاً تحديد الوظيفة الدقيقة التي ترغب في إنشائها في VBA لمساعدتي في إنشاء الكود الصحيح.
هل لديك وظيفة محددة ترغب في إنشائها؟
الرد }}}
تم الشكر بواسطة:
#13
تحديد قسم المستخدم، السماح للمستخدم بإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب، تحويل الطلبية بين الأدمن للتعميد، وغيرها من الوظائف.


هذه هي الوظيفة التي أحتاجها بالفعل فهيا نبدأ 
الرد }}}
تم الشكر بواسطة:
#14
الخطوة الأولى: تحديد قسم المستخدم
يمكن استخدام دالة GetUserDepartment لتحديد القسم الخاص بالمستخدم، كما هو موضح في الكود التالي:
 

PHP كود :
Public Function GetUserDepartment(userID As Integer) As String
    Dim rs 
As New ADODB.Recordset
    rs
.Open "SELECT Department FROM Users WHERE UserID=" userIDYour_Connection_StringadOpenStaticadLockOptimistic
    
    If rs
.EOF Then
        GetUserDepartment 
"Unknown"
 
   Else
        GetUserDepartment 
rs.Fields("Department").Value
    End 
If
 
   
    rs
.Close
End 
Function 



الخطوة الثانية: السماح للمستخدم بإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب
يمكن استخدام نموذج الطلبيات والأكواد التالية لتمكين المستخدم من إنشاء طلبية والأدمن من الموافقة أو الرفض وإضافة تفاصيل الرد في حقل "Reason":
نموذج الطلبيات:
 
PHP كود :
OrderID (Primary keyAutoNumber)
Department (Text)
CreatedBy (Number)
CreatedOn (Date/Time)
Status (Text)
ApprovedBy (Number)
ApprovedOn (Date/Time)
RejectedBy (Number)
RejectedOn (Date/Time)
Reason (Text)
Amount (Currency


الكود لإنشاء طلبية:

PHP كود :
Public Sub CreateOrder(department As Stringamount As Currency)
 
   Dim strSQL As String
    strSQL 
"INSERT INTO Orders (Department, CreatedBy, CreatedOn, Status, Amount) VALUES ('" department "', " CurrentUser.UserID ", Now(), 'Pending', " amount ")"
 
   CurrentDb.Execute strSQL
End Sub 


الكود للموافقة على الطلبية:
PHP كود :
Public Sub ApproveOrder(OrderID As IntegerAdminName As StringReason As String)
 
   ' تحديث حالة الأوردر إلى "معتمد" وإضافة اسم الأدمن المعمد والسبب
    Dim strSQL As String
    strSQL = "UPDATE Orders SET Status='
Approved', ApprovedBy='" & AdminName & "', ApprovedOn=Now(), Reason='" & Reason & "' WHERE OrderID=" & OrderID
    CurrentDb.Execute strSQL
End Sub 


الكود للرفض على الطلبية:


PHP كود :
Public Sub RejectOrder(OrderID As IntegerAdminName As StringReason As String)
 
   ' تحديث حالة الأوردر إلى "مرفوض" وإضافة اسم الأدمن المرفوض والسبب
    Dim strSQL As String
    strSQL = "UPDATE Orders SET Status='
Rejected', 


 هذه الخطوات هي الأساسية التي يجب اتباعها لتنفيذ مثل هذا النظام. بالطبع، يمكن تعديلها وتخصيصها وفقًا لمتطلبات نظامك الخاص. إذا كان لديك أي أسئلة أو استفسارات، فلا تتردد في طرحها. سأكون سعيدًا لمساعدتك في أي شيء آخر.
الرد }}}
تم الشكر بواسطة:
#15
أين أكتب كل كود من هذا

هل في خانة AfterUpdate لزر معين ولا في خانة Onload للنموذج ولا في نفس الموديول اللي أنشأته من قبل  ولا وين
هناك بعض من الخانات في جدول الأورد مثل اسم العميل -  رقم الفيلا - الحي - المورد - ... إلخ

كيف أضيفهم على الكود
الرد }}}
تم الشكر بواسطة:
#16
يمكنك كتابة هذه الأكواد في وحدة VBA في نموذج الأوردر، أو في وحدة VBA مستقلة في نفس قاعدة البيانات. لإضافة حقول إضافية في الأكواد، يجب استخدام اسم الحقل الصحيح وتضمينه في الاستعلامات SQL المستخدمة في الأكواد. يمكنك استخدام خانة AfterUpdate للزر المعين لتحديث قيم الحقول بعد تغييرها، ويمكنك استخدام خانة OnLoad لنموذج الأوردر لتحميل البيانات الأساسية المطلوبة وتعيينها في الحقول.
 
يمكنك إضافة الحقول الإضافية إلى جملة SQL التي تنشئ الأوردر في الخطوة الأولى من الكود. على سبيل المثال، يمكنك إضافة الحقل "CustomerName" باستخدام الكود التالي:
strSQL = "INSERT INTO Orders (CustomerName, OrderDate, TotalAmount, Status) VALUES ('" & CustomerName & "', #" & OrderDate & "#, " & TotalAmount & ", 'Pending')"
حيث أن "CustomerName" هو اسم الحقل في جدول الأوردر، ويتم استخدام الاقتباسات المزدوجة لتحديد القيمة التي يتم إدخالها في الحقل.
يمكنك القيام بنفس الطريقة لإضافة الحقول الأخرى إلى جملة SQL الخاصة بالأوردر. يجب أن يتم تغيير اسم الحقل ونوع القيمة وفقًا لتصميم جدول الأوردر الخاص بك.
 
1- لتحديد قسم المستخدم:

PHP كود :
Public Function GetUserDepartment(userID As Integer) As String
    
' تحديد القسم الذي يتبعه المستخدم المعين باستخدام معرف المستخدم
    Dim rs As New ADODB.Recordset
    rs.Open "SELECT Departments.DepartmentName FROM Departments INNER JOIN Users ON Departments.DepartmentID = Users.DepartmentID WHERE Users.UserID=" & userID, Your_Connection_String, adOpenStatic, adLockReadOnly
    
    If Not rs.EOF Then
        GetUserDepartment = rs.Fields(0).Value
    Else
        GetUserDepartment = ""
    End If
    rs.Close
End Function 


2- لإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب:

PHP كود :
Public Sub CreateOrder(CustomerName As StringVillaNumber As IntegerDistrict As StringSupplier As StringAmount As DoubleReason As String)
 
   ' إنشاء طلبية جديدة في جدول الأوردرز
    Dim strSQL As String
    strSQL = "INSERT INTO Orders (CustomerName, VillaNumber, District, Supplier, Amount, Reason, Status) VALUES ('" & CustomerName & "', " & VillaNumber & ", '" & District & "', '" & Supplier & "', " & Amount & ", '" & Reason & "', '
Pending')"
    CurrentDb.Execute strSQL
End Sub

Public Sub ApproveOrder(OrderID As Integer, AdminName As String, Reason As String)
    ' 
تحديث حالة الأوردر إلى "معتمد" وإضافة اسم الأدمن المعمد والسبب
    Dim strSQL 
As String
    strSQL 
"UPDATE Orders SET Status='Approved', ApprovedBy='" AdminName "', ApprovalReason='" Reason "' WHERE OrderID=" OrderID
    CurrentDb
.Execute strSQL
End Sub

Public Sub RejectOrder(OrderID As IntegerAdminName As StringReason As String)
 
   ' تحديث حالة الأوردر إلى "مرفوض" وإضافة اسم الأدمن المرفوض والسبب
    Dim strSQL As String
    strSQL = "UPDATE Orders SET Status='
Rejected', RejectedBy='" & AdminName & "', RejectionReason='" & Reason & "' WHERE OrderID=" & OrderID
    CurrentDb.Execute strSQL
End Sub 


3- لتحويل الطلبية بين الأدمن للتعميد:

PHP كود :
Public Function TransferOrder(orderID As IntegernewAdminID As IntegertransferReason As String) As Boolean
    
' التحقق مما إذا كان المستخدم الحالي هو أدمن أم لا
    If Not IsAdmin(CurrentUser.UserID) Then
        MsgBox "Only admins can transfer orders."
        Exit Function
    End If
    
    ' 
التحقق مما إذا كانت الطلبية موجودة ولم يتم المواف 
الرد }}}
تم الشكر بواسطة:
#17
هلا
بالنسة ل
1- لتحديد قسم المستخدم:
2- لإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب:
3- لتحويل الطلبية بين الأدمن للتعميد:

أين أضع الكود هل على زر أم على AferUpdate للفورم أم ماذا

ياريت توضيح أكتر لأن الأمر غير واضح بالنسبة لي ... معلش بتعب حضرتك معايا
وبالنسبة ل Your_Connection_String أضع بقى اسم قاعدة البيانات "الملف نفسه وليكن Ahmed.accdb ولا أضع كلمة myAccessFile.accdb

كذلك أريد أن أخفي زر "التعميد" عن باقي اليوزر ويبقى ظاهر للأدمنز فقط ومتاح زر "التحويل إلى قسم كا" للأدمنز واليوزرز
كذلك "هل شاشة الدخول هتكون واحدة لليوزرز والأدمنز وكيف أربط بينهم لو شاشة الدخول واحدة.


ياريت بعد إذنك تبقى توضحلي أين أضع الأكود عشان أحاول أفهم برده الآلية وأنا شغال

ومرفق لحضراتكم صور لنموذج الأوردر وكذلك صور للجداول والعلاقات المستخدمة


الملفات المرفقة صورة/صور
                   
الرد }}}
تم الشكر بواسطة:
#18
أنا في انتظار رد من حضراتكم

مرفق ملف العمل


الملفات المرفقة
.rar   vb4arb.rar (الحجم : 149.96 ك ب / التحميلات : 4)
الرد }}}
تم الشكر بواسطة:
#19
تم عملهم في module vba مع تعديل المتغيرات

ما التالي
الرد }}}
تم الشكر بواسطة:
#20
؟؟؟؟؟؟؟؟؟؟؟؟؟ مازلت في انتظار رد من حضراتكم
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] مساعدة في ربط جهاز البصمة بقاعدة بيانات access سعيد كنيمو 4 3,670 21-10-23, 04:52 PM
آخر رد: ُEzril3
  مساعدة في تصميم برنامج بيع جهاد 0 278 28-09-23, 04:42 PM
آخر رد: جهاد
  [Acces2010] طلب مساعدة ضروري من فضلكم في برنامج مخازن سامر محمود 0 327 20-08-23, 05:12 PM
آخر رد: سامر محمود
  بيانات الطلاب seddiki_adz 0 485 16-07-23, 11:22 PM
آخر رد: seddiki_adz
  [Acces2010] طلب مساعدة في برنامج يتضمن باركود Hassan.syria 0 357 18-06-23, 09:59 PM
آخر رد: Hassan.syria
Video فرز نموذج فرعي من خلال Listbox في قاعدة بيانات اكسيس ggtt17121985 0 598 16-06-23, 02:50 AM
آخر رد: ggtt17121985
  مساعدة في كود VBA لقاعدة بيانات إدارة مشاريع أحمد عامر 1 396 28-03-23, 06:53 PM
آخر رد: sanyor77
  [Acces2010] طلب مساعدة ضرورى جدا سامر محمود 0 380 02-03-23, 12:33 PM
آخر رد: سامر محمود
Information شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية elgokr 55 79,364 05-02-23, 03:21 PM
آخر رد: tighrmte
  [كود] رسالة خطا عند استبدال معلومات في قاغدة بيانات kamel1978 0 506 03-12-22, 08:25 PM
آخر رد: kamel1978

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم