30-03-23, 11:33 PM
يمكنك كتابة هذه الأكواد في وحدة VBA في نموذج الأوردر، أو في وحدة VBA مستقلة في نفس قاعدة البيانات. لإضافة حقول إضافية في الأكواد، يجب استخدام اسم الحقل الصحيح وتضمينه في الاستعلامات SQL المستخدمة في الأكواد. يمكنك استخدام خانة AfterUpdate للزر المعين لتحديث قيم الحقول بعد تغييرها، ويمكنك استخدام خانة OnLoad لنموذج الأوردر لتحميل البيانات الأساسية المطلوبة وتعيينها في الحقول.
يمكنك إضافة الحقول الإضافية إلى جملة SQL التي تنشئ الأوردر في الخطوة الأولى من الكود. على سبيل المثال، يمكنك إضافة الحقل "CustomerName" باستخدام الكود التالي:
strSQL = "INSERT INTO Orders (CustomerName, OrderDate, TotalAmount, Status) VALUES ('" & CustomerName & "', #" & OrderDate & "#, " & TotalAmount & ", 'Pending')"
حيث أن "CustomerName" هو اسم الحقل في جدول الأوردر، ويتم استخدام الاقتباسات المزدوجة لتحديد القيمة التي يتم إدخالها في الحقل.
يمكنك القيام بنفس الطريقة لإضافة الحقول الأخرى إلى جملة SQL الخاصة بالأوردر. يجب أن يتم تغيير اسم الحقل ونوع القيمة وفقًا لتصميم جدول الأوردر الخاص بك.
1- لتحديد قسم المستخدم:
2- لإنشاء طلبية والموافقة أو الرفض من قبل الأدمن مع إبداء الأسباب:
3- لتحويل الطلبية بين الأدمن للتعميد:
يمكنك إضافة الحقول الإضافية إلى جملة 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 String, VillaNumber As Integer, District As String, Supplier As String, Amount As Double, Reason 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 Integer, AdminName As String, Reason 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 Integer, newAdminID As Integer, transferReason As String) As Boolean
' التحقق مما إذا كان المستخدم الحالي هو أدمن أم لا
If Not IsAdmin(CurrentUser.UserID) Then
MsgBox "Only admins can transfer orders."
Exit Function
End If
' التحقق مما إذا كانت الطلبية موجودة ولم يتم المواف
