اذهب الي المحتوي
أوفيسنا

Ahmed.IQ

الخبراء
  • Posts

    391
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل منشورات العضو Ahmed.IQ

  1. السلام عليكم ورحمة الله وبركاته بدأت بعمل برنامج مبيعات لسوبر ماركت وعند عمل الفاتورة كانت هناك مشكلة تحديث اجمال الفاتورة في رأس الفاتورة يجب ان اذهب الى حقل واضغط عليه ليتم تحديث اجمالي الفاتورة فجاءت فكرة تحديث اجمالي الفاتورة عن طريق الاستعلام لكن واجهتني مشكلة اخرى هيا سرعة المعالجة حيث ان التحديث يتم قبل ان يتم احتساب المجموع في الحقل المسؤول عن الجمع . لذا بحثت عن تايمر ووجدته مشروح لدى اخ بارك الله فيه قمت بستخدام التايمر واصبح تحديث اجمالي الفاتورة في السجل يتم خلال واحد ثانية :) اذا كان هناك طرق اخرى افضل ياريت الافادة للجميع تحديث اجمالي الفاتورة عن طريق التايمر.accdb
  2. نعم لتجاوز هذا الامر قم بأستخدام الكود التالي بفرض ان الفورم الذي تود اضافة الزر فيه اسمه T On Error GoTo Err: DoCmd.OpenForm "t", acDesign, , , , acHidden Dim db As DAO.Database Dim frm As Form Dim newBt As Control Dim i As Long, j As Long Set frm = Application.Forms(1) 'For i = 0 To 1 For j = 1 To 1 Set newBt = CreateControl("T", acCommandButton, Left:=100 + 3000, Top:=500) Set newBt = Nothing Next j 'Next i DoCmd.Close acForm, "T", acSaveYes Err: MsgBox Err.Number
  3. شكراً استاذ محمد انا حليتها عن طريق افتر ابديت للفورم بشكل كامل وادت المطلوب
  4. تفضل كود لانشاء زر جديد بشرط ان يكون النموذج في وضع التصميم ويمكن ان ينشاء الزر من نموذج اخر On Error GoTo Err: Dim db As DAO.Database Dim frm As Form Dim newBt As Control Dim i As Long, j As Long Set frm = Application.Forms(1) 'For i = 0 To 1 For j = 1 To 1 Set newBt = CreateControl("أسم النموذج", acCommandButton, Left:=100 + 3000, Top:=500) Set newBt = Nothing Next j 'Next i Err: MsgBox Err.Number الكود كان يعمل الضافة زرين بنفس المستوى الان يضيف زر واحد
  5. السلام عليكم ورحمة الله سؤال اخواني الاعزاء كيف يتم معرفة اذا كان المستخدم ادخل بيانات او عدلت بيانات أم لم يقم بعمل اي شي داخل نموذج مستمر ؟ هل هناك امكانية لمعرفة هذا الامر
  6. حلي بسيط اقوم بعمل استعلام تحديث لحقل المجموع داخل الجدول بشرط رقم الفاتورة بعد حدث بعد التحديث
  7. هيا نفس فكرة لاخ ابو ايمن يحتاج ينقل المجموع الى الجدول على العموم انا حليت الموضوع والحمد الله وكتبت الحل فوق ولو الاخ ابو ايمن يحتاج تفسير اكثر انا حاظر شكرا لك اخي ابو زاهر والاخ عبداللطيف على تعاونكم
  8. اخواني الكرام شكراً لتعبكم لكن الفكرة هيا . كيف راح نقوم بحفظ المجموع في جدول رأس الفاتورة بعد كل اضافة للاصناف تتم في النموذج الفرعي . الطريقة التي تم ذكرها من قبلكم انا اعرفها هيا عمل حقل غير منظم وجعل مصدرة هوا حقل في النموذج الفرعي مسؤول عن جمع المبالغ
  9. شوفي اخي افضل طريقة تعمل حقل غير منظم في النموذج الرئيسي وتعمل مصدرة حقل الجمع في النموذج الفرعي . بعدين تروح تعمل استعلام تحديث لحقل التوتل في الجدول 1 بشرط رقم الفاتورة. بعدها في حدث بعد التحديث او عند التغير لحقل الصنف تشغل استعلام التحديث وراح يحدث لك القيمة بعد كل مرة تختار صنف اخي ابو زاهر لم يحدث المجموع في النموذج الرئيسي . بارك الله بك انا حليتها بطريقة مطولة اشوي
  10. تفضل اخي ابو زاهر اضافة قيمة لحقل عن طريق حقل بالنموذج الفرعي.accdb
  11. اخ ايمن لا تنفع هذه الطريقة جربتها
  12. نفس المشكلة الي عندي .. محتاج ان اظهر نتيجة المجموع مبلغ الفاتورة لحقل منظم في رأس الفاتورة بالاعتماد على الحقل في ذيل الفاتورة الي هو نموذج فرعي بحاول فيه من الصبح ما ضبط معي :) انا اقل بعد زر الحفظ اخلي النتيحة تساوي النتيجة بالحقل عن طريق عمل حقل غير منظم وجعل مصدرة الحقل الي يجمع لي في النموذج الفرعي لكن محتاج اظهر صافي الفاتورة بعد كل عملية اضافة صنف
  13. جرب الكود التالي me.text1 = السنة me.text3 = الشهر واليوم Dim fs, cf, strFolder strFolder = CurrentProject.Path & "\" & "Image" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "'لم يتم انشاء المجلد" Else MsgBox "'" & strFolder & "'تم انشاء المجلد" End If End If strFolder = CurrentProject.Path & "\Image" & "\" & "" & Me.Text1 & "" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "'تم انشاء المجلد " Else MsgBox "'" & strFolder & "'لم يتم انشاء المجلد" End If End If strFolder = CurrentProject.Path & "\Image\" & Me.Text1 & "" & "\" & "" & Me.Text3 & "" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "' تم انشاء المجلد" Else MsgBox "'" & strFolder & "'لم يتم انشاء المجلد" End If End If
  14. الحقل المخفي راح نستخدمه في تسمية المجلد حسب السنين والكود الي تقصده =Year(Date()) اذا كان هوا الي تقصده فا راح نعتمد عليه بستخراج السنة حسب وقت الكومبيوتر يعني السنة في الكومبيوتر تقره 2018 راح يكون الحقل بداخله 2018 ولازم تحط الكود هذا في مصدر الحقل
  15. حسب الحدث الي انت محتاجة بخصوص المسار الكود يقرة حسب مكان قاعدة البيانات لو انت تحتاج الى مسار ثابت استغنى عن المسار الافتراضي لقاعدة البيانات وضع المسار الي انت تحدده . بخصوص التسمية سهله اجعل الكود عند الفتح النموذج وجعل لك حقل مخفي وعطية اسمه مثل YearName يكون مصدر بياناته =Year(Date()) وبدل حقل test ضع الكود التالي "" & Me.YearName & "" راح ياخذ يحفظ لك الفايل بأسم السنة
  16. فقط تقوم بتكرار الكود حسب رغبتك Dim fs, cf, strFolder strFolder = CurrentProject.Path & "\" & "Image" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "' تم انشاء المجلد في المسار التالي " Else MsgBox "'" & strFolder & "'لم يتم انشاء المجلد" End If End If strFolder = CurrentProject.Path & "\Image" & "\" & "test" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "' تم انشاء المجلد في المسار التالي " Else MsgBox "'" & strFolder & "'لم يتم انشاء الملجد" End If End If
  17. هذا كود اننشاء مجلد واحد Dim fs, cf, strFolder strFolder = CurrentProject.Path & "\" & "Image" Set fs = CreateObject("Scripting.FileSystemObject") If fs.FolderExists(strFolder) = False Then Set cf = fs.CreateFolder(strFolder) If fs.FolderExists(strFolder) = True Then MsgBox "'" & strFolder & "' تم انشاء المجلد في المسار" Else MsgBox "'" & strFolder & "'لم يتم انشاء المجلد في المسار" End If End If
  18. السلام عليكم ورحمة الله هل هناك كود لتفعيل حدث BeforeUpdate لسب فورم انا واضع كود في السب فورم في حدث قبل التحديث ومحتاج افعل الحدث عن طريق كود بالفيجول بيسك هل هناك امكانية لعمل هكذا امر
  19. السلام عليكم ورحمة الله المرفق صورة لشكل ليست بوكس او ساب فورم لكن حاولت وبحثت عن طريقة للتصميم بهذا الشكل لم اجد خصوصا الازرار للنتقال من اليمين الى اليسار بحيث يظهر جميع النتائج الموجوده باليست بوكس بدل ان تنزل السكوير او ترفعه تحولها يمين او يسار
  20. شكراً اخ ابو زاهر . المشكلة كانت في ان الكود لو تم عمل التحديث من خلال حقول في النموذج غير منضمة سيتوقف عن عمل الدورة الكاملة في السجل , لذا قمت بتعديل بعض الامور ولاستغناء عن الحقول في النموذج وعمل التحديث عن طريق الكود . حاليا يقوم بتحديث حقلين بنفس السجل الكمية والسعر حسب متوسط السعر المرجح ويعمل بشكل جديد لو كان هناك اكثر من كود في النموذج وهذا شكل الكود النهائي . شكرا لك وشكرا للاخ الذي عمل الكود في المنشور الذي وضعته في التعليق نسئل الله ان يجعلة في ميزان حسناتكم. On Error GoTo enderr DoCmd.SetWarnings False 'النموذج Set Rs = Forms![form1]![F_ReceiptDetails].Form.RecordsetClone 'الجدول للتحري Set RsEdit = CurrentDb.OpenRecordset("T_items") Rs.MoveFirst 'دوران Do While Not Rs.EOF RsEdit.MoveFirst 'دوران للجدول Do Until RsEdit.EOF 'اذا وجد السجل If RsEdit!ID = Rs!IDIt Then 'تحرير RsEdit.Edit RsEdit!Stok = RsEdit!Stok + Rs!Quantity RsEdit!AmountRe = ((RsEdit!Stok - Rs!Quantity) * (RsEdit!AmountRe) + (Rs!Amount * Rs!Quantity)) / RsEdit!Stok RsEdit.Update End If RsEdit.MoveNext Loop Rs.MoveNext Loop Set Rs = Nothing Set RsEdit = Nothing DoCmd.SetWarnings True MsgBox " تم تحديث البينات ", vbInformation, "تم " Exit Sub enderr: MsgBox " لم يتم تحديث البيانات ", vbInformation, "لم يتم التعديل" DoCmd.SetWarnings True
  21. ابو زاهر شكرا على الرد اخي . اخذ نفس الكود لكن الوب لا يعمل يحدث اول سجل ويتوقف لم اعرف ما هيا المشكلة النموذج الرئيسي اسمه form1 النموذج الفرعي اسمه F_ReceiptDetails الجدول اسمه T_items الجداول التي احتاج الى تعديلها داخل الجدول stok وا amount الحقول التي سيتم اخذ المعلومات الجديده منها لغرض تحديث الحقول في الجدول هيا stoknew و amountnew بشرط ان id داخل الجدول يساوي idit داخل النموذج الفرعي وهذا الكود بعد التعديل عليه On Error GoTo enderr DoCmd.SetWarnings False 'النموذج Set Rs = Forms![form1]![F_ReceiptDetails].Form.RecordsetClone 'الجدول للتحري Set RsEdit = CurrentDb.OpenRecordset("T_items") Rs.MoveFirst 'دوران Do While Not Rs.EOF RsEdit.MoveFirst 'دوران للجدول Do Until RsEdit.EOF 'اذا وجد السجل If RsEdit!ID = Me.F_ReceiptDetails!IDIt Then 'تحريره RsEdit.Edit RsEdit!Stok = Me.F_ReceiptDetails!Stoknew RsEdit.Update ' RsEdit.Edit ' RsEdit!AmountRe = Me.F_ReceiptDetails!Amountnew ' RsEdit.Update End If RsEdit.MoveNext Loop Rs.MoveNext Loop Set Rs = Nothing Set RsEdit = Nothing MsgBox " تم تعديل السجلات الى الجدول بنجاح ", vbInformation, "تم " Exit Sub enderr: MsgBox " خطا في البيانات ", vbInformation, "لم يتم التعديل" DoCmd.SetWarnings True
  22. السلام عليكم ورحمة الله عندي جدول اصناف وفيه عدة حقول منها حقل السعر وحقل الكمية عندي نموذج مستمر ممكن افتح في النموذج الواحد خمسة اصناف او اكثر ودخل الكميات المشتراة واسعارها الجديده محتاج انو اعمل استعلام تحديث يعمل عن طريق زر ويحدث الكميات الموجوده في النموذج واكيد بالاعتماد على كود الصنف يحدث الكمية انا عملت استعلام لكنه يقوم بتحديث اول قيمة فقط يعني ياخذ اول قيمة من النموذج المستمر ويتوقف ويترك باقي الاصناف لا يقوم بتحديثها . هل هناك نجعل استعلام التحديث يحدث كافة الاصناف الموجوده بالنموذج وليس اول صنف فقط؟
  23. السلام عليكم ورحمة الله وبركاته عندي سؤال كيف يمكن ان اصدر بيانات جدول الى عدة صفحات داخل اكسيل او عدة اكسيلات لو فرضنا عند بيانات بجدول وكانت البيانات الموجوده في الجدول تحتوي على ترقيم والبيانات الموجوده 1000 سجل لو احتاجت الى حفظ من 1 الى 250 في الصفحة الاولى او الاكسيل الاول ومن 251 الى 500 في الصفحة الثانية او الاكسيل الثاني ومن 501 الى 750 في الصفحة الثالثة او الاكسيل الثالث ومن 751 الى 100 في الصفحة الرابعة او الاكسيل الرابع هل هناك طريقة لتصدير البيانات من الجدول الى الاكسيل بهذه الطريقة ؟
  24. بارك الله بك اخي الكريم حل موفق
  25. السلام عليكم ورحمة الله وبركاته لدي استفسار حول دالة Like انا وضعت شرط في الاستعلام تحت حقل يحتوي على ارقام فقط وكتبت الدالة Like "*" & Forms!Form1!text0 & "*" فا لو كتبت بالحقل الي ابحث عنه رقم 1 راح يجيبلي 1 و 1 و 12 و 13 وايضا 31 و 21 الخ. كيف يمكن اتجاوز هذه الحالة حيث محتاج انو لو كتبت الرقم يفلتر على حسب الرقم ولو لم اكتب شي يفلتر ايضاً ويظهر النتائج لجميع الارقام الموجوده بالحقل وشكراً للجميع
×
×
  • اضف...

Important Information