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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

كل منشورات العضو jjafferr

  1. ما فهمت اي تحديث تتكلم عنه ، ورجاء ، اعطني مثال بالشيء الذي تريده ، فأنا لا افهم المصطلحات !! لو عملت هذا في بداية الامر ، لعملت الكود على هذا الاساس ، اما الآن فلا داعي له ، إلا اذ اردت ان يكون البحث عن اي شيء بين القوسين ، يعني ارقام وحروف مثلا ، او حروف فقط. الدالة تنطلق من المكان الذي نقرت عليه في السطر ، تنظر الى الوراء الى 10 (ويمكنك تعديله في الكود) حروف ، فأذا وجدت رقم ، تأخذه ، واذا اذا وجدت حرف توقف ، ثم تنظر الى الامام 10 حروف ، فأذا وجدت رقم ، تأخذه وتضيفه الى الارقام السابقة ، واذا اذا وجدت حرف توقف ، جعفر
  2. السلام عليكم 🙂 هلا والله اخوي ابو خليل 🙂 البرنامج اللي انا عملته جاهز واخونا ابو حسان جربه ومافيه مشكلة ، وكل اللي مطلوب عمله هو تقرير جديد 🙂 انا كنت متعمد ما ارد على السؤال ، لأنه مثل ما تفضلت انت وقلت ، انه خونا ابو حسان لازم يبدأ يتعلم اكسس ، وإلا ، ففي كل صغيرة وكبيرة بيضطر يلجأ للمساعدة 🙂 خلاص ، بكرة ان شاء الله اقوم بعمل هذا التقرير 🙂 وسؤال آخر لأخوي ابو حسان: بما انني انا الذي أخذتك من الاكسل الى الاكسس ، فإذا قمت بالرد على سؤالك الاصل ، وقمت بعمل نسخ احتياطية على الاكسس ، فهل هذا سيسهل عليك؟ جعفر
  3. السلام عليكم 🙂 1. نعم ، 2. تفضل المرفق ، 3. هذا خلاف عمل قاعدة البيانات ، واذا اردت ان تميز سجلات من اخرى ، فأعمل حقل خاص لها في الجدول ، ورجاء رجاء ، لا تفصلهم بجداول مختلفة ، لأنك سوف تعقد الامور على نفسك ، وستسأل عن حل ، وجميع الحلول لن تكون في صالحك. جعفر 1322.4.تحويل.accdb.zip
  4. المشكلة ان تنسيق ونمط النموذج والجدول عندك كان غير ، فرجاء استعمال المرفق من الآن 🙂 وكلامنا فقط عن الجدول والنموذج احتمالات2 🙂 ولكي نتفادى رسالة الخطأ ، هكذا ننادي الدالة في الوحدة النمطية: Private Sub EH_DblClick(Cancel As Integer) Dim lng_Mno As Long lng_Mno = Get_Number(Me.EH, Me.EH.SelStart) If lng_Mno = 0 Then MsgBox "لم يتم الحصول على رقم" ElseIf lng_Mno = 1 Then MsgBox "لم يتم التعرف على الخطأ" Else DoCmd.OpenForm "مسند", , , "[Mno]=" & lng_Mno End If End Sub . واصبحت الدالة هكذا : Public Function Get_Number(fld As String, P As Long) As Long On Error GoTo err_Get_Number ' 'fld = Field content 'P = Position left mouse was double clicked in the field 'max_Length = maximun length of numeric field, default is 10 on each side = 20 characters 'C = the character to check 'Add_C = Adds the numeric Characters ' '1. check the characters to the Left <----| '2. check the characters to the Right |----> ' ' jjafferr ' v.1 : 21-01-13 : initial re;ease ' v.1.1 : 21-01-14 : added error traping for noe numeric values ' Dim i As Integer Dim Add_C As String Dim C As String Dim max_Length As Integer max_Length = 10 'What dose Access Read: -10 to 10 = 20 letters/characters 'C = Mid(fld, P - max_Length, max_Length) & vbCrLf & Mid(fld, P + 1, max_Length) 'Debug.Print C 'Get the numbers on the Left side of the click For i = P To (P - max_Length) Step -1 C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = C & Add_C Else Exit For End If Next i 'Debug.Print Add_C 'Get the numbers on the Right side of the click P = P + 1 For i = P To (P + max_Length) C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = Add_C & C Else Exit For End If Next i 'return the number value Get_Number = CLng(Add_C) Exit_Get_Number: Exit Function err_Get_Number: If Err.Number = 13 Then Get_Number = 0 Else Get_Number = 1 MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Get_Number End Function جعفر 1326.1.Get Number between text.accdb.zip
  5. وعليكم السلام 🙂 في 99.99% من الوقت ، نعم يمكن 🙂 اضف حقل اسم الشركة الى الجدول ، مفهرس ، التكرار مقبول ، عبئ بيانات الحقل ، ولما تنتهي من هذا العمل لجميل الجداول ، ادمج الجداول مع بعض ، وفي استعلاماتك ، وللتمييز بين بيانات شركة واخرى ، استخدم اسم الشركة كمعيار 🙂 جعفر
  6. من قدّك يا ولد ، فنان وحليت مشكلتك 🙂 طبعا لا 😁 جعفر
  7. السلام عليكم 🙂 اعرف ان هذا الموضوع مخالف ، فلا علاقة له بالاكسس ، ولكن له علاقة بالمبرمج 🙂 ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته - أدوات عامة - أوفيسنا (officena.net) جعفر
  8. Version 1.0.0

    105 تنزيل

    السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر
  9. ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته اعرض الملف السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر صاحب الملف jjafferr تمت الاضافه 14 ينا, 2021 الاقسام أدوات عامة  
  10. وطريقتي : النموذج: وبعد اختيار الايام ، انقر على الزر . كود الحدث على الزر : اسم الدالة ، ونرسل لها : اسم النموذج ، اسم حقل Listbox ، اسم الحقل في الاستعلام والذي نريد ان نضع له المعيار ، اسم الاستعلام . وهذه هي الدالة في الوحدة النمطية : Public Function Not_in(frm As String, fld As String, myWhere As String, qry As String) As String 'call Not_in("SelectDays","lstCats","Months_Digits","Query2") Dim ctl As Control Dim i As Integer Set ctl = Forms(frm)(fld) For i = 0 To ctl.ListCount - 1 If ctl.Selected(i) = False Then Not_in = Not_in & " Or " & myWhere & " = '" & ctl.Column(0, i) & "'" End If Next i Not_in = Mid(Not_in, 5) DoCmd.OpenQuery qry DoCmd.ApplyFilter , Not_in End Function . والشيء الذي اريدك تنتبه له هو ، اني ما وضعت المعيار في الاستعلام ، وانما عملت تصفية للإستعلام بعد تنفيذه ، عن طريق الامر DoCmd.ApplyFilter , Not_in 🙂 جعفر 1327.MultiSelec listbox query.zip
  11. وعليكم السلام 🙂 ما شرحت شو اللي تريد تعمله ، ممكن نتوصل الى افكار اخرى 🙂 ويمكنك انزال هذا الملف ، وافتح النموذج Form2 ، وبعد الاختيار ترى النتائج في الاستعلام 🙂 جعفر
  12. هذا عمل الكود ، فالكود يحاول من جانبه مرارا ، الى ان ينتهي المستخدم الآخر ، فيقوم الكود بحفظ البيانات لهذا المستخدم
  13. مع مراعاة كلمة "ارتباط" ، فالطريقة اللي توصلنا لها هي الحصول على الرقم المطلوب ، ومن ثم عمل اللي نريده في هذا الرقم ، والذي استخدمناه كمعيار لفتح نموذج آخر ، فالجواب بالطريقة اعلاه ، نعم يمكن ، ولكن لاحظ اننا استخدمنا الارقام فقط (ولو استخدمنا طريقة RegEx لوصلنا للمطلوب بطريقة اسرع ومرونه اكثر 🙂 ) ، فإذا اردت اضافة رموز خاصة وبطريقة معينه ، فالجواب كذلك ، نعم يمكن 🙂 جعفر
  14. وعليكم السلام 🙂 يوجد كود في هذه المشاركة ، وهو يتصيد الخطأ رقم 3022 ، فجرب نفس الطريقة للخطأ 3218 . جعفر
  15. الله يطول في عمرك ، على الاقل خلينا نشوف هذا الحدث بالكامل ، اعرضه هنا (مو صورة منه)، ثم ان الموقع يسمح لإرفاق المرفقات لحوالي 3 ميجا ، فمافي مشكلة في ارفاق ملف في حجم ملفك 🙂 جعفر
  16. السلام عليكم 🙂 شكرا اخوي ابوعبدالله 🙂 وهاي دالة لإستخراج الرقم من وسط بيانات الحقل 🙂 مثلا ننقر مزدوجا على الرقم 12670 : والنتيجة تفتح لنا النموذج مسند على الرقم اعلاه : . ننادي الدالة هكذا ، بحيث نرسل بيانات الحقل ، والنقطة/المكان اللي تم النقر مزدوجا فيها : Private Sub EH_DblClick(Cancel As Integer) DoCmd.OpenForm "مسند", , , "[Mno]=" & Get_Number(Me.EH, Me.EH.SelStart) End Sub . وتقوم هذه الدالة بإرجاع الرقم فقط : Public Function Get_Number(fld As String, P As Long) As Long ' 'fld = Field content 'P = Position left mouse was double clicked in the field 'max_Length = maximun length of numeric field, default is 10 'C = the character to check 'Add_C = Adds the numeric Characters ' '1. check the characters to the Left <----| '2. check the characters to the Right |----> ' ' jjafferr ' v.1 : 21-01-13 ' Dim i As Integer Dim Add_C As String Dim C As String Dim max_Length As Integer max_Length = 10 'Get the numbers on the Left side of the click For i = P To (P - max_Length) Step -1 C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = C & Add_C Else Exit For End If Next i 'Debug.Print Add_C 'Get the numbers on the Right side of the click P = P + 1 For i = P To (P + max_Length) C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = Add_C & C Else Exit For End If Next i Get_Number = CLng(Add_C) End Function . ولكن ، لم اتمكن من تشغيل هذه الدالة على حقل النص المنسق !! جعفر 1326.إحالات.accdb.zip
  17. هذا الكلام صحيح ، اذا كان الحقل نص غير منسق 🙂 نعم ، عن طريق ان يكون النص منسق بكود HTML ، والذي على اساسه تنقر عليه وتعمل الباقي في الكود (قد لا يكون ببساطة الارتباط التشعبي ، فلم اعمل شيء من هذا سابقا) 🙂 جعفر
  18. معظم المبرمجين يعتقدون بأن جمع قيم حقلين في نموذج ، سيعطي نتائج صحيحة ، ولكن المثال الذي ارفقته في مشاركتي السابقة اثبت بأن هذا غير صحيح. فالاكسس يتعامل مع الحقل كتعامله مع Variant ، لهذا السبب يجب ان نخبر الاكسس بأن الحقل (سواء نوع الحقل في الجدول عبارة عن رقم ، او عن طريق تنسيق الحقل ونخبره بأنه رقم) ، او قيمة الحقل نغيرها الى رقم (ونستعمل دوال مثل: Val او Int او cInt او cDbl ، مثل : Val(X) Int(X) cInt(X) cDbl(X) . والموضوع لا يتوقف على النموذج او الكود (سواء في النموذج او التقرير او الوحدة النمطية) ، وانما في الاستعلام والتقرير والماكرو ايضا. جعفر
  19. لا زلت انتظر الجواب !! هذا الرابط يفيدك جعفر
  20. هل حصلت على هذه القيمة من النموذج؟ هذا ما حصلت عليه انا : . وهذه كانت المعادلة : . الخلاصة: لأننا في النموذج لم نذكر نوع الحقول ، فأخذها كنص ، وجمعها كنص !! لهذا السبب يجب ان نخبره نوع الحقل/المتغير علشان نحصل على الاجابة الصحيحة 🙂 جعفر 1325.function.accdb.zip
  21. استخدم الفاصلة بدلا عن As جعفر
  22. الله يطول في عمرك اخي الكريم ، يعني كل شخص بتعطيه البرنامج ، بتطلب منه يقوم بتعديل Registry كمبيوتره !! اما انا ، فلا اسمح لأي برنامج ان يلعب او يغير اعدادات كمبيوتري ، واذا البرنامج يطلب مني هاي ، احذفه ، البدائل كثيرة والحمد لله 🙂 جعفر
  23. خليني احاول اقنعك 🙂 اعمل هذه المعادلة البسيطة في النموذج على النقر على Click : Me.txt3 = Me.txt1 + Me.txt2 والآن ، ادخل هذه القيم في الحقلين: txt1 : 1 txt2 : 3.1 واخبرني اذا حصلت على النتيجة الصحيحة عند النقر على الزر 🙂 جعفر
  24. لان المتغير X و Y عبارة عن Variant الشبية للنص String ، بينما انت تريد ان تجمع الرقمين ، فلابد من تحويلهم الى Double او Integer لتتم عملية الجمع بطريقة صحيحة ، فهنا اخبرنا الكود: اعمل تغيير للمتغير X الى رقم: Convert to Double ، او cDbl 🙂 الطريقة المثلى للتعامل مع دوالنا الخاصة (سواء في النموذج او الوحدة النمطية) هي ، ارسال القيمة جاهزة اليها ، اي نضبط القيم قبل ارسالها للدالة ، وفي حال موضوعك هو: عند ارسال المعلومة: If Len(Me.txt1 & "") = 0 Then MsgBox "Please enter a value" Me.txt1.SetFocus ElseIf Len(Me.txt2 & "") = 0 Then MsgBox "Please enter a value" Me.txt2.SetFocus Else Me.txt3 = m(Nz(Me.txt1, 0), Nz(Me.txt2, 0)) End If . فتصبح الدالة: Function m(x As Double, y As Double) As Double m = x + y End Function . ولكن لأنك قلت انك تريد الفحص في الفنكشن ، لهذا السبب شفت محاولات الشباب 🙂 : .. . . من وين وصلتك هذه المعلومة ، فأنا لم اتكلم عنها لا من قريب ولا من بعيد !! في الواقع ، لذة البرمجة هي في عمل الدوال والتي بها يتم اختصار العمل وعدم عمل تكرار للكود 🙂 جعفر
×
×
  • اضف...

Important Information