-
Posts
946 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
10
Community Answers
-
Amr Ashraf's post in مشكلة في الكود ارجو التعديل was marked as the answer
اختصاراً للوقت قمت بعمل اللازم .. ركز معايا
تمت اضافة حقل جديد فى جدول المخازن warehouse اسمه DayRent يتم كتابة الايجار اليومى للمخزن مرة واحدة فقط وتعديله عند التعديل . وتم اضافة حقل جديد فى النموذج ليصبح بالشكل التالى : وبكده اصبح الرقم المسجل فى الجدول يتم تسجيله بجوار كل عملية ايجار ويقوم بحساب عدد الايام (اذا كتبت تاريخ بداية ونهاية) ويطلع اجمالى المطلوب من العميل تم اضافة جدول جديد لتسجيل المبالغ المستلمة من العملاء TblTransactions , ويتم التسجيل فيه بكود العميل والمبلغ المستلم والتاريخ . قمت باضافة بعض البيانات لتجربة طريقة الحساب تم عمل استعلام يحسب رصيد كل عميل ونوعه هل هو دائن او مدين . تم اضافة اللمسة النهائية على النموذج الاساسى ليصبح بهذا الشكل , عند اختيار اسم العميل يقوم بحساب ما له وما عليه فى الاسفل.
جرب ووافنى بالنتيجة .. مرفق القاعدة بعد التطوير
ولو انتا شغال بره مصر خدنى اشتغل معاكم وهظبطك 🤣 .. بالتوفيق
Renting Prog - Amr Ashraf v4.0.accdb
-
Amr Ashraf's post in ضبط وقت وتاريخ الجهاز من اكسيس عند الفتح was marked as the answer
على سبيل التجربة جرب ملف الاكسيس ده بدلاً من السابق ووافنى بالنتيجة .
datex.rar
-
Amr Ashraf's post in مشكلة فى تقرير (مطلوب عمل حقل تجميعي للاجماليات) was marked as the answer
عليكم السلام ورحمة الله وبركاته ..
فى ذيل التقرير انتا كاتب
=Nz(Sum([TotalAOT]),0) استبدلها ب
=Nz(Sum([Total]),0) النتيجة
ا
دوال الدمج مثل الجمع والعدد والمتوسط الخ .. فى التقرير ليس باسم عنصر التحكم ولكن باسم مصدر البيانات . بالتوفيق
-
Amr Ashraf's post in شرح : قوائم مختصرة منبثقة من ازرار التحكم Command Buttons Shortcut Menus was marked as the answer
السلام عليكم ..
#اضافة وتأكيد معلومة :
كما أشار استاذنا ابو خليل ان الطريقة ليست حصراً على الزر فقط ولكن لها تطبيقات اخرى كثيرة
يمكنك الاطلاع على المرفق لمزيد من التطبيقات على الفكرة ( قائمة عند الضغط على صورة - قائمة عند الضغط على F2 او F3 من الكيبورد - قائمة عند تحريك بكرة الماوس ) طبعاً مجرد امثلة والتطبيقات كثيرة جدا ..
ولشرح مفصل ووافى وبلمسة ابداعية لطريقة القوائم المختصرة ارشح لك موضوع استاذنا الكبير جعفر فى الرابط التالى :
دمتم بخير ..
Amr Magic Button V2.0.accdb
-
Amr Ashraf's post in مشكلة في إنشاء استعلام was marked as the answer
يعنى مثلا النتيجة هتكون كالتالى :
المخازن الغير مستخدمة طبقاً لبياناتك هى
شوف القاعدة المرفقة بها استعلام اسمه Qry
Database1-Amr.accdb
-
Amr Ashraf's post in كود لطباعة ملفات pdf فى مجلد مع البرنامج was marked as the answer
على بركة الله
اولا يتم عمل هذا الموديول وظيفته فتح الملف المطلوب وطباعته
Option Compare Database Option Explicit 'Written by Andrew Fergus 'set a reference to Windows Script Host Object Model ' ' agpuzon ' added x64 support ' Private Declare PtrSafe Sub Sleep Lib "kernel32" _ (ByVal dwMilliseconds As Long) Private Declare PtrSafe Function ShellExecute Lib _ "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As LongPtr Const SW_SHOWNORMAL = 1 Public Sub PrintAnyDocument(strPathAndFileNamePlusExtension As String) Dim dfltPrinter As String Dim newPrinter As Object ' Create a new WshNetwork object to access network properties. Set newPrinter = CreateObject("WScript.Network") 'Get the name of the default printer dfltPrinter = Printer.DeviceName 'Set the default to the new printer 'USE YOUR ACTUAL PRINTER NAME BELOW 'newPrinter.SetDefaultPrinter ("New Printer Name") 'Pause Sleep 100 'Print the pdf document 'USE YOUR ACTUAL DOCUMENT NAME & PATH BELOW Call ShellExecute(0, "print", strPathAndFileNamePlusExtension, "", 0, SW_SHOWNORMAL) 'Pause Sleep 2000 'wait for 2 seconds - increase this if the code doesn't appear to work 'Pause Sleep 100 'Set the printer back to the original default 'newPrinter.SetDefaultPrinter (dfltPrinter) End Sub ثانيا يتم استدعاء الكود بالطريقة التالية :
PrintAnyDocument "D:\اسم الفولدر\FileName.pdf" قمت بعمل نموذج طباعة وفيه حقلين نصيين اولهم اسم الملف المطلوب طباعته + الامتداد وبالتالى يمكنك طباعة اى ملف بأى امتداد ليس حصرا على PDF فقط
الحقل الثانى عدد مرات طباعة الملف
كود الطباعة بالشكل التالى :
Private Sub Command0_Click() Dim FPath, SFileName, x As String FPath = CurrentProject.Path SFileName = Me.XFileName x = FPath & "\" & SFileName If IsNull(Me.XFileName) Then MsgBox ("يجب اختيار ملف") Else Debug.Print x For i = 0 To Me.XTimes - 1 PrintAnyDocument x Next MsgBox ("تمت الطباعة" & SFileName) End If End Sub ملاحظات :
يجب ان يكون الملف فى نفس المسار مع القاعدة . هذه مجرد بداية على عجالة على قدر معرفتى الضئيلة وبالتالى هناك مساحة للتطوير بأكثر من طريقة على حسب الاحتياج (ممكن اختيار ملف بدلا من كتابة اسمه - عمل قائمة تحتوى على الملفات فى المسار ليتم الاختيار منهم - الخ ... ) . القاعدة مرفقة .. جرب ووافنى بالنتيجة
Print Any File.accdb
-
Amr Ashraf's post in if ممكن شرخ قاعده was marked as the answer
عليكم السلام ورحمة الله وبركاته .. ممكن تبحث فى المنتدى هتلاقى آلاف المواضيع اللى بتتكلم عنها ومع ذلك تفضل هذا الموضوع الغنى بالمعلومات القيمة هيفيدك جدا بأمثلة وشرح مبسط للغاية شارك فيه الاساتذة الكبار بارك الله فيهم :
بالتوفيق
-
Amr Ashraf's post in مساعدة عند الضغط انتر في الحقل عاوز الموشر ينزل على سجل جديد was marked as the answer
وعليكم السلام ورحمة الله وبركاته ..
جرب كده
Amr..12-1-2022.accdb
-
Amr Ashraf's post in مشكلة باستعلام جمع بأكثر من معيار was marked as the answer
تم الحل بفضل الله باستخدام هذا الاستعلام بدلا من QryFollowUp
SELECT qryPlans.PlanSerial, qryPlans.Client, qryPlans.ClcFromDate, qryPlans.ClcToDate, qryPlans.Code, qryPlans.Product, qryPlans.Qty, Nz((select Sum(QtyOut) From qrySales AS T Where T.Code = QryPlans.[Code] And (T.zDate >= qryPlans.[ClcFromDate] And T.zDate <= qryPlans.[ClcToDate])),0) AS Out, [Qty]-Nz((select Sum(QtyOut) From qrySales AS T Where T.Code = QryPlans.[Code] And (T.zDate >= qryPlans.[ClcFromDate] And T.zDate <= qryPlans.[ClcToDate])),0) AS Remains FROM qryPlans; الحل من موقع اجنبى كنت قد عرضت مشكلتى عليه .. جزاكم الله خير
-
Amr Ashraf's post in مساعدة في جلب اسم للزر من الجدول was marked as the answer
وعليكم السلام ورحمة الله وبركاته .. تفضل
b.accdb
-
Amr Ashraf's post in استفسار عن تسلسل بشروط .. Count IIF؟؟ was marked as the answer
واضح ان الاساتذة مشغولين أعانهم الله .. جزاكم الله خير جميعا على مروركم الكريم
-
Amr Ashraf's post in كود بسيط في قاعدة if was marked as the answer
وعليكم السلام .. فى زر الخروج اضف الكود التالى مثلا
If IsNull(Me.txit1) = True then docmd.close else cancel=msgbox("لا يمكن الخروج لوجود قيمة بالحقل") end if end sub
-
Amr Ashraf's post in المساعدة ان تظهر كلمة مدين اذا كان المدين اكبر من الدائن عند الرصيد was marked as the answer
ماشى ماشى
خلاص عرفت قصدك هشوف كده وارجعلك
جرب ياباشا كده فى حالة ان الحقل فارغ ومفيش سجلات مش هيعمل حاجة اما لو 0 هيجيبلك لا يوجد رصيد
مدين ودائن.rar
-
Amr Ashraf's post in كيف يمكن تحويل معادلة عد حقل نصي إلي عد حقل رقمي was marked as the answer
تفضل جرب
غائب: Val(Nz(DCount("[Sit_no]";"الدور الثاني";"[School_code]= " & [School_code] & "and code_kyab >5");0)) وياريت تشوف المشاركة دى هتفيدك
-
Amr Ashraf's post in هل الحماية بهذا الشكل تكون جيدة was marked as the answer
طريقتها سهلة اخى الكريم بس ركز معايا
اعمل Splitt للقاعدة ثم تعالا على الجزء اللى فيه الجداول واعمل ايه باسوورد زى اى قاعدة بيانات
تعاالا على الجزء اللى فيه النماذج والتقارير وحدد الجداول كلها وامسحها
فى الجزء الخاص باستيراد الجداول اختار استيراد من الأكسس ثم علم على العلامة Link Tables وليس Import واختار القاعدة اللى فيها الجداول هيطلب منك الباسوورد اللى انتا عملته فى الأول اكتبه
بعدها هتلاقيه ارتبط بالجداول بطريقة طبيعية جدا مع الاحتفاظ بالباسوورد على الجداول
لو لقيت العملية صعبة او مش واضحة قول وانا اصورهالك لما الاقى وقت عندى بالتوفيق
-
Amr Ashraf's post in بحاجة الى آخر تاريخ لكل سيارة was marked as the answer
ازاى مش بيفتح تانى واحد يحصل معاه المشكلة دى معى على العموم شوف الصورة
الاستعلام هيجيب لك رقم كل سيارة مع اخر تاريخ للزيت لعله المطلوب
-
Amr Ashraf's post in تعديل معادلة حسابية تلقائياً was marked as the answer
اخوانى بعد القليل من التركيز اكتشفت حل ابسط بكثير مما توقعت الحل كان كالتالى :
1- قمت بانشاء استعلام جديد لجلب الرصيد واضفت ليه حقل تاريخ
2-اضفت شرط لحقل التاريخ انه اقل من حقل التاريخ الموجود فى التقرير وستعرف لماذا
3-بالنسبة للتقرير جعلت حقل الرصيد بعد الحركة غير منضم وكتبت فيه دالة Dlookup من الاستعلام السابق الاشارة ايه وبالتالى عند احضار القيمة من الاستعلام يقوم بتحقيق شرط التاريخ فى الاستعلام اولا وبالتالى يحضر اخر قيمة للرصيد كانت موجودة فى تاريخ قبل التاريخ الموجود فى التقرير ويضيف عليه الحركة الجديدة وقمت ايضا باضافة دالة Nz لدالة Dlookup لاحضار قيمة "0" اذا لم يكن هناك ناتج من الاستعلام وبالتالى تظل المعادلة سليمة
وبالتالى وصلنا للنتيجة المطلوبة فى حالة اضافة حركة بتاريخ سابق او تعديل تاريخ حركة حالية تكون طريقة الحساب عن طريق التقرير بترتيب التواريخ وليست عن طريق نماذج او جداول .... تمت الحمد لله ونشكر كل الاساتذة الافاضل على المشاركة فى الحل دمتم بخير