اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

jjafferr

أوفيسنا
  • Posts

    9,756
  • تاريخ الانضمام

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

  • Days Won

    396

Community Answers

  1. jjafferr's post in تعديل في الكود was marked as the answer   
    جرب هاي :
    بدل هذا السطر Set Rst1 = db1.OpenRecordset("temp", dbOpenSnapshot) اكتب هذا السطر Set Rst1 = db1.OpenRecordset("Select * FROM temp ORDER BY stuname", dbOpenSnapshot)  
    جعفر
  2. jjafferr's post in تعديل في الكود was marked as the answer   
    جرب هاي :
    بدل هذا السطر Set Rst1 = db1.OpenRecordset("temp", dbOpenSnapshot) اكتب هذا السطر Set Rst1 = db1.OpenRecordset("Select * FROM temp ORDER BY stuname", dbOpenSnapshot)  
    جعفر
  3. jjafferr's post in تعديل في الكود was marked as the answer   
    جرب هاي :
    بدل هذا السطر Set Rst1 = db1.OpenRecordset("temp", dbOpenSnapshot) اكتب هذا السطر Set Rst1 = db1.OpenRecordset("Select * FROM temp ORDER BY stuname", dbOpenSnapshot)  
    جعفر
  4. jjafferr's post in معيار باسم مستعار فى الاستعلام لقاعدة IF was marked as the answer   
    ممكن عمل هذا الكود في الاستعلام ، ولكنك وبسبب اللغة العربية في الكود ، فلن تعرف ان تغير شيء لاحقا ،
    لهذا السبب ، الافضل عمل وحدة نمطية ، ويمكنك تعديلها بكل بساطة ،
    اسميتها qry_values ، ونرسل لها قيمة الحقل من الاستعلام (في المثال السابق ، اسم الحقل كان 2020 ) ، وفي الوحدة النمطية تسمية هذا المتغير هو H :
    Public Function qry_values(H As Integer) As String If H = 0 Or Len(H & "") = 0 Then ' Zero and Null qry_values = "لا يوجد" ElseIf H = 7 Then ' any other value qry_values = "تم الانتهاء" Else ' return the original value qry_values = H End If End Function .
    ثم نناديها من الاستعلام ، هكذا :

    .
    والنتيجة :

     
    جعفر
    1306.مثال.accdb.zip
  5. jjafferr's post in اضافة كلمة لا يوجد فى حقل رقمى was marked as the answer   
    وعليكم السلام 🙂
     
    تفضل :
    R: IIf([2020]=0,"Nothing",[2020]) .

    .
    والنتيجة :

    .
    جعفر
  6. jjafferr's post in انشاء اختصار للبرنامج على سطح المكتب was marked as the answer   
    وعليكم السلام 🙂
     
    ما كنت ادري اني عملت هذا المثال 😁
     
    بحثت ونزلت ايقونة هذا الدبدوب

    .
    ووضعتها في نفس مجلد البرنامج (انا كسلان ، ما اردت ان اغير مسار الايقونه في الكود 🙂 ) :

    .
    وعليه ، غيّرت السطرين في الكود ، علشان:
    اشير الى اسم الايقونه الجديدة ، والاسم اللي اريده يظهر على سطح المكتب 
    .
    وهذا كود الوحدة النمطية بالكامل :
    Function Make_Desktop_Shortcut() 'With CreateObject("WScript.Shell") ' With .CreateShortcut(.SpecialFolders("Desktop") & "\Export_to_Excel.lnk") ' .TargetPath = "C:\Stuff\Test.mdb" ' .WindowStyle = 1 ' .Hotkey = "" ' .IconLocation = "C:\Test\Test.ico, 0" ' .Description = "Test Icon Substitution" ' .WorkingDirectory = "C:\Stuff\" ' .Save ' End With 'End With DB_Name = Application.CurrentProject.Name DB_Path = Application.CurrentProject.Path 'icon_Name = "Arc5.ico" icon_Name = "Gingerbread-Bear.ico" icon_Path = Application.CurrentProject.Path icon_Name_Path = icon_Path & "\" & icon_Name With CreateObject("WScript.Shell") 'With .CreateShortcut(.SpecialFolders("Desktop") & "\Export_to_Excel.lnk") With .CreateShortcut(.SpecialFolders("Desktop") & "\دبدوب.lnk") .TargetPath = DB_Path & "\" & DB_Name .WindowStyle = 1 .Hotkey = "" .IconLocation = icon_Name_Path .Description = "Done by jj" .WorkingDirectory = DB_Path & "\" .Save End With End With End Function .
    وعلى سطح المكتب تشوف تجاربي :

     
    جعفر
  7. jjafferr's post in طريقة وضع الصورة في التقرير was marked as the answer   
    هناك طريقتين:
    1. اذا كانت الاسطر في الصورة متساوية ، ويمكن عمل المربع حول السطر ، وهذا المربع ينزل بعدد معين لكل سطر ، فيمكن تحريكه برمجيا / مثلا :
    نضبط المربع على السطر الاول ، ثم ننزله بالاسهم (Arrow keys down) الى ان يحتوي السطر الثاني (مثلا ضغطنا على السهم الاسفل 6 مرات) ، فيجب ان نضغط 6 مرات اخرى حتى نحتوي السطر الثالث ، وهكذا (ولكن وللأسف الاسطر في الصورة غير متساوية ، فلا يمكن استعمال هذه الطريقة ،
    2. ان نعمل جدول خاص ، نكتب فيه رقم السطر (المثال على السطر 15) ، ونكتب قيمة TOP المربع ،
    نضع التقرير في وضع التصميم ، ثم نحركة بواسطة الاسهم ، ولما يحتوي المربع السطر ، نكتب رقم السطر وقيمة TOP ، وهنا يمكننا استخدام هذه الطريقة :
     
    .
    وهذه نتيجة الضغظ على "رقم التسجيل" 4 (للعلم ، جربت اللون الاصفر ولا يبرز ، فاستعملت اللون الاحمر) :

    .
    ولأن الصورة في قسم Page Header ، فيجب ان نعمل حدث "عند التنسيق" به :

    .
    و الكود في التقرير يأخذ قيمة TOP رقم التسجيل من الجدول ،
    ثم نضرب الرقم (رقمي بالبوصة * 1440 ، بينما لو كان رقمك بالسنتيمتر فيكون * 567 ) :
    Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) Dim rpt_Top As Double Dim rpt_Name As String Dim myWhere As String rpt_Top = DLookup("[rTop]", "tbl_rpt_Rows", "rRow=" & rpt_Row) Me.Box5.Top = rpt_Top * 1440 End Sub .
    ونكون قد ارسلنا "رقم السجل" من النموذج الفرعي الى المتغير rpt_Row رقم سطر التسجيل :
    Private Sub أمر180_Click() 'Call MENUFORMS1991 Dim rpt_Name As String Dim myWhere As String rpt_Row = Me.[رقم التسجيل] rpt_Name = "تقرير1" myWhere = "" DoCmd.OpenReport rpt_Name, acViewPreview, , myWhere End Sub .
    جعفر
    1298.سجل.accdb.zip
  8. jjafferr's post in مشكلة الترقيم بعد توزيع ملف اكسس على الاجهزة على الشبكة was marked as the answer   
    السلام عليكم 🙂
     
    اعتقد بأني توصلت لحل ، وبعد عدة محاولات على الشبكة ، على كمبيوترين 🙂
     
    1. النموذج ، تم حذف الجدول CustomersT من استعلام النموذج :

    .
    2. الكومبوبوكس يقوم بإعطاء قيمة اسم الزبون CustomerName ،
    3. تم حذف امر حفظ السجلات من الوحدة النمطية ، لأنها لم تكن على سجل النموذج ، فإنها لا تحفظ السجل المطلوب ،
    4. تم استعمال هذا الكود لحفظ الترقيم :
    Private Sub New_Invoice() On Error GoTo err_New_Invoice Try_Again: If Me.NewRecord Then Me.InvoiceNum = Next_Seq("A") DoCmd.RunCommand acCmdSaveRecord End If Exit_New_Invoice: Exit Sub err_New_Invoice: If Err.Number = 3022 Then Dim PauseTime, Start PauseTime = 0.5 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Resume Try_Again Else MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_New_Invoice End Sub .
    ولما البرنامج يلاحظ وجود تكرار في الرقم ، فإنه يذهب الى رقم الخطأ (3022 كما ذكره اخونا حسام) ، وهنا ينتظر 0.5 (نصف ثانية ، ويمكنك تقليلها ، وبالتجربة ستعرف الرقم الاصح ، والافضل ان تتركه كما هو) ، ثم يعاود المحاوله في الحصول على ترقيم جديد غير مكرر (وهذا الكود وضعته في حدثين) ، وتم تجربته عدة مرات واثبت جدارته 🙂
     
    البرنامج بعده طازه وطالع من الشبكة ، فلازم تعمل له ربط للجداول قبل تشغيله ، فهو بدون جداول 🙂
     
    جعفر
     
    1282.1.InvoiceSale_6_FE.accdb.zip
  9. jjafferr's post in مناداة المتغير في الاستعلام عن طريق موديول آخر was marked as the answer   
    وعليكم السلام 🙂
     
    نعم ، جوابك ، هو قصدي مما قلته انا ،
    اما TempVars فهو موجود في الاكسس 2007 فما فوق ، وهو جدا مفيد واستعماله جدا سهل ، ولا يحتاج الى موديول لمناداته .
     
    جعفر
  10. jjafferr's post in طلب كود تحديد موقع النموذ الفرعي وارتفاعه وعرضه was marked as the answer   
    الحمدلله 🙂
     
     
    1. اذا الارقام في اعدادات الكائن فيه cm (ما اعرف بالاكسس العربي شو يكتب!! ) فانت بالسنتيمتر ، واذا فيه " فانتبنظام البوصة ، او انظر الى اعدادات النظام :

    .
    2. مالك شغل في الجهاز الآخر ، اشتغل على نظام جهازك ، والاكسس تلقائيا يغيره لأي نظام آخر 🙂
    هذا نظامي:

    .
     
    مثال ، اريد ان اضع التقرير الفرعي هنا :

    .
    فاستعملت حدث الزر امر3 :

    .
    والنتيجة :

    .
    تفضل انت ، افتح المرفق وانقر على الزر واخبرنا النتيجة 🙂
     
    جعفر
    1295.mov.accdb.zip
  11. jjafferr's post in السلام عليكم ..كيف يمكن فصل الارقام التي بعد / من اليمين في المثال المرفق was marked as the answer   
    وعليكم السلام 🙂
     
    تفضلي 🙂

    .

    .
    والاستعلام:
    SELECT numbers.textnumbers, Mid([textnumbers],1,InStr([textnumbers],"/")-1) AS L, Mid([textnumbers],InStr([textnumbers],"/")+1) AS R FROM numbers;  
    جعفر
  12. jjafferr's post in سؤال يخص التقرير was marked as the answer   
    وعليكم السلام بشمهندس 🙂
     
    عملت لك برنامج خاص 🙂
     
     
    جعفر
  13. jjafferr's post in عمل عدة تقارير فى صفحة واحدة was marked as the answer   
    تفضل 🙂
     
    التقرير مبني على اساس الاستعلام qry_Group ، والذي يمكنك وضع المعايير فيه ،
     
    هكذا التقرير قي وضع التصميم :

    .
    وعلى حسب العرض المتوفر ، نعمل عدد الاعمدة :

    .
    والنتيجة :

    .
    جعفر
    1290.السجل.accdb.zip
  14. jjafferr's post in استعلام تاريخ متتالي was marked as the answer   
    السلام عليكم 🙂
     
    ومثل ما قال الاخ Kanory ، وببعض التعديل على الكود ليتناسب مع اسماء الحقول 🙂
     
    جعفر
    1274.t_fdate.mdb.zip
  15. jjafferr's post in استعلام تاريخ متتالي was marked as the answer   
    السلام عليكم 🙂
     
    ومثل ما قال الاخ Kanory ، وببعض التعديل على الكود ليتناسب مع اسماء الحقول 🙂
     
    جعفر
    1274.t_fdate.mdb.zip
  16. jjafferr's post in استعلام تاريخ متتالي was marked as the answer   
    السلام عليكم 🙂
     
    ومثل ما قال الاخ Kanory ، وببعض التعديل على الكود ليتناسب مع اسماء الحقول 🙂
     
    جعفر
    1274.t_fdate.mdb.zip
  17. jjafferr's post in تكبير النموذج بدون تغطية شريط قائمة إبدأ was marked as the answer   
    استعمل نماذج عادية بدون لمس هذه الاعدادات ، لأن الازرار التي تظهر في البرنامج هي ازرار البرنامج وليس النماذج ،
  18. jjafferr's post in ماهو بديل الأمر Refresh was marked as the answer   
    السلام عليكم 🙂
     
    تفضل 🙂

    .
    واستعمل الاستعلام qry_Group_Shifts_by_Dates كمصدر بيانات ، وتقدر تعمل به التقرير او النموذج الذي تشاء.
     
    جعفر
    1281.4.FRm_Refresh.accdb.zip
  19. jjafferr's post in مساعدة فى تطبيق DCOUNT داخل استعلام was marked as the answer   
    السلام عليكم 🙂
     
    اولا خليني ادافع عن نفسي واخبرك سبب التأخير 🙂
     
    الجدول الاول مستحيل تكون نتائجة مثل ما هو موضح في الجدول الثاني ، لأن الفرع ليس نفسه في كل السجلات ، بينما الجمع في الجدول الثاني كان على اعتبار ان جميع الفروع هي نفسها (شوف اسم الفروع اللي عليها السهم ، فهي مختلفة) 🙂
    وهذا اخذ مني بقية الشعر اللي على راسي ، من كثر ما حكيت رأسي بالمعادلات والنتائج الخطأ 😁

    .
     
    والان الى الحل:
    1. عملت استعلام مجاميع لكل مجموعة ،المجموعة الاولى للتاريخ ، والثانية للشهر ، بينما الاستعلام الثالث هو لحقول الجدول :

    .
    والنتيجة

    .
    وعملنا استعلام اخير لجمع هذه الاستعلامات الثلاث:
    .
    والنتيجة

    .
    جعفر
    1285.DCOUNT.mdb.zip
  20. jjafferr's post in مساعدة فى تطبيق DCOUNT داخل استعلام was marked as the answer   
    السلام عليكم 🙂
     
    اولا خليني ادافع عن نفسي واخبرك سبب التأخير 🙂
     
    الجدول الاول مستحيل تكون نتائجة مثل ما هو موضح في الجدول الثاني ، لأن الفرع ليس نفسه في كل السجلات ، بينما الجمع في الجدول الثاني كان على اعتبار ان جميع الفروع هي نفسها (شوف اسم الفروع اللي عليها السهم ، فهي مختلفة) 🙂
    وهذا اخذ مني بقية الشعر اللي على راسي ، من كثر ما حكيت رأسي بالمعادلات والنتائج الخطأ 😁

    .
     
    والان الى الحل:
    1. عملت استعلام مجاميع لكل مجموعة ،المجموعة الاولى للتاريخ ، والثانية للشهر ، بينما الاستعلام الثالث هو لحقول الجدول :

    .
    والنتيجة

    .
    وعملنا استعلام اخير لجمع هذه الاستعلامات الثلاث:
    .
    والنتيجة

    .
    جعفر
    1285.DCOUNT.mdb.zip
  21. jjafferr's post in مساعدة فى تطبيق DCOUNT داخل استعلام was marked as the answer   
    السلام عليكم 🙂
     
    اولا خليني ادافع عن نفسي واخبرك سبب التأخير 🙂
     
    الجدول الاول مستحيل تكون نتائجة مثل ما هو موضح في الجدول الثاني ، لأن الفرع ليس نفسه في كل السجلات ، بينما الجمع في الجدول الثاني كان على اعتبار ان جميع الفروع هي نفسها (شوف اسم الفروع اللي عليها السهم ، فهي مختلفة) 🙂
    وهذا اخذ مني بقية الشعر اللي على راسي ، من كثر ما حكيت رأسي بالمعادلات والنتائج الخطأ 😁

    .
     
    والان الى الحل:
    1. عملت استعلام مجاميع لكل مجموعة ،المجموعة الاولى للتاريخ ، والثانية للشهر ، بينما الاستعلام الثالث هو لحقول الجدول :

    .
    والنتيجة

    .
    وعملنا استعلام اخير لجمع هذه الاستعلامات الثلاث:
    .
    والنتيجة

    .
    جعفر
    1285.DCOUNT.mdb.zip
  22. jjafferr's post in التعديل على كود مسار حفظ ملف بصيغة PDF الى سطح المكتب was marked as the answer   
    السلام عليكم 🙂
     
    قمت بدمج دالة اخوي ابوخليل الى برنامجك 🙂
     
    Private Sub Command44_Click() Dim reportName As String Dim fileName As String Dim criteria As String reportName = "r_buy" fileName = GetDesktop & "\" & "r_buy" & ".pdf" criteria = "masterid='" & masterid & "'" DoCmd.OpenReport reportName, acViewPreview, , criteria, acHidden DoCmd.OutputTo acOutputReport, reportName, acFormatPDF, fileName DoCmd.Close acReport, reportName, acSaveNo End Sub Function GetDesktop() As String Dim oWSHShell As Object Set oWSHShell = CreateObject("WScript.Shell") GetDesktop = oWSHShell.SpecialFolders("Desktop") Set oWSHShell = Nothing End Function .
    جعفر
  23. jjafferr's post in طلب طباعة على صفحة A4 was marked as the answer   
    وعليكم السلام 🙂
     
    نعم ممكن ، ولكن ليس الطباعة من الاكسس ، ولكن بتصدير البيانات الى ملف pdf او اكسل ، 
    وهناك تستطيع ان تطبع على صفحة واحدة 🙂
     
    جعفر
  24. jjafferr's post in حل مشكلة خطا في مربع النص was marked as the answer   
    وعليكم السلام 🙂
     
     
     
    جعفر
  25. jjafferr's post in مطلوب كود فى قاعدة IF was marked as the answer   
    تفضل 🙂
     
    1. اضفنا الزر ، وحقل آخر ، يأخذ استعلام الالحاقي بأخذ قيمته (اقرأ ملاحظات تفاصيل الكود ) :

    .
    2. هذا كود الحدث على الزر :
    Private Sub cmd_Append_Click() 'نأخذ اكبر قيمة من الجدول B Me.Which_Invoice_no = DMax("[Invoice_no]", "A") 'نعمل مقارنة بين القيمتين ، ونأخذ الاكبر If Me.Invoice_no > Me.Which_Invoice_no Then Me.Which_Invoice_no = Me.Invoice_no End If DoCmd.SetWarnings False 'نضيف هذه القيمة والتاريخ الى الجدول A DoCmd.OpenQuery "qry_Append_to_tbl_A" 'نحذف هذا السجل من الجدول B DoCmd.OpenQuery "qry_Delete_from_tbl_B" DoCmd.SetWarnings True Me.Requery End Sub .
    3. هذا استعلام الالحاقي الى الجدول A

    .
    4. وهذا استعلام الحذف من الجدول B

    .
     
    ولكن اذا تأخذ رأيي ، فلا داعي لوجود جدولين ، واستعلام الحاقي وآخر حذف ، وكود وووو ،
    فقط استعمل جدول واحد ، مثلا الجدول A ، واضف اليه حقل جديد بإسم "هل تم التدقيق" ، نوع نعم/لا ،
    بحيث المدقق يعمل اشارة صح على السجل ، بأنه تم تدقيقه ، وبهذه البساطة 🙂
     
    جعفر
     
    1283.New Microsoft Access.accdb.zip
×
×
  • اضف...

Important Information