كوماندير
-
Posts
168 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه كوماندير
-
-
اشكرك اخي الفاضل جعفر
وجدت الرابط
http://allenbrowne.com/ser-36.html
ولكن في الحقيقة لم استوعب الكثير منه
فهلا تفضل احد جهابذة المنتدى بالتفصيل ؟
-
السلام عليكم ورحمة الله وبركاته
اعزائي الاعضاء الكرام مساكم الله بالخير
تمهيد : لدي برنامج يحتوي العديد من الجداول التي تحتوي حقولاً من نوع تاريخ / وقت (Date/Time) ، والقيمة الافتراضية لهذه الحقول هو اما
Date()
او
Time()
السؤال : كيف اجعل التاريخ المخزن فيها يكون باحد الشكلين اما : (dd/mm/yyyy )
او (dd/ mmmm/ yyyy ) حسب ما احدد في النموذج او التقرير ، ويكون التاريخ المعتمد لهذه الحقول هو التاريخ الميلادي ، وتكون تسميات الاشهر التسميات الانجليزية بغض النظر عن اعدادات جهازي من النواحي التالية :
1)- لوكانت المنطقة او الدولة لجهازي هي دولة لاتعتمد التاريخ الميلادي كتاريخ رسمي مثلاً نفترض ان المنطقة الزمنية لجهازي هي السعودية التي تعتمد التقويم الهجري.
2)- و / او لوكان تنسيق التاريخ لجهازي هو التنسيق
mm/dd/yyyy
او
yyyy/mm/dd
او
اي تنسيق غير التنسيق
dd/mm/yyyy
-
-
اشكرك اخي ع التفاعل واشكرك ع الرد
اعتقد انه من الصعوبة ان يدخل المستخدم ل مدير المهام عند الحاجة.
طريقتي هي لعمل جسر عبور لتجنب الاخطاء.
ارجو الافادة.
-
السلام عليكم ورحمة الله وبركاته
بسبب الانطفاء الغير متوقع للجهاز لاي سبب ،
اريد عمل قاعدة بيانات نسميها مثلاً
ReSetDb
وظيفة هذه البرنامج هو البحث عن اي ملف بصيغة laccdb
( locked access database )
وحذف هذه الملفات ثم فتح قاعدة البيانات
AlqemmaDb
واغلاق قاعدة البيانات ReSetDb
تفاصيل اكثر :
بعد العديد من التجارب، اذا حدث لاي سبب انطفاء للجهاز والبرنامج AlqemmaDb.accdb
مفتوحا
فان ملف AlqemmaDb.laccdb يبقى
متاحاً وعند تشغيل الجهاز مرة اخرى وفتح البرنامج
AlqemmaDb.accdb
مرة ثانية في وجود الملف
AlqemmaDb.laccdb
تحدث اخطاء.
وللتخلص من ذلك قررت عمل برنامج اكسس اخر اسميته ReSetDb
المطلوب من الاخير البحث عن اي ملف ينتهي بالامتداد laccdb وحذفه ثم فتح قاعدة البيانات
AlqemmaDb.accdb
المطلوب : اريد مساعدة في عمل كود يبحث عن اي ملف. Laccdb وحذفه نهائيا من الجهاز ثم فتح برنامج AlqemmaDb.accdb
-
16 ساعات مضت, ابوآمنة said:
حالياً معي هذه النسخة
وحاولت تغييرها إلى متداد mdb ولم تنجح .
اعتقد الأكواد التي مكتوبة تدعم الإصدارات الحديثة حسب الرسالة التي تظهرت لي بالأكسس عند التحويل .
علماً أن الجدول لا يحتوي على حقول طويلة أو مرفق أو حقل حسابي .
وليس هناك ماكرو .
لعلا الأخوة الزملاء يفيدوننا .
في انتظار الافادة من بقية السادة الاعضاء .
-
-
38 دقائق مضت, ابوآمنة said:
تم التعديل ،،،
آمل التجربة ...
Backup_v2.rar 324.16 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 0 downloads
نفس المشكلة اخي الفاضل
لايمكن التعرف على تنسيق قاعدة البيانات
-
للأسف الشديد
ظهرت رسالة لايمكن التعرف على تنسيق قاعدة البيانات
-
شكراً سيدي الفاضل
ساقوم بالتجربة وقتاً لاحقاً
-
السلام عليكم ورحمة الله وبركاته
اعزائي الكرام اريد كود لعمل نسخة احتياطية من قاعدة البيانات الحالية ولكن بالشروط التالية :
(1)- قاعدة البيانات الحالية اسمها LabDbV1
(2)- اريد عمل نسخة احتياطية يومياً
بحيث يكون اسم النسخة الاحتياطية الجديدة مثلاً لهذا اليوم يكون الاسم الحالي + تاريخ اليوم
مثلاً: LabDbV1_29_06_2019
وهكذا
(3)- اذا كانت قاعدة البيانات الحالية مدمجة ( جداول وبقية الكائنات مع بعض ) فاريد النسخة الاحتياطية للجداول والعلاقات فقط.
وان كانت مقسمة فيتم سؤال المستخدم اول مرة يفتح فيها قاعدة البيانات ليحدد ويختار موقع القاعدة الخاصة بالجداول.
(4)- ان يتم عمل النسخ الاحتياطية في مجلد جديد يكون ع القرص D واسمه MyLabDbBackup
اذا كان هذا المجلد موجوداً والا يتم انشاءه.
(5)- تجنباً ومنعاً لامتلاء القرص الصلب ان يتم حذف كل النسخ الاحتياطية السابقة والاحتفاظ بآءخر عشر نسخ احتياطية (اكرر آءخر عشر نسخ احتياطية وليست للعشر الايام الاخيرة ) . وقبل ذلك يتم حذف جميع النسخ من المجلد MyLabDbBackup .
(6)- ان يتم حفظ النسخة الاحتياطية بصيغة accdb حتى لو كانت الحالية بصيغة accde
ارجو ان يكون طلبي واضحاً .
-
شكرا جزيلا اخي ابو ابراهيم الغامدي
اشكرك كثيرا على بذل وقتك وجهدك ثانية ....
الكود الذي تفضلت سيادتك بالتعديل عمل جيدا ... ( كما هو متوقع بالطبع .... )
بالنسبة لكلامك عن الاشياء التي تقول ان الوظيفة لاتدعمها ... ( حسب مافهمت من كلامك انها الاستعلامات الاجرائية (استعلام الالحاق) .... ان كان هذا قصدك .)
فقد استدعيت الوظيفه تحت حدث النقرنقرتين لمربع القائمة آنف الذكر كالتالي :
If LTDYS(Me.OrderDate, Me.Parent.PtName) = True Then Cancel = True Exit Sub Else Cancel = False DoCmd.SetWarnings False DoCmd.OpenQuery "Q3" DoCmd.SetWarnings True Me!OrdDetSubFrm.Form.Requery Me.ListOne.Requery End If
وكانت النتيجة كما كنت ارجوها .
Solved
-
الاعزاء الكرام للاهمية
وبما ان الرسالة لاتظهر جيدا لانها باللغة العربية فقد قمت بتحويل الرسالة الى الانجليزية :
عندي ثلاثة نماذج :
MainFrm
وبداخله OrdersSubFrm
وبداخله OrdDetSubFrm
المشكله لدي هي :اريد رساله تنبه المستخدم عند محاولته تغيير اي من بيانات الثلاثة النماذج
بعد مرور ثلاثة ايام من تاريخ اليوم الحالي .
طبعا في كل الاكواد استخدم الحقل OrderDate الموجود بالنموذج الفرعي OrdersSubFrm ومقارنته بتاريخ اليوم .
ولكن لانني مضطر لاعادة كتابة الكود في كل نموذح (قبل التحديث ) اريد انشاء كود وحيد ويتم استدعائه في كل النماذج .
الكود نفسه تقريبا مكرر بنفس النماذج ماعدا السطر :
'In MainFrm MyDate = DateSerial(Year(Me!OrdersSubFrm.Form!OrderDate), Month(Me!OrdersSubFrm.Form!OrderDate),Day(Me!OrdersSubFrm.Form!OrderDate)) 'in the OrdersSubFrm (sub form): MyDate = DateSerial(Year(Me!OrderDate), Month(Me!OrderDate), Day(Me!OrderDate)) ' in the OrdDetSubFrm (sub sub form) : MyDate = DateSerial(Year(Me.Parent!OrderDate), Month(Me.Parent!OrderDate), Day(Me.Parent!OrderDate))
لدي الكود التالي تحت حدث قبل التحديث للنموذج MainFrm
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me!OrdersSubFrm.Form!OrderDate), Month(Me!OrdersSubFrm.Form!OrderDate), Day(Me!OrdersSubFrm.Form!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "day" Else MnthCnt = "days" End If If LValue >= 3 Then If MsgBox("Dear user It has been " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ " from the date of this visit for patient:" & "" & Me.PtName & vbCrLf & _ "Do you want to change the information of this patient, to confirm the changes Choose Yes, to cancel select No. ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " Change Confirmation " & " " & Me.Parent!PtName) = vbYes Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If End If
والكود التالي في OrdersSubFrm (sub form)
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me!OrderDate), Month(Me!OrderDate), Day(Me!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "day" Else MnthCnt = "days" End If If LValue >= 3 Then If MsgBox("Dear user It has been " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ " from the date of this visit for patient:" & "" & Me.Parent.PtName & vbCrLf & _ " Do you want to change the information of this patient, to confirm the changes Choose Yes, to cancel select No. ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " Change Confirmation " & " " & Me.Parent!PtName) = vbYes Then Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If
والكود التالي في OrdDetSubFrm (sub sub form)
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me.Parent!OrderDate), Month(Me.Parent!OrderDate), Day(Me.Parent!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "day" Else MnthCnt = "days" End If If LValue >= 3 Then If MsgBox("Dear user It has been " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ " from the date of this visit for patient:" & " " & Me.Parent.Parent!PtName & vbCrLf & _ " Do you want to change the information of this patient, to confirm the changes Choose Yes, to cancel select No. ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " Change Confirmation " & " " & Me.Parent!PtName) = vbYes Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If
ولدي مربع قائمة في النموذج :OrdersSubFrm (sub form)
عند النقر مرتين على اي عنصر من عناصره يقوم بتنفيذ استعلام الحاق .
وهذا الكود المستخدم فيه :
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me!OrderDate), Month(Me!OrderDate), Day(Me!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "day" Else MnthCnt = "days" End If If LValue >= 3 Then If MsgBox("Dear user It has been" & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ "from the date of this visit for this patient :" & "" & Me.Parent.PtName & vbCrLf & _ "Do you want to change the information of this patient, to confirm the changes Choose Yes, to cancel select No. ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " Change Confirmation " & " " & Me.Parent!PtName) = vbYes Then Cancel = False DoCmd.SetWarnings False DoCmd.OpenQuery "Q4" DoCmd.SetWarnings True Me!OrdDetSubFrm.Form.Requery Else Cancel = True End If Else DoCmd.SetWarnings False DoCmd.OpenQuery "Q4" DoCmd.SetWarnings True Me!OrdDetSubFrm.Form.Requery End If
ارجو مساعدتي في تنفيذ function or sub
للقيام بعمل كل هذه الاكواد .
-
السلام عليكم ورحمة الله وبركاته
الافاضل الكرام حياكم الله
هل لي ان اعرف :
- ماهو الفرق بين (set , dim , global , public , private) .
- ماهو الفرق بين (ByVal , ByRef).
- ماهو الفرق بين (Function , Sub)
- ماهو الفرق بين ( Class , module )
ارجو ان اجد شرحا وافيا ولو يكون مرفق بامثلة حتى تكتمل الفائدة يكون افضل .
-
اخي هل ممكن اجعل كلمة سجل جديد بلون مخصص مثلا :
سجل جديد
مع الاخذ بعين الاعتبار ان اللون الخاص بمربع النص اسود وليس احمر ماعدا عندما يكون سجلا جديدا
ماذا تضيف للتنسيق
@;"سجل جديد"
كي يصبح بالتنسق الملون ؟
-
السلام عليكم ورحمة الله وبركاته
الافاضل الكرام لدي ثلاثة نماذج :
MainFrm وبداخله OrdersSubFrm وبداخله OrdDetSubFrm
وكان لدي الكود التالي تحت حدث قبل التحديث للنموذج MainFrm
if Me!OrdersSubFrm.Form.RecordsetClone.RecordCount > 0 Then Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me!OrdersSubFrm.Form!OrderDate), Month(Me!OrdersSubFrm.Form!OrderDate), Day(Me!OrdersSubFrm.Form!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "íæã" Else MnthCnt = "íæãÇð" End If If LValue >= 3 Then If MsgBox("ÚÒíÒí ÇáãÓÊÎÏã áÞÏ ãÖÊ ÃßËÑ ãä " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ "ãä ÊÇÑíÎ åÐå ÇáÒíÇÑÉ ááãÑíÖ :" & "" & Me.PtName & vbCrLf & _ "åá ÊÑíÏ ÝÚáÇ ÇáÊÛííÑ Ýí ãÚáæãÇÊ åÐÇ ÇáãÑíÖ ÈÚÏ ãÖí åÐå ÇáÝÊÑå ... áÊÃßíÏ ÇáÊÛííÑ ÇÎÊÑ äÚã ¡ áÇáÛÇÁ ÇáÊÛííÑ ÇÎÊÑ áÇ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " ÊÃßíÏ ÊÚÏíá " & " " & Me.PtName) = vbYes Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If End If
والكود التالي تحت قبل التحديث للنموذج OrdersSubFrm
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me!OrderDate), Month(Me!OrderDate), Day(Me!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "íæã" Else MnthCnt = "íæãÇð" End If If LValue >= 3 Then If MsgBox("ÚÒíÒí ÇáãÓÊÎÏã áÞÏ ãÖÊ " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ "ãä ÊÇÑíÎ åÐå ÇáÒíÇÑÉ ááãÑíÖ :" & "" & Me.Parent.PtName & vbCrLf & _ "åá ÊÑíÏ ÝÚáÇ ÇáÊÛííÑ Ýí ãÚáæãÇÊ åÐÇ ÇáãÑíÖ ÈÚÏ ãÖí åÐå ÇáÝÊÑå ... áÊÃßíÏ ÇáÊÛííÑ ÇÎÊÑ äÚã ¡ áÇáÛÇÁ ÇáÊÛííÑ ÇÎÊÑ áÇ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " ÊÃßíÏ ÊÚÏíá " & " " & Me.Parent!PtName) = vbYes Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If
والكود التالي تحت قبل التحديث للنموذج OrdDetSubFrm
Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(Me.Parent!OrderDate), Month(Me.Parent!OrderDate), Day(Me.Parent!OrderDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "íæã" Else MnthCnt = "íæãÇð" End If If LValue >= 3 Then If MsgBox("ÚÒíÒí ÇáãÓÊÎÏã áÞÏ ãÖÊ " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ "ãä ÊÇÑíÎ åÐå ÇáÒíÇÑÉ ááãÑíÖ :" & " " & Me.Parent.Parent!PtName & vbCrLf & _ "åá ÊÑíÏ ÝÚáÇ ÇáÊÛííÑ Ýí ãÚáæãÇÊ åÐÇ ÇáãÑíÖ ÈÚÏ ãÖí åÐå ÇáÝÊÑå ... áÊÃßíÏ ÇáÊÛííÑ ÇÎÊÑ äÚã ¡ áÇáÛÇÁ ÇáÊÛííÑ ÇÎÊÑ áÇ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " ÊÃßíÏ ÊÚÏíá " & " " & Me.Parent.Parent!PtName) = vbYes Then Cancel = False Else Cancel = True DoCmd.RunCommand acCmdUndo End If End If
وبدلا من تكرار الكود قمت باءنشاء الوظيفة التالية ولكن لانها المحاولة الاولى لانشاء وظيفة فقد احببت رأيكم حتى لا اقع في اخطاء (برغم انها اشتغلت معي كما ارجو ):
Option Compare Database Option Explicit Public Function LTDYS(LftDate As Date, MyPtNm As String) Dim MyDate Dim LValue As Integer Dim MnthCnt As String MyDate = DateSerial(Year(LftDate), Month(LftDate), Day(LftDate)) LValue = DateDiff("d", MyDate, Date) If LValue < 10 Then MnthCnt = "íæã" Else MnthCnt = "íæãÇð" End If If LValue >= 3 Then If MsgBox("ÚÒíÒí ÇáãÓÊÎÏã áÞÏ ãÖÊ ÃßËÑ ãä " & " ( " & LValue & " ) " & MnthCnt & vbCrLf & _ "ãä ÊÇÑíÎ åÐå ÇáÒíÇÑÉ ááãÑíÖ :" & "" & MyPtNm & vbCrLf & _ "åá ÊÑíÏ ÝÚáÇ ÇáÊÛííÑ Ýí ãÚáæãÇÊ åÐÇ ÇáãÑíÖ ÈÚÏ ãÖí åÐå ÇáÝÊÑå ... áÊÃßíÏ ÇáÊÛííÑ ÇÎÊÑ äÚã ¡ áÇáÛÇÁ ÇáÊÛííÑ ÇÎÊÑ áÇ", vbInformation + vbMsgBoxRtlReading + vbMsgBoxRight + vbYesNo, " ÊÃßíÏ ÊÚÏíá " & " " & MyPtNm) = vbNo Then ' MyCancel = False ' Else ' MyCancel = True DoCmd.RunCommand acCmdUndo Else Exit Function End If End If Exit Function End Function
راجو افادتكم ووضع ملاحظاتكم .
-
شكرا جزيلا اخي وهو المطلوب الضبط .
-
السلام عليكم ورحمة الله وبركاته
الاعزاء الافاضل هل من طريقة تمكنني من عرض كلمة "سجل جديد" في حقل من نوع (رقم) في نموذج مستمر .
كما في نوع الترقيم التلقائي ؟
-
السلام عليكم ورحمة الله وبركاته
لدي قاعدة بيانات اضفت بكل جدول منها حقل AuditTrail لتسجل احداث التغييرات على بيانات الجدول .
كما تعلمون اسماء الحقول في الجداول والنماذج باللغة الانجليزية كما يفترض .
الكود الموجود بقاعدة البيانات يسجل كل التغييرات التي حدثت ويعطي اسم الحقل الذي حدثت له التعديلات (كما ستلاحظون بالمرفق )
عملت لكل حقل تسمية توضيحية باللغة العربية ( من اعدادت تصميم الجدول الخاصية تسمية توضيحية كل حقل ) .
السؤال : كيف يمكن ان اجعل الكود يعيد لي التسمية التوضيحية للحقل بدلا عن اسم الحقل (الذي حدثت له تعديلات ) ،
ليعرف المستخدم ماهو الحقل الذي تمت عليه التغييرات ( ذلك للتسهيل على المستخدم ، لانه في العادة تتم تسمية الحقول عن طريق رموز واسماء غير كاملة اضافة الى استبعاد الفراغات بين اسماء الحقول )
ارجو ان اكون وفقت في طرح سؤالي
واليكم هذا المثال :
-
السلام عليكم ورحمة الله وبركاته
بعد تصفحي للعديد من المواقع والمواضيع وجدت ان هذه الخاصية يجب ان تكون لا ، ماعدا حالات نادرة حسب
http://allenbrowne.com/bug-09.html
المشكلة :
لدي مربع تحرير وسرد اريده يعيد قيمة احد الحقول (حقل نصي طبعا قمت بتغيير خاصية السماح بطول صفري الى لا له) من الاستعلام المصدر لمربع التحرير والسرد
عبر الكود التالي الواقع في حدث بعد التحديث لمربع التحرير والسرد
Me.NormalValue = Me.SerNo.Column(2)
ولكن بعد التحديث لمربع التحرير والسرد اذا كانت قيمة
Me.SerNo.Column(2)
خاليه فانها تظهر لي الرسالة :
لايمكن ان يكون الحقل NormalValue سلسة ذات طول صفري
ماهو الحل العلمي الصحيح لذلك .
على ان تبقى خاصية السماح بطول صفري للحقل NormalValue الى لا .؟
-
هل لي ان اعرف لماذا اوقفت كود بعد التحديث لمربع تحرير وسرد العام في نموذج DatesFrm؟
لقد قمت بتشغيل الكود وعند ادراجي لايام عام كامل وانتقالي الى نموذج DatesNoFrm لاضافة ارقام ايام عام كامل ظهر لي نموذج الانتظار ولم يتم الحاق اي سجل الى جدول tblNumersOrder
جرب تشغيل الكود الموقف وانظر النتيجة بنفسك ....
-
37 دقائق مضت, أبو إبراهيم الغامدي said:
لم الاحظ الا ايقافك لسطر
do events
وبصراحة لم الاحظ تغييرا في الاداء
هل غيرت شئ غيره ؟؟؟؟
-
7 دقائق مضت, أبو إبراهيم الغامدي said:
سوف أقوم بمراجعة وضبطة إت شاء الله..
هل هناك معايير للإحاق تريد تنفيذها .. اسردها لو سمحت
اشكر تفاعلك كثيرا
لاتوجد هناك اي معايير سوى العام الذي اختاره من مربع التحرير والسرد
-
9 ساعات مضت, أبو إبراهيم الغامدي said:
وعليكم السلام ورحمة الله وبركاته
جرب المرفق الأن
ملاحظة: قمت بتغيير بعض نصوص الشفرة التي ليس لها علاقة بالسؤال.. أرجو المعذرة
نص شفرة الحاق البيانات لايبدوا سليما في نظري.. أرجو التحقق من ذلك
شكرا اخي ابو ابراهيم
هلا ارشدتنا للنص السليم لشفرة الالحاق ؟
ضبط وتنسيق التاريخ في برنامجي
في قسم الأكسيس Access
قام بنشر
شكراً جزيلاً
تسلم الانامل