-
Posts
9998 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
كيف يمكن عمل كود متغير طبقا لاسم النموذج
jjafferr replied to engc2011e's topic in قسم الأكسيس Access
وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : 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 جعفر -
لا يوجد اذونات المستخدمين بـ اكسيس 2013 , 2016 , 2019
jjafferr replied to Abdelaziz Osman's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تم حذف هذه الخاصية من ابتداءً من الاكسس 2007 ، واذا بحث في المنتدى ، فالاعضاء ما شاء الله عليهم ، عملوا مجموعة برامج تساعدك في هذا الموضوع 🙂 جعفر -
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
🙂 -
السلام عليكم 🙂 مع مراعاة نصائح اخي ابوعبدالله ، تفضل ملفك بعد التعديل 🙂 جعفر 565310943_.mdb
-
ورجاء ، اعطنا ملفك كاملا وهذه الاحاديث الطويلة (على ملف وورد مثلا) التي تسبب لك مشكلة ، واخبرنا الخطوات التي تتبعها وتعمل لك المشكلة ، حتى نستطيع معرفة المشكلة
-
طبيعي يكون هناك فرق بين حقل نص (عدد الحروف لا يتعدى 255 حرف) وبين حقل مذكرة (عدد الحروف لا يتعدى 65535 حرف اذا تم ادخاله يدويا ، بينما يستوعب بيانات بمقدار 1 جيجا اذا تم ادخالها برمجيا) ، ولكن هذا لا علاقة له بإغلاق الاكسس ، فالمشكلة في مكان آخر ، الفرق هو في ملف البرنامج والبرمجة جعفر
-
السلام عليكم 🙂 1. لكل برنامج ميزاته وعيوبه ، فالافضل من الان ان توزن ميزات وعيوب اكسس ، ومنها تواصل العمل في الاكسس او تنتقل الى برنامج آخر لا يوجد به شرطي 😁 2. البرمجة مثل الطبخ ، اللحم مثلا ، كل طباخ يتفنن فيه بطريقة ويعمل طبخة تختلف عن الاخرى وعن الطباخ الآخر ، وقد تعجبك طبخة معينة من يد طباخ معين ، ولا هذا لا يعني ان طبخ الطباخين الآخرين ليس أفضل ، وانما هو قرار اتخذته انت ولأسبابك (مثل طبخ الام ، فلا طبخ يضاهي طبخها 🙂). فالمبرمجين بتجاربهم يعطوك الجواب (على قدر سؤالك) ، ولكل مبرمج طريقته في البرمجة ، وانت تتخذ القرار بإستخدام طريقة او اخرى ، لأسبابك، 3. بسبب انك تتعامل مع حقل مذكرة Memo ، والذي فيه بيانات ثقيلة ، فليست جميع الطرق مناسبة لك ، وقد تكون هناك طرق جميلة في المنظر ، ولكن فليكن عندك هدف ، المنظر او السرعة ، لآنه في الكثير من الاوقات لا تستطيع دمج الاثنين مع بعض. لهذا السبب ، وفي كل سؤال تسأله ، يجب عليك ان تخبرنا بأن السرعة/المظهر هو اهتمامك ، وعليه سيقوم الخبراء بالدلو بتجاربهم 🙂 4. النقاط اعلاه ، يجب اتخاذ القرار فيها من الآن ومن بداية مشروعك ، لأننا هنا في المنتدى رأينا الكثير ، ولما البرنامج تصبح به مشاكل ، يعود ويلقي اللوم على الخبراء. 5. معظم الأسئلة ، يحتاج المبرمج الى وقت وجهد (وفي بعض الاحيان ، البحث) وليعمل البرمجة لها ، فكلما كنت دقيقا في هدفك وغايتك ، واعطيت المعلومات بالتفصيل وبأمثلة ، كلما سهّلت على المبرمج/العضو عمله 🙂 رجاء تشرح النقطتين بالتفصيل وبأمثلة نعم ، وفكرت في استعمال التاريخ وتحوله الى رقم ، ولكن رأيت ان الترقيم العشري افضل واسهل للإستعمال على المدى البعيد ، وخصوصا ان البرامج تتعامل مع الرقم اسرع من النص والتاريخ 🙂 جعفر
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
تم حل هذه الاشكالية بالمرفق الجديد ، فيصبح حدث النقر المزدوج في الحقل: 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 -
لا لا ، المسألة ليست الاكسس و اكسل ، وإنما اكسس او اكسل !! وفي انتظار قرارك 🙂 جعفر
-
1. نعم ملاحظة صائبة ، وان شاء الله اظيفها ، 2. نعم ، حاولت ان لا ابتعد كثيرا عن الاكسل ، حتى لا يضيع اخونا ابو حسان 😁 على راسي 🙂 جعفر
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
ما فهمت اي تحديث تتكلم عنه ، ورجاء ، اعطني مثال بالشيء الذي تريده ، فأنا لا افهم المصطلحات !! لو عملت هذا في بداية الامر ، لعملت الكود على هذا الاساس ، اما الآن فلا داعي له ، إلا اذ اردت ان يكون البحث عن اي شيء بين القوسين ، يعني ارقام وحروف مثلا ، او حروف فقط. الدالة تنطلق من المكان الذي نقرت عليه في السطر ، تنظر الى الوراء الى 10 (ويمكنك تعديله في الكود) حروف ، فأذا وجدت رقم ، تأخذه ، واذا اذا وجدت حرف توقف ، ثم تنظر الى الامام 10 حروف ، فأذا وجدت رقم ، تأخذه وتضيفه الى الارقام السابقة ، واذا اذا وجدت حرف توقف ، جعفر -
السلام عليكم 🙂 هلا والله اخوي ابو خليل 🙂 البرنامج اللي انا عملته جاهز واخونا ابو حسان جربه ومافيه مشكلة ، وكل اللي مطلوب عمله هو تقرير جديد 🙂 انا كنت متعمد ما ارد على السؤال ، لأنه مثل ما تفضلت انت وقلت ، انه خونا ابو حسان لازم يبدأ يتعلم اكسس ، وإلا ، ففي كل صغيرة وكبيرة بيضطر يلجأ للمساعدة 🙂 خلاص ، بكرة ان شاء الله اقوم بعمل هذا التقرير 🙂 وسؤال آخر لأخوي ابو حسان: بما انني انا الذي أخذتك من الاكسل الى الاكسس ، فإذا قمت بالرد على سؤالك الاصل ، وقمت بعمل نسخ احتياطية على الاكسس ، فهل هذا سيسهل عليك؟ جعفر
-
السلام عليكم 🙂 1. نعم ، 2. تفضل المرفق ، 3. هذا خلاف عمل قاعدة البيانات ، واذا اردت ان تميز سجلات من اخرى ، فأعمل حقل خاص لها في الجدول ، ورجاء رجاء ، لا تفصلهم بجداول مختلفة ، لأنك سوف تعقد الامور على نفسك ، وستسأل عن حل ، وجميع الحلول لن تكون في صالحك. جعفر 1322.4.تحويل.accdb.zip
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
المشكلة ان تنسيق ونمط النموذج والجدول عندك كان غير ، فرجاء استعمال المرفق من الآن 🙂 وكلامنا فقط عن الجدول والنموذج احتمالات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 -
وعليكم السلام 🙂 في 99.99% من الوقت ، نعم يمكن 🙂 اضف حقل اسم الشركة الى الجدول ، مفهرس ، التكرار مقبول ، عبئ بيانات الحقل ، ولما تنتهي من هذا العمل لجميل الجداول ، ادمج الجداول مع بعض ، وفي استعلاماتك ، وللتمييز بين بيانات شركة واخرى ، استخدم اسم الشركة كمعيار 🙂 جعفر
-
ظهور رسائل خطا عند ادخال البيانات لأكثر من مستخدم
jjafferr replied to MO87's topic in قسم الأكسيس Access
من قدّك يا ولد ، فنان وحليت مشكلتك 🙂 طبعا لا 😁 جعفر -
السلام عليكم 🙂 اعرف ان هذا الموضوع مخالف ، فلا علاقة له بالاكسس ، ولكن له علاقة بالمبرمج 🙂 ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته - أدوات عامة - أوفيسنا (officena.net) جعفر
-
Version 1.0.0
119 تنزيل
السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر -
ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته اعرض الملف السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر صاحب الملف jjafferr تمت الاضافه 14 ينا, 2021 الاقسام أدوات عامة
-
وطريقتي : النموذج: وبعد اختيار الايام ، انقر على الزر . كود الحدث على الزر : اسم الدالة ، ونرسل لها : اسم النموذج ، اسم حقل 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
-
وعليكم السلام 🙂 ما شرحت شو اللي تريد تعمله ، ممكن نتوصل الى افكار اخرى 🙂 ويمكنك انزال هذا الملف ، وافتح النموذج Form2 ، وبعد الاختيار ترى النتائج في الاستعلام 🙂 جعفر
-
ظهور رسائل خطا عند ادخال البيانات لأكثر من مستخدم
jjafferr replied to MO87's topic in قسم الأكسيس Access
هذا عمل الكود ، فالكود يحاول من جانبه مرارا ، الى ان ينتهي المستخدم الآخر ، فيقوم الكود بحفظ البيانات لهذا المستخدم -
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
مع مراعاة كلمة "ارتباط" ، فالطريقة اللي توصلنا لها هي الحصول على الرقم المطلوب ، ومن ثم عمل اللي نريده في هذا الرقم ، والذي استخدمناه كمعيار لفتح نموذج آخر ، فالجواب بالطريقة اعلاه ، نعم يمكن ، ولكن لاحظ اننا استخدمنا الارقام فقط (ولو استخدمنا طريقة RegEx لوصلنا للمطلوب بطريقة اسرع ومرونه اكثر 🙂 ) ، فإذا اردت اضافة رموز خاصة وبطريقة معينه ، فالجواب كذلك ، نعم يمكن 🙂 جعفر -
ظهور رسائل خطا عند ادخال البيانات لأكثر من مستخدم
jjafferr replied to MO87's topic in قسم الأكسيس Access
وعليكم السلام 🙂 يوجد كود في هذه المشاركة ، وهو يتصيد الخطأ رقم 3022 ، فجرب نفس الطريقة للخطأ 3218 . جعفر -
الله يطول في عمرك ، على الاقل خلينا نشوف هذا الحدث بالكامل ، اعرضه هنا (مو صورة منه)، ثم ان الموقع يسمح لإرفاق المرفقات لحوالي 3 ميجا ، فمافي مشكلة في ارفاق ملف في حجم ملفك 🙂 جعفر