بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
مطلوب توزيع السباحين طبقاً للتواريخ المحددة
jjafferr replied to محمد سلامة's topic in قسم الأكسيس Access
وعليكم السلام اخوي محمد 🙂 اذا ممكن ومن بيانات المرفق اعلاه ، ان تعمل لنا الجواب في ملف اكسل او وورد ، مثال او مثالين لوسمحت ، حتى يتضح المطلوب 🙂 جعفر -
فتح أكثر من قاعدة بيانات من نموذج واحد فقط ..
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
اسمحوا لي ان اشرح فائدة الطريقة اللي اشرت لها انا 🙂 الفائدة هي محاكاة البرنامج الاخر ، وارسال بيانات له ، واستيراد بيانات منه ، وهذا لا يقتصر على قاعدة البيانات التي فتحت البرنامج الآخر ، وانما يعتمد على اي عدد من قواعد البيانات التي فتحتها عن طريق المتغير appAccess و appAccess2 و ... وبعد اذن اخي ابو البشر ، فاستخدمت مرفقه ، وبتعديل بسيط على البرنامج Sub بحيث النموذج mark2 لا يُفتح تلقائيا ، واضفت له زر : الكود التالي : يفتح قاعدة البيانات Sub ، 1. يرسل القيمة "c:\abc\abc" الى الحقل txtPath ، 2. ويأخذ المسمى الموجود في حقل التسمية 7 ، ويضعه في برنامجنا : Private Sub cmd_View_Kids_info_Click() On Error GoTo err_cmd_View_Kids_info_Click Dim appAccess As Object Dim DB_Path As String Dim myWhere As String 'if the Remote Application/Form is open, close it first appAccess.DoCmd.Quit 'now open the Form for the new Employee_ID Set appAccess = CreateObject("Access.Application") DB_Path = Application.CurrentProject.Path & "\mark2.mdb" appAccess.OpenCurrentDatabase (DB_Path) appAccess.DoCmd.OpenForm "Mark" appAccess.Visible = True With appAccess.Forms!Mark .txtPath = "c:\abc\abc" Me.lbl2.Caption = .[تسمية7].Caption End With appAccess.UserControl = True 'Set appAccess = Nothing Exit_cmd_View_Kids_info_Click: Exit Sub err_cmd_View_Kids_info_Click: If Err.Number = 91 Or Err.Number = 462 Then 'the application is NOT open, ignore the error Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر fayz.zip -
مراجع ومصادر لشرح الاستعلامات الفرعية بتوسع
jjafferr replied to عبد الفتاح كيرة's topic in قسم الأكسيس Access
استعمل TOP 3 بدلا عن TOP 1 جعفر -
فتح أكثر من قاعدة بيانات من نموذج واحد فقط ..
jjafferr replied to عفرنس's topic in قسم الأكسيس Access
وعليكم السلام 🙂 نعم يمكن ، وتفتح نموذج معين ، وتعمل له تصفية ، وللقراءة فقط 🙂 يعني تعمل فيه اللي تريد 🙂 اقتطعت هذا الكود من احد برامجي : Private Sub cmd_View_Kids_info_Click() On Error GoTo err_cmd_View_Kids_info_Click Dim appAccess As Object Dim DB_Path As String Dim myWhere As String 'if the Remote Application/Form is open, close it first appAccess.DoCmd.Quit 'now open the Form for the new Employee_ID Set appAccess = CreateObject("Access.Application") DB_Path = "\\Managing_1\h\Personal\FE\Personal_FE.accdb" appAccess.OpenCurrentDatabase (DB_Path) myWhere = "[Full_Name]='" & Me.frm_1_All!Full_Name & "'" myWhere = myWhere & " And [Relation]<>'زوجة'" myWhere = myWhere & " And [Relation]<>'زوج'" appAccess.DoCmd.OpenForm "sfrm_Family", , , myWhere, acFormReadOnly appAccess.Visible = True appAccess.UserControl = True 'Set appAccess = Nothing Exit_cmd_View_Kids_info_Click: Exit Sub err_cmd_View_Kids_info_Click: If Err.Number = 91 Or Err.Number = 462 Then 'the application is NOT open, ignore the error Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر -
مراجع ومصادر لشرح الاستعلامات الفرعية بتوسع
jjafferr replied to عبد الفتاح كيرة's topic in قسم الأكسيس Access
السلام عليكم 🙂 اليك هذا المرفق ، فيه مثالين: المثال الاول: عندنا جدولين ، tbl_Seq و tbl_New_Seq ، فيهم نفس البيانات ، نريد نأخذ اكبر قيمة من الحقل Seq في tbl_Seq ، ثم نستخدم هذه القيمة ، وندخل بقية البيانات في الجدول tbl_New_Seq ، المثال الثاني: نفس المثال الاول ، ولكن العمل على جدول واحد فقط ، tbl_Sections . المشكلة في لما تستعمل استعلام المجاميع ، والامر Max للحقل Seq ، لتحصل على اعلى قيمة ، ثم تربطه بالجدول الآخر ، فيصبح استعلامك (نموذجك) غير قابل للتعديل ، بينما اذا استعملنا نفس استعلام المجاميع اعلاه ، بالامر Max للحقل Seq ، ولكن استعملناه كإستعلام فرعي ، فيصبح الاستعلام (النموذج) قابل للتعديل 🙂 اترك لك المجال تفحص المثال الاول ونتائجه ، وهنا اوضح عمل المثال الثاني: فنرى اني عملت استعلام فرعي للقيمة Seq : . ونتيجة الاستعلام ، يمكن تعديلها ، للحقل New_Section : . وللتجربة ، اخذ الاستعلام الفرعي اعلاه ، وضعه في استعلام مستقل ، ثم اربط الاستعلام بالجدول ، فلن تحصل على نتيجة صحيحة !! جعفر 1167.SubQuery.mdb.zip -
أريد طريقة عمل فرز لأسماء المتقدمين على دورات تدريبية "آلية"
jjafferr replied to ابوآمنة's topic in قسم الأكسيس Access
السلام عليكم اخي صالح 🙂 شو اللي جاب هذا الموضوع على بالك بعد حوالي سنتين جعفر -
السلام عليكم 🙂 هناك الكثير من الميزات/الاوامر التي يعطينا برنامج الاكسس ، والتي يمكن ان نعمل لها بديل ، ولكن يكون هناك فرق في سرعة تنفيذ كودنا مقارنة مع الكود الاصل من الاكسس !! مثل القائمة المختصرة التي تظهر لنا بالنقر على زر الفأرة الايمن ، والتي بها يمكننا ان نستغني عن الكثير الاوامر ، مثل الفرز والتصفية بأنواعه ، ولكن وللأسف الشديد ، فأنا ارى ان 99.99% من البرامج ، يتم حذف هذه القائمة وعدم تفعيلها ، والسبب ان المستخدم يستطيع ان يدخل في تصميم النموذج من خلال هذه الاوامر(في الدائرة الحمراء) : و . ويضطر المبرمج ان يعوض بقية الاوامر في القائمة ، بمجموعة من الازرار ، او بطرق مختلفة !! ----------------------------------------------------------------------------------------------- الاكسس يسمح لنا ان نعمل قوائم مختصرة Shortcut Menu والتابعة لمجموعة CommandBars ، حسب احتياجنا ، ونختار ما نضعه فيها 🙂 هناك 3 انواع من هذه القوائم : الثابته ، والمؤقته ، والمؤقته التي تحتاج الى كود. الثابته: وهي التي عندما نعملها ، تصبح مستقله عن الكود ، وتُحفظ وتبقى في قاعدة البيانات بعد إغلاقها ، ويمكننا ان نستوردها في قاعدة بيانات اخرى عندما نستورد احد/جميع كائنات قاعدة البيانات الآخرى ، بإستخدام : . ونختارها في النموذج : . او التقرير : . هذا مثال لعمل الكود الاساس لعمل قائمة قطع/نسخ/لصق : Option Compare Database Option Explicit Dim cmb As Object Dim cmbCtrl As Object Dim cmbName As String ' ' ' to use: ' Dim cbr As Commandbar ' Dim cbrButton as CommandbarControl ' ' we have to select in the References: ' Microsoft Office xx.x Object Library ' Public Function SCM_Copy(Optional DeleteMe As Boolean = False) On Error Resume Next 'If menu with same name exists delete cmbName = "cmb_Copy" CommandBars(cmbName).Delete If DeleteMe = True Then Exit Function If Err.Number <> 0 Then Err.Clear Set cmb = CommandBars.Add(cmbName, msoBarPopup, False, False) With cmb .Controls.Add msoControlButton, 21, , , False ' Cut .Controls.Add msoControlButton, 19, , , False ' Copy .Controls.Add msoControlButton, 22, , , False ' Paste End With Set cmb = Nothing End Function . وشرح الكود : 1. اسم القائمة المختصرة ، والتي سوف نختارها في النموذج او التقرير ، 2. هذه المجموعة الاساس منبثقة Popup ، 3. بينما هذه المجموعات عبارة عن ازرار Buttons ، وقد تكون قائمة منسدلة Combobox ، او نص Edit نُدخل فيه قيمة معينة للتصفية مثلا ، 4. هل هذه القائمة مؤقته ؟ False معناها ثابته وتُحفظ في قاعدة البيانات ، بينما True معناها انها مؤقته وتعمل لما ننادي الوحدة النمطية/الكود ، 5. هذه ارقام كل امر ، وملف الاكسل المرفق من مايكروسوفت فيه جدول يضم جميع ارقام الاوامر للاكسس 2010 () ، 6. اذا اردنا ان نحذف هذه القائمة ، فننادي الوحدة النمطية بضم True في امر المناداة المؤقته: ونستعمل True في مكان الرقم 4 اعلاه. وهي التي عندما نعملها ، لا تصبح مستقله عن الكود ، ولا تبقى في قاعدة البيانات بعد إغلاقها ، ولا يمكننا ان نستوردها في قاعدة بيانات اخرى عندما نستورد احد/جميع كائنات قاعدة البيانات الآخرى (كما هو الحال مع القائمة الثابته) ، ويجب ان نستخدم "حدث فتح" النموذج/التقرير لعملها واستخدامها في النموذج/التقرير ، و "حدث اغلاق" النموذج/التقرير لحذفها ، طيب ، خلونا نعمل هذه القائمة : Public Function SCM_Copy_Sort(Optional DeleteMe As Boolean = False) On Error Resume Next 'If menu with same name exists delete cmbName = "cmb_Copy_Sort" CommandBars(cmbName).Delete If Err.Number <> 0 Then Err.Clear Set cmb = CommandBars.Add(cmbName, msoBarPopup, False, False) With cmb Set cmbCtrl = .Controls.Add(msoControlButton, 21, , , False) ' Cut cmbCtrl.Caption = "Cut..." cmbCtrl.FaceId = 21 Set cmbCtrl = .Controls.Add(msoControlButton, 19, , , False) ' Copy cmbCtrl.Caption = "Copy..." cmbCtrl.FaceId = 19 Set cmbCtrl = .Controls.Add(msoControlButton, 22, , , False) ' Paste cmbCtrl.Caption = "Paste..." cmbCtrl.FaceId = 22 Set cmbCtrl = .Controls.Add(msoControlButton, 210, , , False) 'Sort Ascending cmbCtrl.BeginGroup = True cmbCtrl.Caption = "فرز تصاعدي..." cmbCtrl.FaceId = 210 Set cmbCtrl = .Controls.Add(msoControlButton, 211, , , False) 'Sort Decending cmbCtrl.Caption = "فرز تنازلي..." cmbCtrl.FaceId = 211 End With Set cmb = Nothing End Function . وشرح الكود: احنا توسعنا في الكود الاساسي ، واضفنا له : 1. تسمية اختيارية غير الافتراضية ، لاحظ في الصورة اعلاه اني استعملت الانجليزي والعربي ، 3. وهو لعمل خط فاصل في الصورة بين مجموعة قطع/نسخ/لصق ومجموعة فرز تصاعدي/تنازلي ، . 2. ممكن ان نبدل الصورة الافتراضية التي تيجي مع الرقم ، بتبديل هذا الرقم (لاحظ صورة الاسهم للتصاعدي/التنازلي) : . ومرفق ارقام جميع الصور الموجودة في الاكسس : . . . . . . . . . . . في قاعدة البيانات المرفقة myRight_Click.mdb ، بالاضافة الى القوائم الثابته اعلاه ، تم اضافة هذه القائمة ايضا : . والتقرير يحتوي على القائمة المؤقته التالية : . - ملف الاكسل myList.xlsx ، اخترت فيه اهم القوائم في وجهة نظري ، - ملف الاكسل AccessControls_2010.xlsx ، من مايكروسوفت ، يحتوي على جميع الاوامر 🙂 جعفر المصادر: http://dev-soln.com/access-shortcut-right-click-tool/ https://www.experts-exchange.com/articles/12904/Understanding-and-using-CommandBars-Part-II-Creating-your-own.html https://filedb.experts-exchange.com/incoming/2014/02_w06/833359/CommandBars-II.mdb https://www.experts-exchange.com/articles/18341/CommandBars-Part-III-Using-Built-in-Shortcut-Menus.html http://www.skrol29.com/us/vtools.php AccessControls_2010.xlsx myList.xlsx myRight_Click.zip
- 19 replies
-
- 31
-
-
-
- القائمة المختصرة
- shortcut menu
-
(و2 أكثر)
موسوم بكلمه :
-
ان شاء الله سنة 2020 تكون سنة خير على الجميع
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
شكرا جزيلا ، هدية جميلة 🙂 جعفر -
السلام عليكم 🙂 . جعفر
- 13 replies
-
- 10
-
-
شرح لداله strcomp شرح بسيط لداله StrComp لمقارنه النصوص
jjafferr replied to أبوبسمله's topic in قسم الأكسيس Access
همممم مسكتني من يدي اللي توجعني 🙂 مو كل شيء في قاعدة البيانات استعمله ، وهاي منهم 🙂 جعفر -
شرح لداله strcomp شرح بسيط لداله StrComp لمقارنه النصوص
jjafferr replied to أبوبسمله's topic in قسم الأكسيس Access
السلام عليكم 🙂 في الواقع احد اهم الاشياء في هذه الدالة هي التفرقة بين الحروف الكبيرة والصغيرة (بالانجليزي طبعا) ، لكلمة السر 🙂 ?Strcomp("A","a",vbBinaryCompare) -1 ?Strcomp("a","a",vbBinaryCompare) 0 ?Strcomp("Jj","jj",vbBinaryCompare) -1 ?Strcomp("jj","JJ",vbBinaryCompare) 1 فإذا النتيجة = 0 ، فتكون كلمة السر مطابقة ، وإلا ، فكلمة السر غلط 🙂 جعفر -
وعليكم السلام 🙂 واهلا وسهلا بك في المنتدى 🙂 رجاء مراجعة قوانين المنتدى : قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف اما انا ، فما احب اعمل تغيير في اعدادات العميل ، لأنها تطبق على جميع برامج اكسس اللي يتم تشغيلها في ذلك الكمبيوتر ، ممكن عمل اللي تريده هكذا: على حدث "التركيز" للحقل ABC ، اكتب: me.ABC.sellength = 0 جعفر
-
فتح نموذج من نموذج آخر على السجل المحدد في النموذج الاول
jjafferr replied to عزالدين المنصوري's topic in قسم الأكسيس Access
السلام عليكم 🙂 لوسمحت افتح موضوع جديد لهذا السؤال ، حفاظا على قوانين المنتدى 🙂 جعفر -
مشكلة عند حذف اوفيس 2010 وتنصيب اوفيس 2016
jjafferr replied to AmirAdams's topic in قسم الأكسيس Access
شكرا جزيلا على التوضيح 🙂 جعفر -
مشكلة عند حذف اوفيس 2010 وتنصيب اوفيس 2016
jjafferr replied to AmirAdams's topic in قسم الأكسيس Access
شو كانت المشكلة ؟ وكيف حليت المشكلة ؟ جعفر -
الامر SelLength معناه Selected Length ، اي البيانات التي تم اختيارها وتظليلها ، فإذا كانت القيمة في حقل او كومبوبوكس = "123456" ، ثم تم اختيار/تظليل الرقمين 34 ، فقيمة SelLength ستكون 2 ، ولكن لو لم يتم اختيار/تظليل اي رقم ، فقيمة SelLength ستكون صفر !! لذلك ، فهذه الدالة لا علاقة لها بطول النص في الحقل 🙂 جعفر
-
مشكلة عند حذف اوفيس 2010 وتنصيب اوفيس 2016
jjafferr replied to AmirAdams's topic in قسم الأكسيس Access
هذا معناه ان البرنامج معمول على وندوز ليس عربي !! فما هي اللغة اللي كان عليها الكمبيوتر لما عملت البرنامج؟ هل هناك حروف اجنبية (مو انجليزية) في البرنامج ؟ اعمل التالي: اعمل بملف اكسس جديد ، 1. استورد جميع الكائنات من الملف القديم ، وشغل البرنامج ، اذا اشتغل بدون مشاكل ، فقد تم حل المشكلة 🙂 وإلا ، اعمل بملف اكسس جديد ، 2. استورد الجداول فقط من الملف القديم ، وشغل البرنامج ، اذا اشتغل بدون مشاكل: ثم استورد الاستعلامات فقط من الملف القديم (طبعا الجداول ستكون موجودة) ، وشغل البرنامج ، اذا اشتغل بدون مشاكل: ثم استورد نموذج واحد فقط من الملف القديم ، وشغل البرنامج ، اذا اشتغل بدون مشاكل: تابع في استيراد النماذج والتقارير ، واحدا واحد ، الى ان تعرف النموذج/التقرير اليي فيه المشكلة ، فيجب عليك ان تعيد صنعه مرة ثانية. جعفر -
همممم ، كنت اعتقد ان شرحي كان واضح ، ولكن مافي مانع من المحاولة مرة خرى : Debug.Print Len("234") = 3 Debug.Print Len("") = 0 Debug.Print Len(Null) = Null Debug.Print Len(Null & "") = 0 في مثالك If Len(Text) < 0 Then Text = "123456" Len(Text) = 6 Text = "انا جعفر" Len(Text) = 7 Text = "" Len(Text) = 0 Text = Null Len(Text) = Null يعني ما نحصل على طول الكلمة ، وانما نحصل على هذه الكلمة ولكن في مثالي If Len(Text & "") < 0 Then Text = "123456" Len(Text & "") = 6 Text = "انا جعفر" Len(Text & "") = 7 Text = "" Len(Text & "") = 0 Text = Null Len(Text & "") = 0 لهذا السبب ، جرب المثال على كمبيوترك ، واحكم بنفسك 🙂 جعفر
-
جرب واعطنا النتيجة : Debug.Print Len(Null)
-
وعليكم السلام 🙂 استخدم فاصل الاسطر : vBCrLf مثلا : السطر الاول & vBCrLf & السطر الثاني Constant Value Description ---------------------------------------------------------------- vbCr Chr(13) Carriage return vbCrLf Chr(13) & Chr(10) Carriage return–linefeed combination vbLf Chr(10) Line feed vbCr : - return to line beginning Represents a carriage-return character for print and display functions. vbCrLf : - similar to pressing Enter Represents a carriage-return character combined with a linefeed character for print and display functions. vbLf : - go to next line Represents a linefeed character for print and display functions. جعفر
-
نعم انا فهمت السؤال ، وجوابي كان ، اذا ABC = Null فسيكون الجواب len([ABC]) = Null ، بينما نحن نريد الجواب ان يكون len([ABC]) = 0 جعفر
-
الهدف من استعمال سطر واحد بدل عن مجموعة اوامر ، هو لتسهيل الامر والكود علينا ، ومعرفتنا اذا الحقل فيه قيمة ، معناه ان طول القيمة والتي نعرفها عن طريق الامر Len فإننا نريد ان نعرف اذا طول الحقل = 0 او لا اليك نتائج هذه العمليات : Debug.Print Len("234") = 3 Debug.Print Len("") = 0 Debug.Print Len(Null) = Null Debug.Print Len(Null & "") = 0 فالامر Len اعطانا قيمة 0 لما قيمة الحقل تكون "" ولكنه اعطانا Null لما قيمة الحقل تكون Null ، ولكن Null ليس رقم ،مما يجعلنا نضطر نرجع الى الامر IsNull ، معناه انه يجب ان نستخدم اكثر من امر في السطر الواحد (كما اوضحت سابقا). جعفر
-
وهنا توضيح للدالة بمثال : الطريفة اللي اتبعها انا للتعامل مع الحقل ، سواء الفارغ او Null او بدون قيمة : بدل عن if isnull([ABC]) or [ABC]="" then استعمل if len([ABC] & "") = 0 then جعفر 🙂