-
Posts
10148 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
415
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
جرب واعطنا النتيجة : 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 جعفر 🙂
-
مشكلة عند حذف اوفيس 2010 وتنصيب اوفيس 2016
jjafferr replied to AmirAdams's topic in قسم الأكسيس Access
هذا لا علاقة له بالاوفيس ، وانما بإعدادات لغة Unicode الوندوز : جعفر -
استخلاص البيانات من خلال الرقم القومى للعميل
jjafferr replied to figo82eg's topic in قسم الأكسيس Access
قواعد المشاركة فى الموقع اضغط هنـــــــــامن فضلك لقراءة القواعد كاملة و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ومخالفة ذلك تعرض الموضوع للحذف. المنتدى مليء بعدة امثلة لطلبك، فقط استخدم خاصية البحث فيه. -
انا اعتذر منك ، فقد انت تشوف انه واضح من وجهة نظرك ، لأنك تشوف كل شيء امامك ، وقد يكون واضح لشخص غيري ، ولكنه غير واضح بالنسبة لي ، لهذا السبب تشوف اني كنت اتكلم عن اغلاق برنامج ، واعطيتك رابط له. على العموم ، اكرر اعتذاري ، وبالتوفيق ان شاء الله 🙂 جعفر
-
كيفية تشغيل النماذج تحت بيئة النموذج الرئيسي
jjafferr replied to AmirAdams's topic in قسم الأكسيس Access
السلام عليكم 🙂 اعمل زر في النموذج الرئيسي علشان يتحكم في النموذج الفرعي ليذهب للسجل التالي ، وضع عليه هذا الكود : اسم النموذج الفرعي.SetFocus DoCmd.GoToRecord , , acNext جعفر -
تشغيل كود/ ماكرو خاص بالإكسل من برنامج الأكسس
jjafferr replied to Hamdi Edlbi-khalf's topic in قسم الأكسيس Access
حياك الله 🙂 ومبارك لك جهودك للمضي قُدما ، بدون استسلام 🙂 انا كذلك لا الجئ الى المكتبات لنفس السبب 🙂 جعفر -
تشغيل كود/ ماكرو خاص بالإكسل من برنامج الأكسس
jjafferr replied to Hamdi Edlbi-khalf's topic in قسم الأكسيس Access
ما فهمت قصدك !! -
تشغيل كود/ ماكرو خاص بالإكسل من برنامج الأكسس
jjafferr replied to Hamdi Edlbi-khalf's topic in قسم الأكسيس Access
وعليكم السلام اخوي خلف 🙂 من زمان ما سمعنا منك ، ان شاء الله تكون في صحة وعافية 🙂 من اللي قرأته ، ومن تجربة سابقة ، مو كل الاوامر متاحة للتحكم في الاكسل من الاكسس ، اذا استعملت : Dim xlApp As Object فيجب ان لا تستعمل هذه الطريقة ، وانما بدلا عنها ، تستخدم المكتبة : Microsoft Excel x.xx object Library ولكن ، هناك دائما اوامر وطرق اخرى للوصول الى مبتغاك ، والمشكلة عندك في الجزء الاخير من السطر : end(xlup).row لذا انصحك تبحث في الانترنت عن هذه الجزئية فقط ، وايجاد البديل 🙂 جعفر -
الرجاء التعديل على كود vba في وحدة نمطية
jjafferr replied to haniameen's topic in قسم الأكسيس Access
شكرا على التوضيح 🙂 جعفر -
الرجاء التعديل على كود vba في وحدة نمطية
jjafferr replied to haniameen's topic in قسم الأكسيس Access
واقتراح : الوحدة النمطية بحاجة الى الحقول اللي فيها ارقام فقط مثل zey_en_1 ، وليست بحاجة الى الحقول اللي فيها نعم لا مثل es_en_1 ، فإذا الحقول zey فيها قيمة ، فهي زيادة ، واذا مافيها قيمة ، فهي لا 🙂 جعفر -
الرجاء التعديل على كود vba في وحدة نمطية
jjafferr replied to haniameen's topic in قسم الأكسيس Access
تفضل ، بتغيير في الوحدة النمطية ، بحيث الزائد صار له متغير مختلف عن الـ لا 🙂 . Option Compare Database 'حساب مستوى الدرجة Function zyd_1(a, b, c, d, e, f) As String 'a = المجموعة النوعية Dim A_1, E_1, D_1, A_2, E_2, D_2 As String 'اللغة العربية If a > 0 Then A_1 = "زيادة في اللغة العربية " & a & " درجة" ElseIf d = "لا" Then A_2 = " لم يزد في اللغة العربية " End If 'اللغة الأجنبية If b > 0 Then E_1 = "زيادة في اللغة الأجنبية " & b & " درجة" ElseIf e = "لا" Then E_2 = " لم يزد في اللغة الأجنبية " End If 'الدراسات If c > 0 Then D_1 = "زيادة في الدراسات " & c & " درجة" ElseIf f = "لا" Then D_2 = " لم يزد في الدراسات " End If 'الدمج 'الزيادة zyd_1 = "" If Len(A_1) > 0 Then zyd_1 = A_1 End If If Len(E_1) > 0 Then zyd_1 = zyd_1 & " و " & E_1 End If If Len(D_1) > 0 Then zyd_1 = zyd_1 & " و " & D_1 End If 'لم تزد If Len(A_2) > 0 Then zyd_1 = zyd_1 & " و " & A_2 End If If Len(E_2) > 0 Then zyd_1 = zyd_1 & " و " & E_2 End If If Len(D_2) > 0 Then zyd_1 = zyd_1 & " و " & D_2 End If 'اذا في واو في بداية الجملة فلا تقرأها If Left(zyd_1, 3) = " و " Then zyd_1 = Mid(zyd_1, 4) End If End Function جعفر 1162.1.tzalom.mdb.zip -
الرجاء التعديل على كود vba في وحدة نمطية
jjafferr replied to haniameen's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تفضل : . وهذه الوحدة النمطية بعد التعديل : Option Compare Database 'حساب مستوى الدرجة Function zyd_1(a, b, c, d, e, f) As String 'a = المجموعة النوعية Dim A_1, E_1, D_1 As String 'اللغة العربية If a > 0 Then A_1 = "زيادة في اللغة العربية " & a & " درجة" ElseIf d = "لا" Then A_1 = " لم يزد في اللغة العربية " End If 'اللغة الأجنبية If b > 0 Then E_1 = "زيادة في اللغة الأجنبية " & b & " درجة" ElseIf e = "لا" Then E_1 = " لم يزد في اللغة الأجنبية " End If 'الدراسات If c > 0 Then D_1 = "زيادة في الدراسات " & c & " درجة" ElseIf f = "لا" Then D_1 = " لم يزد في الدراسات " End If 'الدمج zyd_1 = "" If Len(A_1) > 0 Then zyd_1 = A_1 End If If Len(E_1) > 0 Then zyd_1 = zyd_1 & " و " & E_1 End If If Len(D_1) > 0 Then zyd_1 = zyd_1 & " و " & D_1 End If 'اذا في واو في بداية الجملة فلا تقرأها If Left(zyd_1, 3) = " و " Then zyd_1 = Mid(zyd_1, 4) End If End Function جعفر 1162.tzalom.mdb.zip -
اخي الفاضل بمجرد ان تفتح الالة الحاسبة وتستعمل الكود ، صحيح ما يشتغل ، ولكنك لو تتبعت الخطوات اللي اعطيتك ونظرت في قائمة مدير المهام ، لرأيت بأن مايكروسوفت غيروا اسم الالة الحاسبة في الوندوز الجديد ، والملف الجديد مو تنفيذي (يعني ماهو بصيغة exe) لذلك فلا يمكن اغلاقه بهذه الطريقة !! جرب الكود على اي من البرامج الاخرى ، فهو شغال ، وجربته قبل شوي مع برنامجين مختلفين !! هل تقصد ان النيترو يشتغل داخل نموذج في برنامج الاكسس ؟ اذا كان كذلك ، فيجب اغلاق النموذج او تغيير ملف الملف المفتوح وفتح ملف آخر ، ثم حذف الملف المطلوب. اخي الفاضل ، ياريت يكون عندك توضيح وبالتفصيل ، لأنه بعد حوالي شهر من وضعك للسؤال فهمت الآن (وان شاء الله فهمي صحيح!!) ان النيترو تفتحه في نموذج في برنامج الاكسس !! جعفر
-
في الواقع ما كنت مرتاح من المسافات بين السنوات ، وخصوصا المسافات بين الدرجات ، فتوصلت الى التالي : التقرير rpt_4 مصدر بياناته هو الاستعلام qry_4 والذي هو نسخة من qry_3 ، ولكننا ننادي وحدة نمطية تختلف قليلا عن سابقتها ، فهنا نستعمل لغة HTML : 1. الاستعلام qry_4 ، ونرسل البيانات المطلوبة الى الوحدة النمطية Year_Report_HTML . 2. وهذه هي الوحدة النمطية : Public Function Year_Report_HTML(lbl_str As String, id As Long) As String On Error GoTo err_Year_Report_HTML 'On Error Resume Next DoCmd.DeleteObject acQuery, "NewQueryDef" On Error GoTo err_Year_Report_HTML Dim rst As DAO.Recordset Dim lbl, str, mySQL As String mySQL = "Select * From qry_1 Where [Table2_id]=" & id & " Order By Table2_id desc" Set rst = CurrentDb.OpenRecordset(mySQL) Do While Not rst.EOF 'lbl = lbl & rst!Yearr & " " '2 spaces 'str = str & " " & rst!Report & " " '1 space and 8 spaces lbl = lbl & "<font color=black>" & rst!Yearr & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & "</font>" str = str & "<font color=white>" & ChrW(&H2588) & "</font><font color=black>" & rst!Report & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & ChrW(&H2588) & "</font>" rst.MoveNext Loop If lbl_str = "lbl" Then Year_Report_HTML = lbl Else Year_Report_HTML = str End If Exit_Year_Report_HTML: rst.Close: Set rst = Nothing Exit Function err_Year_Report_HTML: If Err.Number = 3061 Then 'too few parameters, expected 1 or more 'this error occurs when trying to run a query which needs its parameters from a Form, 'the Form should be open with the parameter, then this code take the values properly Dim qdf As QueryDef Dim prm As Parameter Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", mySQL) For Each prm In qdf.Parameters prm.Value = Eval(prm.Name) Next prm Set rst = qdf.OpenRecordset(dbOpenDynaset) DoCmd.DeleteObject acQuery, "NewQueryDef" Resume Next ElseIf Err.Number = 7874 Then 'could not find QueryDef Resume Next ElseIf Err.Number = 2486 Then 'could not delete QueryDef Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function . ونلاحظ اننا نعطلي لون اسود للسنوات والدرجات ، ولكننا نعطي اللون الابيض "للمسافة" ، يعني فقط اطبع هذا التقرير على ورق ابيض ، حتى لا ترى "المسافات" : . 3. الحقلين الذين في الاستعلام ، نراهم هنا . وهذه اعدادات الحقلين حتى يأخذوا لغة HTML . والنتيجة : . جعفر 1161.tt.accdb.zip
-
الله يطول في عمرك اخوي ، هذا كان مثال ، والمثال يُغلق البرنامج calc.exe وهو الآله الحاسبه !! لذلك ، بدل هذا الاسم ، يجب ان تعرف اسم برنامجك ، ثم تستعمل اسم برنامجم بدل الاسم الموجود بالخط الاحمر ، ولمعرفة ايش اسم برنامج النيترو ، انظر الى هذا المثال (انا ما عندي نيترو علشان اعرف الاسم) : من شريط المهام اسفل الشاشة ، انقر بالفأرة اليمين ، فترى النافذة التالية : . فاذا اردنا معرفة اسم برنامج irfanView (المؤشر عليه بالسهم) (انت لازم تؤشر على اسم برنامج النيترو) ، وتنقر عيه بالفأرة اليمين ، ثم الاعدادات : . فنرى اسم البرنامج . استخدم اسم النيترو بدل الاسم باللون الاحمر في الكود ، ثم جرب برنامجك 🙂 جعفر
-
وعليكم السلام 🙂 الاستعلام الضمني الذي عملته انت كمصدر بيانات للتقرير Table1 هو اساس العمل ، فأخذت نسخه منه وعملته كاستعلام مستقل اسمه qry_1 ، والذي به معايير السنوات 🙂 اصبح لدينا : 1. مصدر بيانات تقريرك Table1 هو الاستعلام qry_1 ، 2. جعلت الاستعلام qry_1 مصدر بيانات للاستعلام الجدولي qry_2 ، والاستعلام qry_2 مصدر بيانات التقرير rpt_2 ، 3. صحيح ان التقرير rpt_2 شغال تمام ، ولكنه يحتوي على السنوات (2017 و 2018 و 2019) التي تم استعمالها كمعيار للاستعلام qry_1 ، مما يعني ان التقرير يجب تعديله يدويا كلما تغيرت السنوات !! على هذا الاساس ، اشتغلت على الاستعلام qry_3 واللي مصدر بياناته qry_1 ، ولكني استعملت وحدة نمطية لتعطيني السنوات ، حقل للسنوات lbl (وندمج فيه جميع السنوات) وحقل للدرجة str (وندمج فيه جميع الدرجات) ، ونستعمل "المسافات" لنفرز المسافات بينها ، التقرير rpt_3 مصدر بياناته هو الاستعلام qry_3 . جعفر 1161.tt.accdb.zip
-
اعرف ان السؤال التالي سيكون ، وهل هناك طريقة علشان ما يكون هناك مسافات فارغة مكان الحقول المخفاة !! والجواب بعمل تقرير فرعي ، هكذا : . . جعفر 1159.1.Certificates.accdb.zip
-
السلام عليكم 🙂 استعمل هذا الكود في التقرير Documents1 : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) '1 If Me.annaul_1 = -1 Then Me.annaul_1.Visible = False: Me.based1.Visible = False: Me.rang1.Visible = False: Me.rang2.Visible = False Else Me.annaul_1.Visible = True: Me.based1.Visible = True: Me.rang1.Visible = True: Me.rang2.Visible = True End If '2 If Me.annaul_2 = -1 Then Me.annaul_2.Visible = False: Me.based2.Visible = False: Me.rang3.Visible = False: Me.rang4.Visible = False Else Me.annaul_2.Visible = True: Me.based2.Visible = True: Me.rang3.Visible = True: Me.rang4.Visible = True End If '3 If Me.annual_3 = -1 Then Me.annual_3.Visible = False: Me.based3.Visible = False: Me.rang5.Visible = False: Me.rang6.Visible = False Else Me.annual_3.Visible = True: Me.based3.Visible = True: Me.rang5.Visible = True: Me.rang6.Visible = True End If '4 If Me.annual_4 = -1 Then Me.annual_4.Visible = False: Me.based4.Visible = False: Me.rang7.Visible = False: Me.rang8.Visible = False Else Me.annual_4.Visible = True: Me.based4.Visible = True: Me.rang7.Visible = True: Me.rang8.Visible = True End If '5 If Me.annual_5 = -1 Then Me.annual_5.Visible = False: Me.based5.Visible = False: Me.rang9.Visible = False: Me.rang10.Visible = False Else Me.annual_5.Visible = True: Me.based5.Visible = True: Me.rang9.Visible = True: Me.rang10.Visible = True End If '6 If Me.annual_6 = -1 Then Me.annual_6.Visible = False: Me.till.Visible = False: Me.rang11.Visible = False: Me.rang12.Visible = False Else Me.annual_6.Visible = True: Me.till.Visible = True: Me.rang11.Visible = True: Me.rang12.Visible = True End If End Sub . كما ان الاستعلام مصدر بيانات التقرير يجب ان يُصبح: . فيصبح التقرير: . جعفر 1159.Certificates.accdb.zip
-
السلام عليكم 🙂 لو وضعت مثال من اول مشاركة ، ولوضح الامر 🙂 كذلك ، اذا فهمتك صح : اعمل هذا التغيير في الاستعلام هكذا: فستكون النتيجة: . جعفر
-
هي موجودة في قاعدة البيانات ، ولكن مخفية 🙂 جعفر