-
Posts
3693 -
تاريخ الانضمام
-
Days Won
149
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
ما شاء الله , أفكار مفيدة لذوي الإختصاص والمهتمين .. أولا لنفترض انني اشتريت مثلاً صنف لأول مرة بسعر 10 جنيه عدد 24 قطعة ، وبعد ايام ( وطبعاً لم يتم بيعهم كلهم ) اشتريت نفس الصنف بسعر 12 جنيه وبعدد 24 قطعة أيضاً وقد تم بيع 4 قطع منالسعر الأول . الآن سيكون في مخزني 44 قطعة من الصنف نفسه بسعرين ( 10 جنيه و 12 جنيه ) صحيح ؟؟ الآن لنفرض جدلاً انني بعد شهر من البيع ( تم بيع 14 قطعة مثلاً ) بقي لدي 30 قطعة ، وقد حصلت على عرض بسعر 9 جنيه عند شراء 24 قطعة لنفس المنتج !!!!!! الآن بأي سعر سيتم البيع ( 9 أو 10 أو 12 ) . قمت بتجربة شراء نفس المنتج بسعر 100 جنيه والبيع بسعر 105 جنيه عدد 5 قطع . الآن اضافة الى ما في المخزن من نفس المنتج اصبح لدي 20 قطعة بأسعار شراء وبيع مختلفات . الآن قمت بعملية بيع لنفس الصنف أكثر من مرة وبأكثر من عدد وقد تجاوزت العدد 20 ، وتم حفظ الفاتورة . ولكن عند عودتي لها تم تحديد سعر البيع 109 ،ولا أعتقد انه متوسط سعر البيع للصنف إن لم أكن مخطئاً !!! الصورة المرفقة قد توضح مقصدي 😅 .
- 8 replies
-
- شخابيط
- شخابيط وافكار
-
(و23 أكثر)
موسوم بكلمه :
- شخابيط
- شخابيط وافكار
- شخابيط وأفكار
- شخابيط ابو جودى
- مايكروسوفت اكسس
- اكسس
- اوفيسنا
- منتديات اوفيسنا
- أتمتة عمليات البيع
- عمليات البيع
- fifo
- fifo الوارد أولاً يصرف أولاً
- lifo الوارد أخيراً يصرف أولاً
- lifo الوارد اخيرا يصرف أولا
- lifo
- highestprice
- أعلى سعر أولاً
- اعلى سعر اولا
- latestprice
- أحدث دفعة أولاً
- احدث دفعة اولا
- جرد المخزون
- حساب المبيعات على اساس محاسبى صحيح
- حساب المبيعات
- نظام مالى
-
نعم .. في جدول التقدير على سبيل المثال :- 1 = مقبول 2 = جيد 3 = جيد جداً 4 = ممتاز في الكومبوبوكس سيكون مصدر جدول التقديرات وسيتم اضافة العمودين ( صحيح ؟ ) الآن في النموذج سيكون مصدر بيانات الكومبوبوكس حقل التقدير في جدول الموظفين الرئيسي ، وستكون القيمة على سبيل المثال = 4 ( رقم التقدير = ممتاز ) ولن تكون كلمة ممتاز . وطبعاً سيكون مصدر الصف للكومبوبوكس الجدول الخاص بالتقدير ( اعتقد ها ما تم تطبيقه في مثالك .. صحيح ؟ ) إن كان هذا ما تم فعله فهو ممتاز وأحسنت التطبيق .
-
بالضبط ، بحيث يتم تخزين رقم الجنسية او رقم التقدير .... الخ في الجدول الرئيسي للمعلومات الشخصية او اي حقل كان * ملاحظة :- الكومبوبوكس سيكون من عمودين ( رقم الجنسية او المؤهل كما في مثالك والقيمة الخاصة بالمؤهل ... الخ ) واجعل حقل الجنسية كمثال في جدول المعلومات الشخصية = رقمي بحيث يأخذ رقم ID الخاص بالجنسية
-
نعم يا صديقي ، أحسنت إلى الآن . اللي عملته صحيح تماماً بنسبة كبيرة جداً ، بل هو من أساسيات التصميم السليم لقواعد البيانات – خاصة لما المشروع بيكبر وبيحتاج لإحصائيات واستعلامات وتقارير معقدة . ولكن هي فقط النقطة التي ذكرتها لك فيما يتعلق باستخدام الكومبوبوكس داخل الجدول وليس في النموذج .. ولو النقطة غير واضحة لك احكيلي .
-
إذاً وعليه فأن تعديل الدالة في المديول يصبح كالآتي .. Public Function Horizontal(tabelle As String, Feld1 As String, Feld2 As String, valFeld1, Optional sortField As String = "workdate") On Error GoTo ErrorHandler Dim DB As DAO.Database, rs As DAO.Recordset Dim sql As String Dim isFirst As Boolean Dim lastValue As String Dim fldType As Integer ' قائمة الحقول التي نريد منع تكرارها Dim noRepeatFields As Variant noRepeatFields = Array("name", "Committee", "Job", "school", "Governorate", "Management") Set DB = CurrentDb fldType = DB.TableDefs(tabelle).Fields(Feld1).Type If fldType = dbText Or fldType = dbMemo Then sql = "SELECT [" & Feld2 & "] FROM [" & tabelle & "] WHERE [" & Feld1 & "]='" & valFeld1 & "'" Else sql = "SELECT [" & Feld2 & "] FROM [" & tabelle & "] WHERE [" & Feld1 & "]=" & valFeld1 End If On Error Resume Next Dim testFld As DAO.Field Set testFld = DB.TableDefs(tabelle).Fields(sortField) If Err.Number = 0 Then sql = sql & " ORDER BY [" & sortField & "]" End If On Error GoTo ErrorHandler Set rs = DB.OpenRecordset(sql) Horizontal = "" isFirst = True lastValue = "~|~" ' التحقق إذا كان الحقل الحالي في قائمة Dim isNoRepeatField As Boolean isNoRepeatField = False Dim i As Integer For i = LBound(noRepeatFields) To UBound(noRepeatFields) If Feld2 = noRepeatFields(i) Then isNoRepeatField = True Exit For End If Next i Do While Not rs.EOF Dim currentValue As String currentValue = Nz(rs(Feld2), "") If isNoRepeatField Then If currentValue <> lastValue Then If isFirst Then Horizontal = "*" & currentValue isFirst = False Else Horizontal = Horizontal & vbCrLf & currentValue End If lastValue = currentValue End If Else If isFirst Then Horizontal = "*" & currentValue isFirst = False Else Horizontal = Horizontal & vbCrLf & currentValue End If End If rs.MoveNext Loop rs.Close Set rs = Nothing Set DB = Nothing Exit Function ErrorHandler: Horizontal = "!ERROR: " & Err.Description If Not rs Is Nothing Then rs.Close Set rs = Nothing End If Set DB = Nothing End Function تم إضافة أسلوب لتحديد الحقول التي تريد دمج تكراراتها في النتيجة باستخدام مصفوفة بسيطة .. أما في الإستعلام ، فهو كالآتي بعد إعادتك لتغيير أسماء بأسلوب خاطئ مثل الحقل ( Name ) فهو اسم محجوز لآكسيس وليس من المنطقي تسمية حقل أو عنصر بأسماء محجوزة . SELECT DISTINCT basic.id2, Horizontal("basic","id2","name",[basic].[id2]) AS name, Horizontal("basic","id2","school",[basic].[id2]) AS school, Horizontal("basic","id2","Job",[basic].[id2]) AS [work], Horizontal("basic","id2","Committee",[basic].[id2]) AS Committee, Horizontal("basic","id2","taref",[basic].[id2]) AS taref, Horizontal("basic","id2","Governorate",[basic].[id2]) AS Governorate, Horizontal("basic","id2","Management",[basic].[id2]) AS Management FROM basic; for send (3).accdb
-
أخي الكريم .. تماشياً مع سياسة المنتدى وقواعد المشاركات ، أنصحك بفتح موضوع جديد عند تعدد الطلبات .. فهذا كفيل بمن يبحث عن نفس مشكلتك كي يحصل على إجابة محددة في موضوع محدد لا إجابات متعددة لأكثر من موضوع في موضوع واحد . كما أرجو منك محاولة التوضيح أكثر في موضوعك الجديد لاحقاً مع الدعم بالصور إن شئت . أيضاً متابعة مواضيعك كل على حدة بإغلاقها بأختيار أفضل إجابة كل لا يبقى الموضوع معلقاً 😊 على العموم هل هذه النتيجة التي تريدها ؟
-
🔹 قبل أن نصل إلى نقطة إدخال البيانات ، هناك بعض الأمور التي من الأفضل تجنبها لضمان تصميم سليم وقابل للتطوير . 1️⃣ استخدام مربعات التحرير والسرد داخل الجداول بشكل مباشر ليس فكرة جيدة ( من وجهة نظري وهي غير ملزمة طبعاً ) . 🔴 لماذا ؟ عند تخزين قيمة مثل "مصري" مباشرة داخل الجدول ، فإن أي استعلام أو كود VBA سيتعامل مع النصوص بشكل مباشر ، مما قد يبطئ عمليات البحث والاستعلامات . والأسباب التالية كفيلة بتغيير وجهة نظرك 😉 :- 1️⃣ يؤدي إلى تخزين القيم النصية بدلاً من القيم الرقمية المترابطة الى عدة مشاكل منها :- عند إدخال "مصري" مباشرةً داخل الحقل ، يصبح التعامل مع البيانات أبطأ عند تنفيذ الاستعلامات ، مقارنةً بتخزين رقم معرف (ID) وربطه بجدول منفصل يضم الجنسيات . فالأفضل هو تخزين القيم كأرقام مرجعية ( مثلاً ، 1 = مصري ، 2 = غير مصري ... إلخ ) وجلب النص عند الحاجة عبر الاستعلامات . 2️⃣ صعوبة في عمليات الفلترة والاستعلامات المتقدمة فعند الحاجة إلى إجراء استعلامات تعتمد على الجنسية ، مثلاً "كم عدد الموظفين المصريين؟" ، سيكون من الأفضل البحث باستخدام القيمة الرقمية (مثلاً gnsya = 1) بدلاً من البحث عن النصوص ( gnsya = "مصري" ) . فالبحث بالأرقام أسرع وأكفأ مقارنة بالبحث باستخدام النصوص . 3️⃣ تقييد التحديثات وإدارة البيانات عند الحاجة إلى تعديل اسم جنسية معينة ( مثلاً تغيير "مصرى" إلى "مصري" ) ، سيكون عليك تحديث جميع السجلات في الجدول ، مما يزيد من مخاطر الأخطاء . أما عند استخدام جدول منفصل للجنسيات ( كما فعلت ) ، فيكفي تحديثه في مكان واحد فقط وسينعكس التغيير تلقائيًا على جميع السجلات . 🎯 الخلاصة باختصار :- 1️⃣ التعامل مع الأرقام أكثر كفاءة في العمليات الحسابية ، الفلترة ، والبحث ... إلخ 2️⃣ عند الحاجة إلى تغيير اسم جنسية ، يتم تعديله في مكان واحد فقط وليس في جميع السجلات . 3️⃣ يتيح لك إنشاء علاقات أكثر قوة بين الجداول ويسهل بناء التقارير المستقبلية .
-
المشكلة قد تكون بسبب إعدادات الطباعة في Paint ، حيث يقوم البرنامج بطباعة الصورة بحجمها الأصلي دون تكبيرها لتناسب الورقة
-
😯
-
حسناً جرب الملف المرفق وأخبرني بالنتيجة ،، وغير اسمها الى اي اسم تريده
-
توهتني .. اسم الصورة في المرفق ليست ASD كما أشرت . أذاكنت تفضل تحديداسم صورة الاستمارة من خلال الكود فهو سهل ، لكن اذا كانت الصورة وحيدة ولا وجود لملفات أخرى غيرها في المجلد فالكود في المرفق يلبي حاجتك بدون تحديد اسم صورة الاستمارة . والكود ايضاً يدعم حالتين إما المجلد الي بجانب قاعدة البيانات بغض النظر عن مساره أو ذلك الموجود في المسار الذي ذكرته لنا سابقاً في القرص D ... جربه واخبرنا بالنتيجة بعد الطباعة ؟؟؟
-
اذاً هل تريد للكود ان يتم تحديد مسار واسم ملف الاستمارة ؟؟ أم تبقى على هذه الفكرة كما شاركتها سابقاً بحيث ان الكود يقوم بطباعة أول صورة يجدها في المجلد ؟؟؟
-
وعليكم السلام ورحمة الله وبركاته .. اقصد اسم الاستمارة SDN !!! هل هو ثابت ؟؟؟
-
مداخلة سريعة ، هل اسم ملف الإستمارة ثابت ؟؟ على العموم ، جرب هذه الفكرة أيضاً اشتقاقاً من فكرة المهندس @Eng.Qassim .. Private Sub Comaand4_Click() On Error GoTo ErrorHandler Dim dbPath As String Dim localNewFolder As String Dim defaultNewFolder As String Dim imagePath As String Dim imgFile As String dbPath = CurrentProject.Path localNewFolder = dbPath & "\New" defaultNewFolder = "D:\CARDS\New" If Dir(localNewFolder, vbDirectory) <> "" Then imgFile = Dir(localNewFolder & "\*.*") Do While imgFile <> "" Select Case LCase(Right(imgFile, 4)) Case ".jpg", ".jpeg", ".bmp", ".png", ".gif", ".tif" imagePath = localNewFolder & "\" & imgFile Exit Do Case Else imgFile = Dir() End Select Loop End If If imagePath = "" Then If Dir(defaultNewFolder, vbDirectory) <> "" Then imgFile = Dir(defaultNewFolder & "\*.*") Do While imgFile <> "" Select Case LCase(Right(imgFile, 4)) Case ".jpg", ".jpeg", ".bmp", ".png", ".gif", ".tif" imagePath = defaultNewFolder & "\" & imgFile Exit Do Case Else imgFile = Dir() End Select Loop End If End If If imagePath <> "" Then Shell "mspaint /pt """ & imagePath & """", vbHide MsgBox "تم إرسال الإستمارة للطباعة", vbInformation + vbMsgBoxRight, "" Else MsgBox "لا توجد استمارة لطباعتها", vbExclamation End If Exit Sub ErrorHandler: MsgBox "حدث خطأ", vbCritical + vbMsgBoxRight, "" End Sub وقد جعلت الكود أولاً يقرأ المجلد New اذا كان بجانب قاعدة البيانات فيأخذ الإستمارة منه ، وإلا فيذهب إلى المسار الذي حددته سابقاً ليطبع لك الصورة المعبرة عن الإستمارة منه . Database.accdb
-
تعديلاتك ممتازة جدًا! 1️⃣ العلاقة بين الجداول سليمة وصحيحة بالنسبة لي .. جدول personal_data أصبح الجدول الرئيسي ، ويرتبط بجميع الجداول الفرعية بعلاقة ( One-To-Many ) مما يعني أن كل موظف يمكن أن يكون له عدة سجلات في الجداول الأخرى كـ ( الإجازات ، العقوبات ، التدريبات ، ... إلخ ) . 2️⃣ فصل البيانات المتغيرة في جداول مستقلة .. التدريبات ، الإجازات ، العقوبات ، الوظائف ، المؤهلات كل منها في جدول مستقل ، مما يسهل عمليات البحث والاستعلام والتصفية . وهذا بالطبع سيجعل الاستعلامات أكثر كفاءة مقارنة بوضع جميع البيانات في جدول واحد 😉 . 3️⃣ تحسين التسمية .. وأيضاً واضح أنك استخدمت بادئة أسماء تمييزية (مثل rkm_mlf_Qual و rkm_mlf_Vaca ... إلخ ) لربط الجداول بـ personal_data بدون تكرار أسماء الحقول بشكل مربك . قد خطر ببالي أيضاً إضافة بسيطة :- 🔹 إضافة جداول دعم إضافية عند الحاجة ، مثل جدول أنواع الإجازات ، جدول أنواع الدورات التدريبية ، جدول أسباب العقوبات بدلاً من تخزينها كنصوص داخل الجداول الأساسية ، مما يسهل التعديل مستقبلاً .
-
نسخ صور قسم معين الى مجلد قاعده بيانات اكسس
Foksh replied to Majed_ali2010's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته .. أخي الكريم بدايةً وبما انك عضو جديد معنا ، فأهلاً وسهلاً بكم معنا في عالمنا الصغير .. ومن حقك أن تتوضح لك عدة نقاط منها :- عند إنشاء موضوع يجب أن تقوم بالشرح الوافي والشافي والكافي للمشكلة بحيث يسهل فهم المشكلة على الأخوة والأساتذة ممن يحاول تقديم حلول لك . أيضاً ضرورة ارفاق ملف بسيط تكون قد أنشأت به معطيات ما تريد من عناصر . أما بخصوص طلبك فهو متشعب بأكثر من اتجاه ، وهذا ما دفعني ان اطلب منك التوضيح أكثر . فهل الصور لها مسميات خاصة ؟ هل الصور في مجلد واحد أم أكثر من مجلد ( تم توزيعها حسب التاريخ أو مجموعات معينة ) على سبيل المثال ؟؟ هل الصور المطلوب نسخها تستند الى شروط لتحديد ما تريد نسخه ( بناءً على كلمة قسم معين الى مجلد جديد ) هذه بعض الأسئلة التي تحتاج إجابة منك -
جزاكم الله خيراً ، ونفع بكم وبعلمكم .. والحمد لله على ما تعلمناه بفضله ثم من توجيهاتكم في كثير من المواضيع ومتابعتي لخطواتكم
-
هذه ملاحظة تصميمية رائعة جداً . حيث توضح أن البيانات المتغيرة يجب تقسيمها إلى نوعين بناءً على طبيعتها :- 🔹 النوع الأول وهو بيانات متغيرة تحتاج إلى تحديث مستمر في الجدول الأساسي . مثل الرتبة ، الوظيفة ، مكان العمل ، المؤهل ... إلخ . ويتم الاحتفاظ بأحدث قيمة داخل جدول الموظفين الرئيسي ، ويتم تحديثها عند حدوث تغيير . كما يتم تسجيل جميع الحركات السابقة في جدول منفصل ، بحيث يمكن الرجوع إليها عند الحاجة . برأيي هذه النقطة مهمة لأن البحث والتصفية على جدول واحد يكون أسرع وأسهل . أيضاً عند البحث عن بيانات حديثة لكل الموظفين ، لن تحتاج إلى جلب جميع الحركات السابقة ، بل فقط أحدث حالة لكل موظف . ويمكن تطبيق هذه الفكرة على سبيل المثال في الجدول personal_data ، أضافة حقول مثل :- current_rank ( الرتبة الحالية ) ، current_job ( الوظيفة الحالية ) ، current_workplace ( مكان العمل الحالي ) ، latest_qualification ( آخر مؤهل ) . وفي جداول الحركات ( مثل الترقيات والتعديلات ) ، يتم تسجيل جميع الحركات السابقة ، وعند حدوث تغيير جديد يتم تحديث الحقل المناسب في جدول الموظفين الرئيسي . 🔹 النوع الثاني من البيانات وهو بيانات مستقلة بالكامل . مثل الإجازات ، التدريبات ، الجزاءات ، العقوبات ... إلخ ، فهذه البيانات متغيرة لكنها لا تؤثر على المعلومات الأساسية للموظف بشكل مباشر . لكن لكل منها جدول مستقل ويتم ربطه بـ rkm_mlf . أيضاً هذه نقطة مهمة لأن الموظف يمكن أن يكون لديه عدد غير محدود من الإجازات والتدريبات والجزاءات ... إلخ ، وبالتالي لا يُفضل إضافتها إلى الجدول الرئيسي للموظفين . وكما أن الفصل بين البيانات يجعل الاستعلامات أكثر كفاءة ودقة ، حيث يمكنك البحث عن الإجازات دون التأثير على بيانات الموظفين الآخرين . وأيضاً يمكن تطبيق هذه الفكرة على سبيل المثال بحيث يكون لكل نوع بيانات جدول مستقل ، مثل :- Leave_data ( جدول الإجازات ) ، Training_data ( جدول التدريبات ) ، Penalty_data ( جدول الجزاءات ) ، Promotion_data ( جدول الترقيات ) . 💥 أما فيما يخص التسميات الخاصة بحقل الربط بين الجداول وكما أشار أستاذي @ابوخليل ؛ فبدلاً من استخدام rkm_mlf في جميع الجداول ، يمكن تسميته بشكل متمايز كما يلي :- rkm_mlf في جدول personal_data ( جدول الموظفين الرئيسي ) rkm_mlf_func في جدول functional_data rkm_mlf_qual في جدول qualification_data
-
نعم صحيح أخي الكريم .. وبالنسبة للجداول المتبقية ، فيفضل استخدامك لنفس الطريقة السابقة ، وطبعاً سيكون حقل المفتاح الفريد rkm_mlf هو الرابط بين الجداول لذا اربط الجداول كافة بجدول الموظفين لضمان تنظيم البيانات واسترجاعها بسهولة لاحقاً .
-
وعليكم السلام ورحمة الله وبركاته، بالنسبة لسؤالك حول وضع البيانات في جدول واحد أو توزيعها على عدة جداول ، فمن الأفضل استخدام 3 جداول منفصلة كما فعلت ( هذا بالنسبة لي طبعاً ) ، وذلك للأسباب التالية : 🔹 لماذا لا أفضل وضع البيانات في جدول واحد ؟؟؟ 1️⃣ تجنب تكرار البيانات :- إذا وضعت جميع البيانات في جدول واحد ، فقد تضطر إلى تكرار بيانات الموظف أكثر من مرة عند إضافة مؤهلاته أو تغيير بياناته الوظيفية . 2️⃣ تحسين الأداء وسهولة الاستعلامات :- الجداول الصغيرة تسهّل عمليات البحث والتحديث مقارنةً بجدول واحد ضخم يحتوي على بيانات مكررة . 3️⃣ التوسّع المستقبلي :- تقسيم البيانات يسهل إضافة ميزات جديدة مثل ترقيات الموظفين أو دورات تدريبية دون إعادة تصميم الجدول بالكامل . 🔹 ونقطة مهمة وهي كيف يتم الربط بين الجداول ؟؟؟ لضمان عمل الجداول بشكل صحيح ، يجب استخدام المفاتيح الأساسية (Primary Keys) والمفاتيح الأجنبية (Foreign Keys) كما يلي :- ✅ جدول البيانات الشخصية (Personal_data) :- اجعل rkm_mlf (رقم الملف) هو المفتاح الأساسي (Primary Key) ، لأنه فريد لكل موظف . ✅ جدول البيانات الوظيفية (Functional_data) :- أضف Functional_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . ✅ جدول المؤهلات (Qualification_data) :- أضف Qualification_ID (ترقيم تلقائي) كمفتاح أساسي . استخدم rkm_mlf كمفتاح أجنبي (Foreign Key) لربطه بجدول البيانات الشخصية . هذا وقد أكون قد غفلت عن شيء ، فإن كنت قد سهوت فعل الأخوة والأساتذة يساندني ويذكرها 😇 .
-
مشكلة عند وضع زر في الشاشة الرئيسية لفتح نموذج
Foksh replied to nahed amer's topic in قسم الأكسيس Access
وعليكم السلام ورحمة الله وبركاته ,, بدايةً من واجبي أن أنصحك بضرورة التقيد بسياسة وقوانين المنتدى من حيث :- 1. انتقاء العنوان المناسب والذي له دلالة على المشكلة . 2. الشرح الوافي والكافي للمشكلة . 3. ارفاق ملف للمشكلة لتتوضح للإخوة و الأساتذة اللذين يمروا في موضوعك . الآن بالنسبة للمشكلة ، فقد يكون هذا أحد عدة احتمالات ، منها :- 1. قد يكون النموذج الرئيسي يحتوي على نموذج فرعي يستخدم جدول ولنفترض Tbl_Customer وبنفس الوقت ان تحاول فتح نموذج آخر يستخدم نفس الجدول ، 2. قد يكون أيضاً مشكلة في قاعدة البيانات . هذا يعتمد على طريقة وبنية المشروع طبعاً -
تفضل المرفق التالي .. 2025.accdb
-
انصحك بالإستعانة بصورة معبرة بدلاً من استخدام مربع النص الخاص الناتج عن ActiveX
-
تجسيداً لفكرة معلمنا الفاضل @ابوخليل ، اعتقد إنها الفكرة الأفضل عند تعدد العملات ،حيث من خلال الإستعلام تستطيع حصر السجلات بشرط نوع العملة . انقر زر نوع العملة لتغييرها هي مجرد فكرة ذات نتائج أفضل عند تراكم السجلات !! test (4).accdb
-