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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. ورجاء ، اعطنا ملفك كاملا وهذه الاحاديث الطويلة (على ملف وورد مثلا) التي تسبب لك مشكلة ، واخبرنا الخطوات التي تتبعها وتعمل لك المشكلة ، حتى نستطيع معرفة المشكلة
  2. طبيعي يكون هناك فرق بين حقل نص (عدد الحروف لا يتعدى 255 حرف) وبين حقل مذكرة (عدد الحروف لا يتعدى 65535 حرف اذا تم ادخاله يدويا ، بينما يستوعب بيانات بمقدار 1 جيجا اذا تم ادخالها برمجيا) ، ولكن هذا لا علاقة له بإغلاق الاكسس ، فالمشكلة في مكان آخر ، الفرق هو في ملف البرنامج والبرمجة جعفر
  3. السلام عليكم 🙂 1. لكل برنامج ميزاته وعيوبه ، فالافضل من الان ان توزن ميزات وعيوب اكسس ، ومنها تواصل العمل في الاكسس او تنتقل الى برنامج آخر لا يوجد به شرطي 😁 2. البرمجة مثل الطبخ ، اللحم مثلا ، كل طباخ يتفنن فيه بطريقة ويعمل طبخة تختلف عن الاخرى وعن الطباخ الآخر ، وقد تعجبك طبخة معينة من يد طباخ معين ، ولا هذا لا يعني ان طبخ الطباخين الآخرين ليس أفضل ، وانما هو قرار اتخذته انت ولأسبابك (مثل طبخ الام ، فلا طبخ يضاهي طبخها 🙂). فالمبرمجين بتجاربهم يعطوك الجواب (على قدر سؤالك) ، ولكل مبرمج طريقته في البرمجة ، وانت تتخذ القرار بإستخدام طريقة او اخرى ، لأسبابك، 3. بسبب انك تتعامل مع حقل مذكرة Memo ، والذي فيه بيانات ثقيلة ، فليست جميع الطرق مناسبة لك ، وقد تكون هناك طرق جميلة في المنظر ، ولكن فليكن عندك هدف ، المنظر او السرعة ، لآنه في الكثير من الاوقات لا تستطيع دمج الاثنين مع بعض. لهذا السبب ، وفي كل سؤال تسأله ، يجب عليك ان تخبرنا بأن السرعة/المظهر هو اهتمامك ، وعليه سيقوم الخبراء بالدلو بتجاربهم 🙂 4. النقاط اعلاه ، يجب اتخاذ القرار فيها من الآن ومن بداية مشروعك ، لأننا هنا في المنتدى رأينا الكثير ، ولما البرنامج تصبح به مشاكل ، يعود ويلقي اللوم على الخبراء. 5. معظم الأسئلة ، يحتاج المبرمج الى وقت وجهد (وفي بعض الاحيان ، البحث) وليعمل البرمجة لها ، فكلما كنت دقيقا في هدفك وغايتك ، واعطيت المعلومات بالتفصيل وبأمثلة ، كلما سهّلت على المبرمج/العضو عمله 🙂 رجاء تشرح النقطتين بالتفصيل وبأمثلة نعم ، وفكرت في استعمال التاريخ وتحوله الى رقم ، ولكن رأيت ان الترقيم العشري افضل واسهل للإستعمال على المدى البعيد ، وخصوصا ان البرامج تتعامل مع الرقم اسرع من النص والتاريخ 🙂 جعفر
  4. تم حل هذه الاشكالية بالمرفق الجديد ، فيصبح حدث النقر المزدوج في الحقل: Private Sub EH_DblClick(Cancel As Integer) Dim lng_Mno As Long 'send the "UnSaved Text" (to retain the text position as is), and the click position to the Function Get_Number 'to retrieve the number clicked on lng_Mno = Get_Number(Me.EH.Text, Me.EH.SelStart) 'once the Function returns the value, examin it If lng_Mno = 0 Then MsgBox "لم يتم الحصول على رقم" ElseIf lng_Mno = 1 Then MsgBox "لم يتم التعرف على الخطأ" Else DoCmd.OpenForm "مسند", , , "[Mno]=" & lng_Mno End If End Sub والدالة في الوحدة النمطية: Option Compare Database Option Explicit 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) 'loop through the characters one at a time If IsNumeric(C) Then 'test the character to our condition Add_C = C & Add_C 'passed the condition, Concatenat it Else Exit For 'did NOT pass the condition, get out of the loop 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 'Convert the concatenated string to Long, and '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 ElseIf Err.Number = 5 Then Get_Number = 1 Else Get_Number = 1 MsgBox Err.Number & vbCrLf & Err.Description End If 'don't break the code, so Resume by exiting from the Function Resume Exit_Get_Number End Function انا لم اقل هذا ، وإنما قلت جعفر 1326.2.Get Number between text.accdb.zip
  5. لا لا ، المسألة ليست الاكسس و اكسل ، وإنما اكسس او اكسل !! وفي انتظار قرارك 🙂 جعفر
  6. 1. نعم ملاحظة صائبة ، وان شاء الله اظيفها ، 2. نعم ، حاولت ان لا ابتعد كثيرا عن الاكسل ، حتى لا يضيع اخونا ابو حسان 😁 على راسي 🙂 جعفر
  7. ما فهمت اي تحديث تتكلم عنه ، ورجاء ، اعطني مثال بالشيء الذي تريده ، فأنا لا افهم المصطلحات !! لو عملت هذا في بداية الامر ، لعملت الكود على هذا الاساس ، اما الآن فلا داعي له ، إلا اذ اردت ان يكون البحث عن اي شيء بين القوسين ، يعني ارقام وحروف مثلا ، او حروف فقط. الدالة تنطلق من المكان الذي نقرت عليه في السطر ، تنظر الى الوراء الى 10 (ويمكنك تعديله في الكود) حروف ، فأذا وجدت رقم ، تأخذه ، واذا اذا وجدت حرف توقف ، ثم تنظر الى الامام 10 حروف ، فأذا وجدت رقم ، تأخذه وتضيفه الى الارقام السابقة ، واذا اذا وجدت حرف توقف ، جعفر
  8. السلام عليكم 🙂 هلا والله اخوي ابو خليل 🙂 البرنامج اللي انا عملته جاهز واخونا ابو حسان جربه ومافيه مشكلة ، وكل اللي مطلوب عمله هو تقرير جديد 🙂 انا كنت متعمد ما ارد على السؤال ، لأنه مثل ما تفضلت انت وقلت ، انه خونا ابو حسان لازم يبدأ يتعلم اكسس ، وإلا ، ففي كل صغيرة وكبيرة بيضطر يلجأ للمساعدة 🙂 خلاص ، بكرة ان شاء الله اقوم بعمل هذا التقرير 🙂 وسؤال آخر لأخوي ابو حسان: بما انني انا الذي أخذتك من الاكسل الى الاكسس ، فإذا قمت بالرد على سؤالك الاصل ، وقمت بعمل نسخ احتياطية على الاكسس ، فهل هذا سيسهل عليك؟ جعفر
  9. السلام عليكم 🙂 1. نعم ، 2. تفضل المرفق ، 3. هذا خلاف عمل قاعدة البيانات ، واذا اردت ان تميز سجلات من اخرى ، فأعمل حقل خاص لها في الجدول ، ورجاء رجاء ، لا تفصلهم بجداول مختلفة ، لأنك سوف تعقد الامور على نفسك ، وستسأل عن حل ، وجميع الحلول لن تكون في صالحك. جعفر 1322.4.تحويل.accdb.zip
  10. المشكلة ان تنسيق ونمط النموذج والجدول عندك كان غير ، فرجاء استعمال المرفق من الآن 🙂 وكلامنا فقط عن الجدول والنموذج احتمالات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
  11. وعليكم السلام 🙂 في 99.99% من الوقت ، نعم يمكن 🙂 اضف حقل اسم الشركة الى الجدول ، مفهرس ، التكرار مقبول ، عبئ بيانات الحقل ، ولما تنتهي من هذا العمل لجميل الجداول ، ادمج الجداول مع بعض ، وفي استعلاماتك ، وللتمييز بين بيانات شركة واخرى ، استخدم اسم الشركة كمعيار 🙂 جعفر
  12. من قدّك يا ولد ، فنان وحليت مشكلتك 🙂 طبعا لا 😁 جعفر
  13. السلام عليكم 🙂 اعرف ان هذا الموضوع مخالف ، فلا علاقة له بالاكسس ، ولكن له علاقة بالمبرمج 🙂 ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته - أدوات عامة - أوفيسنا (officena.net) جعفر
  14. Version 1.0.0

    120 تنزيل

    السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر
  15. ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته اعرض الملف السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر صاحب الملف jjafferr تمت الاضافه 14 ينا, 2021 الاقسام أدوات عامة  
  16. وطريقتي : النموذج: وبعد اختيار الايام ، انقر على الزر . كود الحدث على الزر : اسم الدالة ، ونرسل لها : اسم النموذج ، اسم حقل 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
  17. وعليكم السلام 🙂 ما شرحت شو اللي تريد تعمله ، ممكن نتوصل الى افكار اخرى 🙂 ويمكنك انزال هذا الملف ، وافتح النموذج Form2 ، وبعد الاختيار ترى النتائج في الاستعلام 🙂 جعفر
  18. هذا عمل الكود ، فالكود يحاول من جانبه مرارا ، الى ان ينتهي المستخدم الآخر ، فيقوم الكود بحفظ البيانات لهذا المستخدم
  19. مع مراعاة كلمة "ارتباط" ، فالطريقة اللي توصلنا لها هي الحصول على الرقم المطلوب ، ومن ثم عمل اللي نريده في هذا الرقم ، والذي استخدمناه كمعيار لفتح نموذج آخر ، فالجواب بالطريقة اعلاه ، نعم يمكن ، ولكن لاحظ اننا استخدمنا الارقام فقط (ولو استخدمنا طريقة RegEx لوصلنا للمطلوب بطريقة اسرع ومرونه اكثر 🙂 ) ، فإذا اردت اضافة رموز خاصة وبطريقة معينه ، فالجواب كذلك ، نعم يمكن 🙂 جعفر
  20. وعليكم السلام 🙂 يوجد كود في هذه المشاركة ، وهو يتصيد الخطأ رقم 3022 ، فجرب نفس الطريقة للخطأ 3218 . جعفر
  21. الله يطول في عمرك ، على الاقل خلينا نشوف هذا الحدث بالكامل ، اعرضه هنا (مو صورة منه)، ثم ان الموقع يسمح لإرفاق المرفقات لحوالي 3 ميجا ، فمافي مشكلة في ارفاق ملف في حجم ملفك 🙂 جعفر
  22. السلام عليكم 🙂 شكرا اخوي ابوعبدالله 🙂 وهاي دالة لإستخراج الرقم من وسط بيانات الحقل 🙂 مثلا ننقر مزدوجا على الرقم 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
  23. هذا الكلام صحيح ، اذا كان الحقل نص غير منسق 🙂 نعم ، عن طريق ان يكون النص منسق بكود HTML ، والذي على اساسه تنقر عليه وتعمل الباقي في الكود (قد لا يكون ببساطة الارتباط التشعبي ، فلم اعمل شيء من هذا سابقا) 🙂 جعفر
  24. معظم المبرمجين يعتقدون بأن جمع قيم حقلين في نموذج ، سيعطي نتائج صحيحة ، ولكن المثال الذي ارفقته في مشاركتي السابقة اثبت بأن هذا غير صحيح. فالاكسس يتعامل مع الحقل كتعامله مع Variant ، لهذا السبب يجب ان نخبر الاكسس بأن الحقل (سواء نوع الحقل في الجدول عبارة عن رقم ، او عن طريق تنسيق الحقل ونخبره بأنه رقم) ، او قيمة الحقل نغيرها الى رقم (ونستعمل دوال مثل: Val او Int او cInt او cDbl ، مثل : Val(X) Int(X) cInt(X) cDbl(X) . والموضوع لا يتوقف على النموذج او الكود (سواء في النموذج او التقرير او الوحدة النمطية) ، وانما في الاستعلام والتقرير والماكرو ايضا. جعفر
  25. لا زلت انتظر الجواب !! هذا الرابط يفيدك جعفر
×
×
  • اضف...

Important Information