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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : https://www.officena.net/Tips/Questions.htm الطرق الاسهل: 1. استخدم الامر OpenArgs لإرسال اسم النموذج ، عند فتح النموذج Z02_Load_File ، هكذا : DoCmd.OpenForm "Z02_Load_File",,,,,,me.name او لإرسال الرقم 123456 DoCmd.OpenForm "Z02_Load_File",,,,,,"123456" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال me.OpenArgs ، وطبعا تقدر ترسل اي عدد من القيم بهذه الطريقة ، الشرط ان القيم تكون بين "" ، مثل : DoCmd.OpenForm "Z02_Load_File",,,,,,"123456|Finance_Department" ثم في النموذج Z02_Load_File ، تستعمل الامر Split لتفرق بين هذه القيم. 2. ان تعمل متغير في وحدة نمطية مستقلة ، هكذا : Option Compare Database option explicit Global myValue as string او public myValue2 as integer ثم لم تعطي القيمة قبل ان تفتح النموذج Z02_Load_File ، هكذا: myValue = "This is a test" DoCmd.OpenForm "Z02_Load_File" او myValue = 998877 DoCmd.OpenForm "Z02_Load_File" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال اسم المتغير myValue او myValue2 ، 3. او نفس طريقة #2 ، ولكن باستعمال TempVar جعفر
  2. وعليكم السلام 🙂 تم حذف هذه الخاصية من ابتداءً من الاكسس 2007 ، واذا بحث في المنتدى ، فالاعضاء ما شاء الله عليهم ، عملوا مجموعة برامج تساعدك في هذا الموضوع 🙂 جعفر
  3. السلام عليكم 🙂 مع مراعاة نصائح اخي ابوعبدالله ، تفضل ملفك بعد التعديل 🙂 جعفر 565310943_.mdb
  4. ورجاء ، اعطنا ملفك كاملا وهذه الاحاديث الطويلة (على ملف وورد مثلا) التي تسبب لك مشكلة ، واخبرنا الخطوات التي تتبعها وتعمل لك المشكلة ، حتى نستطيع معرفة المشكلة
  5. طبيعي يكون هناك فرق بين حقل نص (عدد الحروف لا يتعدى 255 حرف) وبين حقل مذكرة (عدد الحروف لا يتعدى 65535 حرف اذا تم ادخاله يدويا ، بينما يستوعب بيانات بمقدار 1 جيجا اذا تم ادخالها برمجيا) ، ولكن هذا لا علاقة له بإغلاق الاكسس ، فالمشكلة في مكان آخر ، الفرق هو في ملف البرنامج والبرمجة جعفر
  6. السلام عليكم 🙂 1. لكل برنامج ميزاته وعيوبه ، فالافضل من الان ان توزن ميزات وعيوب اكسس ، ومنها تواصل العمل في الاكسس او تنتقل الى برنامج آخر لا يوجد به شرطي 😁 2. البرمجة مثل الطبخ ، اللحم مثلا ، كل طباخ يتفنن فيه بطريقة ويعمل طبخة تختلف عن الاخرى وعن الطباخ الآخر ، وقد تعجبك طبخة معينة من يد طباخ معين ، ولا هذا لا يعني ان طبخ الطباخين الآخرين ليس أفضل ، وانما هو قرار اتخذته انت ولأسبابك (مثل طبخ الام ، فلا طبخ يضاهي طبخها 🙂). فالمبرمجين بتجاربهم يعطوك الجواب (على قدر سؤالك) ، ولكل مبرمج طريقته في البرمجة ، وانت تتخذ القرار بإستخدام طريقة او اخرى ، لأسبابك، 3. بسبب انك تتعامل مع حقل مذكرة Memo ، والذي فيه بيانات ثقيلة ، فليست جميع الطرق مناسبة لك ، وقد تكون هناك طرق جميلة في المنظر ، ولكن فليكن عندك هدف ، المنظر او السرعة ، لآنه في الكثير من الاوقات لا تستطيع دمج الاثنين مع بعض. لهذا السبب ، وفي كل سؤال تسأله ، يجب عليك ان تخبرنا بأن السرعة/المظهر هو اهتمامك ، وعليه سيقوم الخبراء بالدلو بتجاربهم 🙂 4. النقاط اعلاه ، يجب اتخاذ القرار فيها من الآن ومن بداية مشروعك ، لأننا هنا في المنتدى رأينا الكثير ، ولما البرنامج تصبح به مشاكل ، يعود ويلقي اللوم على الخبراء. 5. معظم الأسئلة ، يحتاج المبرمج الى وقت وجهد (وفي بعض الاحيان ، البحث) وليعمل البرمجة لها ، فكلما كنت دقيقا في هدفك وغايتك ، واعطيت المعلومات بالتفصيل وبأمثلة ، كلما سهّلت على المبرمج/العضو عمله 🙂 رجاء تشرح النقطتين بالتفصيل وبأمثلة نعم ، وفكرت في استعمال التاريخ وتحوله الى رقم ، ولكن رأيت ان الترقيم العشري افضل واسهل للإستعمال على المدى البعيد ، وخصوصا ان البرامج تتعامل مع الرقم اسرع من النص والتاريخ 🙂 جعفر
  7. تم حل هذه الاشكالية بالمرفق الجديد ، فيصبح حدث النقر المزدوج في الحقل: 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
  8. لا لا ، المسألة ليست الاكسس و اكسل ، وإنما اكسس او اكسل !! وفي انتظار قرارك 🙂 جعفر
  9. 1. نعم ملاحظة صائبة ، وان شاء الله اظيفها ، 2. نعم ، حاولت ان لا ابتعد كثيرا عن الاكسل ، حتى لا يضيع اخونا ابو حسان 😁 على راسي 🙂 جعفر
  10. ما فهمت اي تحديث تتكلم عنه ، ورجاء ، اعطني مثال بالشيء الذي تريده ، فأنا لا افهم المصطلحات !! لو عملت هذا في بداية الامر ، لعملت الكود على هذا الاساس ، اما الآن فلا داعي له ، إلا اذ اردت ان يكون البحث عن اي شيء بين القوسين ، يعني ارقام وحروف مثلا ، او حروف فقط. الدالة تنطلق من المكان الذي نقرت عليه في السطر ، تنظر الى الوراء الى 10 (ويمكنك تعديله في الكود) حروف ، فأذا وجدت رقم ، تأخذه ، واذا اذا وجدت حرف توقف ، ثم تنظر الى الامام 10 حروف ، فأذا وجدت رقم ، تأخذه وتضيفه الى الارقام السابقة ، واذا اذا وجدت حرف توقف ، جعفر
  11. السلام عليكم 🙂 هلا والله اخوي ابو خليل 🙂 البرنامج اللي انا عملته جاهز واخونا ابو حسان جربه ومافيه مشكلة ، وكل اللي مطلوب عمله هو تقرير جديد 🙂 انا كنت متعمد ما ارد على السؤال ، لأنه مثل ما تفضلت انت وقلت ، انه خونا ابو حسان لازم يبدأ يتعلم اكسس ، وإلا ، ففي كل صغيرة وكبيرة بيضطر يلجأ للمساعدة 🙂 خلاص ، بكرة ان شاء الله اقوم بعمل هذا التقرير 🙂 وسؤال آخر لأخوي ابو حسان: بما انني انا الذي أخذتك من الاكسل الى الاكسس ، فإذا قمت بالرد على سؤالك الاصل ، وقمت بعمل نسخ احتياطية على الاكسس ، فهل هذا سيسهل عليك؟ جعفر
  12. السلام عليكم 🙂 1. نعم ، 2. تفضل المرفق ، 3. هذا خلاف عمل قاعدة البيانات ، واذا اردت ان تميز سجلات من اخرى ، فأعمل حقل خاص لها في الجدول ، ورجاء رجاء ، لا تفصلهم بجداول مختلفة ، لأنك سوف تعقد الامور على نفسك ، وستسأل عن حل ، وجميع الحلول لن تكون في صالحك. جعفر 1322.4.تحويل.accdb.zip
  13. المشكلة ان تنسيق ونمط النموذج والجدول عندك كان غير ، فرجاء استعمال المرفق من الآن 🙂 وكلامنا فقط عن الجدول والنموذج احتمالات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
  14. وعليكم السلام 🙂 في 99.99% من الوقت ، نعم يمكن 🙂 اضف حقل اسم الشركة الى الجدول ، مفهرس ، التكرار مقبول ، عبئ بيانات الحقل ، ولما تنتهي من هذا العمل لجميل الجداول ، ادمج الجداول مع بعض ، وفي استعلاماتك ، وللتمييز بين بيانات شركة واخرى ، استخدم اسم الشركة كمعيار 🙂 جعفر
  15. من قدّك يا ولد ، فنان وحليت مشكلتك 🙂 طبعا لا 😁 جعفر
  16. السلام عليكم 🙂 اعرف ان هذا الموضوع مخالف ، فلا علاقة له بالاكسس ، ولكن له علاقة بالمبرمج 🙂 ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته - أدوات عامة - أوفيسنا (officena.net) جعفر
  17. Version 1.0.0

    119 تنزيل

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

Important Information