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

نجوم المشاركات

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      22

    • Posts

      9938


  2. محمد أبوعبدالله

    • نقاط

      13

    • Posts

      1998


  3. kha9009lid

    kha9009lid

    الخبراء


    • نقاط

      9

    • Posts

      1347


  4. ابو ياسين المشولي

    • نقاط

      3

    • Posts

      1755


Popular Content

Showing content with the highest reputation on 08/22/20 in مشاركات

  1. تمام استاذنا الفاضل وصلت المعلومة الآن فهمت لماذا لا تفضل استخدام dsum مباشرة في الاستعلام وتفضل استخدام استعلامين الاول تجميعي والثاني مبني على الاول بارك الله فيك استفدت كثيرا من المعلومة تحياتي
    3 points
  2. علشان يكون برنامجك ناجح ، اعتبر ان به عشرات الآلاف من السجلات ، على الاقل !! الطريقة الوحيدة للحصول على معلومة معينة في قواعد البيانات ، من بين مئات او آلاف او ملايين السجلات ، هو الاستعلام : قد يكون الاستعلام العادي الذي يسمح لنا الاكسس عمله بالطريقة التقليدية السهلة (وللعلم ، فالاكسس كان يتفوق على الكثير من قواعد البيانات العملاقة بهذه الميزة ، اما الباقين فكانوا يستعملون الكود !!) ، او الاستعلام في الكود بإستخدام SQL ، او الاستعلام بطريقة Recordset ، او بطريقة اسهل ، وهي الاستعلام بطريقة DSum او DLookup او DCount او DMax او بقية عائلة الدوال التي تبدأ بـ D (اذن فهي استعلام ايضا)**1 . يمكننا عمل استعلام مجاميع بواسطة الاستعلام العادي ، مع وضع معرّف السجل ID (وبهذه الطريقة يعمل الاستعلام مرة واحدة للحصول على المعلومة وجمعها) ، وقد نحتاج الى استعمال هذا الاستعلام كمصدر بيانات لإستعلام آخر عادي لإظهار بقية البيانات (يعني استعلام مجاميع 1 + استعلام عادي 1 = استعلامين) ، بينما عند وضع DSum في الاستعلام ، فإن الاستعلام يقوم بعمله كإستعلام عادي ، بالاضافة الى استعلام DSum لكل سجل (يعني 1 + استعلامات بعدد السجلات) ، لهذا السبب تجد انه بطئ جدا ، ويمكنك القاء نظرة هنا لمقارنة السرعة ، وبالخصوص آخر مقارنة وهي للـ DLookup في استعلام : جعفر **1 : هذه الطريقة لا تعمل عند ربط الاكسس مع SQL Server ، كنت اعتقد ان هذه الطريقة موجودة في الاكسس فقط ، وقد افادني اخي الاستاذ خالد @kha9009lid بأنها تعمل مع اوراكل بنفس طريقة عملها مع اكسس ولكن بدون الحاجة الى علامات التنصيص والاقواس [] وايضا تعمل مع قاعدة بيانات بيس الخاصة بتطبيق اوبن اوفيس بنفس الطريقة
    3 points
  3. السلام عليكم 🙂 اذا تسمح لي اخي ابوالبشر ، ومن واقع التجربة ، الافضل عند استعمال التاريخ في اسم الملف ، ان يكون سنه - شهر - يوم ، حتى يصبح فرز اسماء الملفات في المجلد بتسلسل تاريخ الحفظ🙂 DoCmd.OutputTo acOutputQuery, "Q_001", acFormatXLS, CurrentProject.Path & "\" & "كشف حساب" & "-" & a & "-" & Format(Date, "yyyy-mm-dd") & ".xls", True جعفر
    3 points
  4. وعليكم السلام ورحمة الله وبركاته لم افهم المشكلة بالضبط لكن دعنا نقوم بعمل كود مجمع لكل الصور اولا نضع خقل عير منضم في النموذج وليكن باسم IDPic ثم نضع الكود التالي في النموذج Public Function XPic() Dim fpathz As Variant With Application.FileDialog(3) .Title = "Choose File" .Filters.Clear .Filters.Clear .Filters.Add "All Files", "*.*" .Filters.Add "jpg image", "*.jpg" .Filters.Add "jpeg image", "*.jpeg" .AllowMultiSelect = False .InitialFileName = "" If .Show = -1 Then fpathz = .SelectedItems(1) Name fpathz As Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" If Me.IDPic = 1 Then Me.PicPath1 = Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" ElseIf Me.IDPic = 2 Then Me.PicPath2 = Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" ElseIf Me.IDPic = 3 Then Me.PicPath3 = Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" ElseIf Me.IDPic = 4 Then Me.PicPath4 = Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" ElseIf Me.IDPic = 5 Then Me.PicPath5 = Application.CurrentProject.Path & "\Pictures\" & [Id] & Me.IDPic & ".jpg" End If End If End With End Function الكود يقوم بنسخ الصورة الى مجلد Pictures الذي به بجوار البرنامج ويقوم باعادة تسميتها الى حقل id وخقل IDPic وفي زر الامر1 نضع الكود التالي Me.IDPic = 1 Call XPic وفي زر الامر2 نضع الكود التالي Me.IDPic = 2 Call XPic وهكذار لباقي الاوامر العيادة.rar تحياتي
    3 points
  5. انا دائما افضل ان استعمل الاستعلام العادي بدلا عن استعلام الكود ، مع ان استعلام الكود اصعب في انشائه ، ولكن الاستعلام العادي ابسط في التعامل معاه ، لذا ، قمت بطلب اعطائي جملة SQL من الكود هكذا : . ثم عمل استعلام فارغ ، ثم بالزر اليمين ، نختار SQL ، ونلصق جملة SQL التي في المربع الاخير (رجاء الانتباه ، اذا الجملة فيها كلمات عربية ، فقبل ان تعمل نسخ ، يجب ان تتأكد ان لغة الكيبورد هي العربية ، وإلا فبدل الكلمات العربية سترى كلمات اغريقية غريبة !! ) . ثم نرى الاستعلام بالطريقة المعتادة في وضع التصميم: . وفي وضع العرض ، نريد ان نرى اي من بيانات السطر الاول الذ لا تريده: . سنأخذ كلمة "سنة الالتحاق" ونضعه في المعيار : . والنتيجة ، وقد تم ازالة السجل الاول : . الآن نعمل تغيير في الكود ، فنطلب من الكود استعمال هذا الاستعلام بدلا عن جملة SQL التي في الكود : . والسلام 🙂 كما لاحظت انك تحتفظ بنسخة من الملفات ، وبها تاريخ اليوم ، فالافضل ان تحفظه بتنسيق yyyy-mm-dd علشان تسلسل الملفات في المجلد يطلع صح 🙂 جعفر stu_Table.zip
    2 points
  6. السلام عليكم 🙂 المنتدى مليء بالمواضيع الدسمة ، كل الذي عليك فعله هو ، البحث جعفر
    2 points
  7. هممم ، يعني تريد تخبر اخوي خالد اني عماني ، وتريده يتحرّز بالبخور ، للعلم ، البخور يعزم اصحابنا جعفر
    2 points
  8. السلام عليكم 🙂 لما نستخرج معلومة في نص ، فيجب مراعاة ان المعلومات الموجودة امامنا الآن غير كاملة ، فمثلا من بيانات البرنامج المرفق ، بدلا عن: "اللغة العربية 2 الشعبة 2 " قد يكون عندنا شُعب برقمين ، او/ومواد برقمين ، مثل: "اللغة العربية 12 الشعبة 21 " على هذا الاساس ، فلا يمكننا الاعتماد على مكان وجود الرقم الثابت ، فنضطر على الاعتماد على الاشياء الاخرى الثابتة ، مثل كلمة "الشعبة" و المسافة " " التي قبلها وبعدها ، واحيانا نقرأ النص من اول حرف فيه ، بينما في احيان اخرى من آخر حرف فيه ، مثلا ، للحصول على رقم الشعبة Sh ، بحثت من آخر النص inStrRev على المسافة " " الاولى (بس في واقع الامر هي المسافة الاخير لما نقرأ من بداية النص) ، بينما للحصول على الصف ، بحثت من اول النص على كلمة "الشعبة" : . والنتيجة . جعفر 1244.stu_Table.accdb.zip
    2 points
  9. من بعد اذن الاخوة الكرام ممكن نجرب الحل بالطريقة التالية وان كان بها عيوب ارجوا توضيحها للاستفادة ولكم الشكر Expr1: Nz(DSum("[crelative_num]";"[TBc]";"[idv] =" & [TBv]![idv]);0) Expr2: Nz(DSum("[hrelative_num]";"[TBh]";"[idv] =" & [TBv]![idv]);0) vvv.rar تحياتي
    2 points
  10. موجوده اخي جعفر اشار اليها
    2 points
  11. وعليكم السلام ورجمة الله وبركاته تفضل اخي الكريم كود ابسط في موديول جديد ضع الكود التالي Option Compare Database Public Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Public Sub HideAccess() Call ShowWindow(Access.hWndAccessApp, 0) End Sub Public Sub ShowAccess() Call ShowWindow(Access.hWndAccessApp, 5) End Sub وللاخفاء استخدم الكود التالي Call HideAccess وللاظهار استخدم الكود التالي Call ShowAccess db101.rar تحياتي
    2 points
  12. اذا كان النض يحتوي على اكثر من عدد (قي أوله أو منتصفه أو آخره) وجدت لكم الحل بواسطة هذا الكود Option Explicit Sub Extract_Number_From_Text() Dim rgx As Object Dim My_Number As Object Dim ws As Worksheet Dim i%, m%, k%, x%, Ro% Set rgx = CreateObject("VBScript.RegExp") Set ws = Worksheets("Salim") Ro = ws.Cells(Rows.Count, 1).End(3).Row m = 1: k = 3 With ws.Cells(m, k).CurrentRegion .ClearContents .Interior.ColorIndex = xlNone End With With rgx .Global = True: .Pattern = "(\d+\.?\d+)" For i = 1 To Ro If .Test(ws.Cells(i, 1)) Then Set My_Number = .Execute(ws.Cells(i, 1)) For x = 0 To My_Number.Count - 1 ws.Cells(m, k).Offset(, x) = Val(My_Number.Item(x)) Next x End If m = m + 1 Next i End With With ws.Cells(m, k).Resize(, 2) .Formula = "=SUM(C1:C" & m - 1 & ")" .Value = .Value .Interior.ColorIndex = 6 End With ws.Cells(m, k).Offset(, 2) = "Sum" Set rgx = Nothing: Set ws = Nothing Set My_Number = Nothing End Sub الصفحة salim من هذا الملف Hasan_Mhd_With_Macro.xlsm
    2 points
  13. لا شكر على واجب فكلنا نبحث عن العلم ونتبادل الخبرات ولك بمثل ما دعوت
    1 point
  14. شكرا استاذي احمد بدره زادك الله علما وجعل عملك الطيب في ميزان حسناتك
    1 point
  15. جرب هذا تم عمل نطاقين أحدهما A والآخر B وهما وموجودين في الخلايا BA2:BB7 ، BC2:BC7 واستخدام دالة VLOOKUP رصد .xlsx
    1 point
  16. حياك الله اخوي محمد 🙂 اتمنى من الجميع ان يتبع هذه الطريقة ، حتى يعرف صاحب الموضوع مكان الخطأ ، وكيف تم حل الموضوع ، والاهم من هذا ، انه لما يجي عضو آخر يقرأ الموضوع ، مافي داعي ينزل المرفق ويقلب النماذج والاكواد للوصول الى الكود ، ومن ثم يعرف طريقة الحل 🙂 جعفر
    1 point
  17. وايضا تهكما لمن يعجز عن امر ثم يذمه
    1 point
  18. عندنا تف عليه معنها تبصق في وجه هههههههههه
    1 point
  19. 😂😂😂 هذه الجملة عندنا في مصر لها معني اخر 😂😂😂 يالله هات استاذ محمد ، خلينا نختم الموضوع 😂
    1 point
  20. السلام عليكم 🙂 في عندنا مثل عماني يقول: ابيه (يعني اريده) بس تف عليه 🙂 يعني انت تريد الكومبوبوكس لميزاته ، وبعدين تريد ان توقف ميزاته احد الحلول انك تستخدم مربع نص عادي ، وعلى حدث بعد التحديث تبحث في الجدول عن القيمة ، او تظهر سطر واحد فقط ، وتظهر اسم العمود جعفر
    1 point
  21. الحقيقة ممكن ولكني لا افضل هذه الطريقة لكونها تتطلب استخدام حدث عند عداد الوقت لنموذج مخفي الفكرة باختصار جدول ونموذجين الجدول يحتوي على حقل من نوع نعم او لا النموذج الاول فقط في قاعدة بيانات الواجهة للادمن يتم فيه تحديد قيمة الحقل الموجود بالجدول النموذج الثاني موجود في واجهات اجهزة المستخدمين يعمل عند بداية تشغيل للبرنامج لكل منهم في وضع مخفي ويمكن الاستغناء عنه اذا كان لدينا نموذج تسجيل الدخول وهذا النموذج الثاني يحتوي على كود عند عداد الوقت يبحث عن قيمة الحقل الموجود في الجدول اذا كان =-1 يظهر رسالة ثم يغلق القاعدة واذا كان 0 يتجاهل توجد طريقة اخرى عن طريق برنامج remote administrator يتيح للمشرف اغلاق اجهزة المستخدمين واغلاق وتشغيل التطبيقات لديهم
    1 point
  22. الحمدلله اننا على نفس الموجة
    1 point
  23. نعم وهذا ما اشرت اليه في ردي اعلاه 👀
    1 point
  24. انعم واكرم بعمان واهلها الافاضل واصحابكم هم اصحابنا 😎 الله يسلمك ، اخوي زاهر عنده خطأ فني وما فهم السالفة اصحابنا اللي اتكلم عنهم ، اللي البخور يعزمهم ، تراهم اللي يطيرون جعفر
    1 point
  25. اووووه نسيت انك من متابعين مسيرتي مع اخونا الاستاذ فايز 🙂 جعفر
    1 point
  26. ما شاء الله عليك اخوي خالد ، ذاكرتك قوية 🙂 جعفر
    1 point
  27. وعليكم السلام ورحمة الله وبركاته اخي الكريم جميع الحقول التي تستخدم فيها ارقام اجعلها ارقام Number ولا تجعلها عملة لانك مع تطوير البرنامج قد تجد مشاكل فيما بعد انت في غني عنها ... والله اعلم ساذكر لك طريقة سهلة وبسيطة باذن الله ارجو ان تناسبك سنضع حقل جديد في جدول فاتورة وليكن باسم Balance وسنضع في النموذج بوضع مربع تحرير وسرد غير منضم مصدره جدول العملات SELECT [العملات].id, [العملات].[اسم الدوله], [العملات].[رمز العمله] FROM العملات ORDER BY [العملات].id; ثم نضع في حدث عند النقر لهذا المربع الكود التالي Me.Balance = Me.الباقي & Me.Combo7.Column(2) بهذه الطريقة يمكنك التعديل في اي وقت ولكل عملية بين العملات ببساطة ان شاء الله مرفق المثال ارجو ان يناسبك التعديل 3تجريبي.rar تحياتي
    1 point
  28. تفضل اخي الكريم الشعبة Xr: Mid(Right([f1-1];9);1) المادة Xr1: Replace([f1-1];[Xr];"") stu_Table1.rar تحياتي
    1 point
  29. وعليكم السلام ورحمة الله وبركاته الهدف من خاصية التجميع هو تصفية البيانات حسب بيان معين كرقم الفاتورة مثلاً فيتم عرض تفاصيل الفاتورة بناءا على فيمة حقل رقم الفاتورة ثم صفحة جديدة برقم فاتورة مختلف وهكذا ويمكن عمل ذلك في النموذج بتصفية البيات حسب حقل محدد او اكثر ويكون ذلك بالكود او بوضع معيار مسبقا في استعلام مصدر النموذج ضع جزء من المشروع ووضح فيه المطلوب وباذن الله ستجد الحل تحياتي
    1 point
  30. في الجدول ، ما عندك امكانية تغييره برمجيا (ممكن ولكن باكواد طويلة ومعقدة) ، لذا ، فنحن نستعمل هذا الطريقة في النموذج للكمبوبوكس 🙂 . جعفر
    1 point
  31. وهذه النتيجة بالطريقة الجديدة
    1 point
  32. دائما هناك حلول مثلا ممكن نوصل للنتيجة بعدد 2 استعلام الاول بدون عملية جمع فقط رقم المعرف من الجدول الاساسي والحقول المطلوبة من الجداول الثمانية المتبقية وبدون استخدام اي تجميع ويكون الاستعلام من نوع تكوين جدول والاستعلام الثاني يكون النهائي وفيه يتم احتساب الاجمالية ومصدرة الجدول الجديد طبعا هذة الفكرة بناء على ان الجداول التسعة مشابهه لمثالك المرفق
    1 point
  33. من اسهل الطرق لتجنب مضاعفة الناتج اذا كان الاستعلام لثلاث جداول فاكثر اننا نجزء الاستعلام للجدول الرئيسي والتابع1 استعلام واستخدام sum للناتج الجدول الرئيسي والتابع2 استعلام واستخدام sum للناتج استعلام نهائي للاستعلامين السابقين ولاداعي لاستخدام دالة IIf ودالة isnull لكون nz تغني عنهما انظر للصورة المرفقة
    1 point
  34. بالعكس واجب علينا عن توفر الاجابة أن نجيب .... حياك الله
    1 point
  35. تفضل ... On Error Resume Next DoCmd.SetWarnings False a = DLookup("الفرع", "T_1") DoCmd.OutputTo acOutputQuery, "Q_001", acFormatXLS, CurrentProject.Path & "\" & "كشف حساب" & "-" & a & "-" & Format(Date, "dd-mm-yyyy") & ".xls", True DoCmd.SetWarnings ture TEST.mdb
    1 point
  36. وانا ايضا وكنت قد اجريت التعديل ولكن عندما وجدت ان الاخ العزيز ابو اشرف وضع حل يؤدي المطلوب لم اضع التعديل المقترح وهو 👇 Between Date() And DateAdd("d";10;Date()) عندما نرغب في اضافة للتاريخ يفضل استخدام dateadd ولها ثلاث وسائط ايام او اشهر او سنوات المدة المطلوب اضافتها وقد تكون رقما مباشرا او حقل مبني على نموذج التاريخ المراد الاضافة اليه منور يا ابا ياسين 🌹
    1 point
  37. مشاركة مع اخي عبد اللطيف سلوم انا بصراحه افضل Between Between Date() And Date()+[Forms]![forms_rebort]![tt_15]
    1 point
  38. لا شيء مستحيل بإذن الله المهم ترتيب الخطوات في الذهن للوصول للحل يمكنك غلق قواعد البيانات الأخرى باستعمال هذا الكود Dim DB2 As Object db2Path = "Z:\path\to\db2.accdb" Set DB2 = GetObject(db2Path) DB2.Application.Quit ويمكن تكرار السطرين الأخيرين لغلق أي عدد من قواعد البيانات المحدد مساراتهم في الكود وفي الأخير غلق القاعدة الحالية بالكود التالي DoCmd.CloseDatabase بالتوفيق
    1 point
×
×
  • اضف...

Important Information