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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. عليكم السلام اولا تغير Private الى Public حتى تستطيع بقية كائنات الاكسس رؤيتها ، public Sub Form_Current() ثم تستعمل الكود التالي عند مناداة ذلك الحدث: Form_Forme_Fatora. وسيعطيك الاكسس جميع الخيارات التي تستطيع التحكم فيها لذلك النموذج ثم سترى Form_Current() ليصبح الكود عندك Form_Forme_Fatora.Form_Current() . جعفر
  2. وعليكم السلام الكود يجب ان يكون <> Date() - 1 او <>DateDiff("d",-1,Date()) جعفر
  3. وتغيير اخير ، إضافة عرض الحقول بغير بيانات ، الى الحقول التي بها بيانات ، وبهذه الطريقة الحقول دائما تملئ عرض التقرير عمل التجربة في تقرير جديد: . . جعفر 783.عرض تقرير.zip
  4. وعليكم السلام قام اخي @Shivan Rekany بالرد على نفس السؤال هنا: جعفر
  5. عذرا رجاء حذف حدث الحقل ، فقد كنت استعمله للتجربة ونسيت ان احذفه جعفر
  6. السلام عليكم رجاء متابعة عمل الاستعلام CrossTab في اول مشاركة اعلاه، الان نريد التقرير ان يكون الى سنة 2020 مثلا ، فلاحظ اننا اضفنا هذه السنوات في عمود السنوات Yeaa ، والذي هو "مسمى للعمود" Column Heading : . على اساسه ، نرى ان الاستعلام اعطانا اعمدة للسنوات التي اردناها ، والسنه اللي ما فيها قيمة ، تركها فاضية (وهو المطلوب): . طلبت من الاكسس يعمل تقرير من الاستعلام ، ونرى ان الاستعلام هو مصدر بيانات التقرير: . لاحظ طريقة تسميتنا لكائن التسمية ، وقمنا بهذا العمل لتسهيل عمل الكود: . ثم استعملنا هذا الكود ، ليجعل عرض الحقول = 0 ، للسنوات التي لا يوجد بها قيمة ، ويخفيها كذلك: Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Dim ctrl As Control Dim A As Integer For Each ctrl In Me.Controls If ctrl.ControlType = acTextBox And IsNumeric(ctrl.Name) Then A = DCount("*", "Table1", "[Yeaa]=" & Val(ctrl.Name)) 'Debug.Print "A " & A & "-" & ctrl.Name If A = 0 Then ctrl.Width = 0 ctrl.Visible = False Me("Label_" & ctrl.Name).Width = 0 Me("Label_" & ctrl.Name).Visible = False Else ctrl.Width = 1 * 1440 ctrl.Visible = True Me("Label_" & ctrl.Name).Width = 1 * 1440 Me("Label_" & ctrl.Name).Visible = True End If End If Next End Sub . وهذه هي النتيجة ، اعطانا التقرير السنوات التي بها قيمة فقط: . وللتجربة ، اضفنا قيمة لسنة 2018 . فكانت نتيجة التقرير ، وهو المطلوب: . ولكن لم يعجبني تنسيق التقرير المائل لليسار ، فأردت ان اجعله في وسط الصفحة ، بغض النظر عن بيانات السنوات ، فأضفت حقل فاضي وكائن تسمية ، شفافي الخلفية والاطراف ، وغير مضمن: . وعليه ، تغير الكود ليقوم بتوسعة هذين الحقلين المطاطين ، فاصبح: Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Dim ctrl As Control Dim A As Integer Dim Empty_Cells As Integer Empty_Cells = 0 For Each ctrl In Me.Controls If ctrl.ControlType = acTextBox And IsNumeric(ctrl.Name) Then A = DCount("*", "Table1", "[Yeaa]=" & Val(ctrl.Name)) 'Debug.Print "A " & A & "-" & ctrl.Name If A = 0 Then ctrl.Width = 0 ctrl.Visible = False Me("Label_" & ctrl.Name).Width = 0 Me("Label_" & ctrl.Name).Visible = False Empty_Cells = Empty_Cells + 1 Else ctrl.Width = 1 * 1440 ctrl.Visible = True Me("Label_" & ctrl.Name).Width = 1 * 1440 Me("Label_" & ctrl.Name).Visible = True End If End If Next Me.Empty_Space.Width = (1 * 1440 * Empty_Cells) / 2 Me.Label_Empty_Space.Width = Me.Empty_Space.Width End Sub . وهذا التقرير بالتنسيق الجديد ، وبدون 2018 . وعند اضافة 2018 في بيانات الجدول ، نلاحظ ان التقرير اخذ تنسيقه الصحيح في وسط الصفحة كذلك: . فإقتراحي ان تجرب احجام الحقول (العرض المستخدم في هذا البرنامج هو 1 بوصة) والخط بما يتناسب في التقرير ، ثم تدخل في الاستعلام السنوات المستقبلية ، ويكون التقرير جاهز لكذا سنة في المستقبل ، الى ان تقوم بعمل تحديث للبرنامج ، وتحذف السنوات القديمة ، وتستبدلها بسنوات مستقبلية جديدة جعفر 783.عرض تقرير.accdb.zip
  7. مرفقك كان فيه مشكلة!! الآن عند استعمال + و - ، يجب ان تكون في حقل التاريخ جعفر 785..accdb.zip
  8. حياك الله
  9. زر الصفحة لأعلى وزر الصفحة لأسفل ، هذه الازرار محجوزة للأكسس ، فأنا غيرت لك الكود علشان تستعمل السهم الاعلى والسهم الاسفل ، بدل الازرار اعلاه: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 'KeyCode = 33 vbKeyPageUp PAGE UP key 'KeyCode = 34 vbKeyPageDown PAGE DOWN key 'KeyCode = 107 vbKeyAdd PLUS SIGN (+) key 'KeyCode = 109 vbKeySubtract MINUS SIGN (-) key 'KeyCode = 38 vbKeyUp UP ARROW key 'KeyCode = 40 vbKeyDown DOWN ARROW key If KeyCode = 107 Then tim = tim + 0.041666 ElseIf KeyCode = 109 Then tim = tim - 0.041666 'ElseIf KeyCode = 33 Then ElseIf KeyCode = 38 Then tim = tim + 1 'ElseIf KeyCode = 34 Then ElseIf KeyCode = 40 Then tim = tim - 1 End If End Sub
  10. 1. اذن الكود الذي ارفقته يعمل!! 2. رجاء ارفاق صورة من رسالة الخطأ. جعفر
  11. وعليكم السلام بدل tim_KeyDown ، استعمل Form_KeyDown Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 107 Then tim = tim + 0.041666 ElseIf KeyCode = 109 Then tim = tim - 0.041666 ElseIf KeyCode = 33 Then tim = tim + 1 ElseIf KeyCode = 34 Then tim = tim - 1 End If End Sub جعفر
  12. السلام عليكم انا قلت "المفروض" ، وما قلت ما يصير !! الاستعلام اصبح: SELECT Tabil_Visitors.id_visitors, Tabil_Visitors.Num_brnamge, Tabil_Visitors.service, Tabil_Visitors.Travel2, Nz(DCount("[Travel2]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " and [Travel2]=" & 1),0) AS Expr1, Nz(DCount("[Travel2]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " and [Travel2]=" & 2),0) AS Expr2, IIf([Travel2]=1 Or [Travel2]=2 Or [Travel2]=3 Or [Travel2]=6 Or [Travel2]=7 Or [Travel2]=8,Nz(DCount("[Travel2]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " And [Travel2]=" & [Travel2]),0),0) AS Expr3, IIf([service]=1 Or [service]=2 Or [service]=3 Or [service]=6 Or [service]=7 Or [service]=8,(SELECT TOP 1 Sum(1) AS Total_Beds_Flight FROM Tabil_Visitors WHERE (((Tabil_Visitors.service) In (1,2,3,6,7,8))) GROUP BY Tabil_Visitors.Num_brnamge HAVING (((Tabil_Visitors.Num_brnamge)=[forme_Fatora]![num_brnamge]));),0) AS TT FROM Tabil_Visitors WHERE (((Tabil_Visitors.Num_brnamge)=[forme_Fatora]![num_brnamge])); . والنتيجة: . جعفر
  13. السلام عليكم استعمل الاداة: . لكي تعرض الكود في المشاركة بطريقة صحيحة ، ليسهل علينا قراءة الكود : Private Sub p1_Click() If Now() - [time] > 0.01041667 And [error_level] = 3 Then [error_level] = 0 End If If IsNull([n3]) Then DoCmd.OpenForm "user1", acNormal Else If [error_level] = 3 Then Ms$ = "تم ايقاف المستخدم 15 دقيقة " Ti$ = "و" RE = MsgBox(Ms$, 0, Ti$) Else If IsNull([user_name]) Or IsNull([password]) Then Ms$ = "اضف اسم المستخدم وكلمة المرور" Ti$ = "و" RE = MsgBox(Ms$, 0, Ti$) Else If [user_name] = [n1] And [password] = [n2] Then DoCmd.OpenForm "user3", acNormal [error_level] = 0 DoCmd.Close acForm, "user2" Else [error_level] = [error_level] + 1 [time] = Now() Ms$ = "كلمة المرور خطأ للمرة" & [error_level] n2.SetFocus Ti$ = "و" RE = MsgBox(Ms$, 0, Ti$) End If End If End If End If End Sub وما فيه اي مشكلة وعند فتح احد النماذج مثلا CC نفتحه بهذا الكود If [CC] = 0 Then DoCmd.OpenForm "CCC" Else DoCmd.OpenForm "CC", acNormal, , , , acDialog End If . جعفر
  14. السلام عليكم تستطيع عمل استعلام CrossTab ، والذي سيعطيك نتائج صحيحة ، . . ولكن في التقرير يمكنك مسبقا ان تضيف كم سنه للمستقبل ، وبرمجيا تخبئ العمود اذا مافي بيانات لتلك السنه ، وهذه طريقة عمل الاعمدة في استعلام CrossTab واللي على اساسه تعمل التقرير: . وهناك طريقة اخرى لعمل التقرير: . وهنا سؤال آخر عن نفس الموضوع: جعفر 783.عرض تقرير.accdb.zip
  15. وعليكم السلام المفروض يكون عندك استعلام عام ، واستعلام تجميعي يكون فيه البيانات المطلوبة: . جعفر 779.1.QryVisitors.accdb.zip
  16. السلام عليكم اما انا ، فإن شاء الله افرد له موضوع مستقل ، وعلى راسي جعفر
  17. لا ما نريد القاعدة، مجرد الاسطر اللي أخبرتك، اللي لها علاقة بسؤالك جعفر
  18. حياك الله بس ياريت تضع لنا الحدثين (احذف الكود اللي ما له علاقة بموضوعنا) ، علشان يستفيد الكل جعفر
  19. السلام عليكم اخي عبدالله هذه احد اسراري ، وانت كشفتها ولكني جعلت إضافة القيمة وتغييرها من نموذج واحد ، ومن الصورة ترى عدد الحقول التي استعملتها في الجدول (مثل مثالك) : . وعندما يتم التعديل ، فيكون التعديل في هذا الجدول المخزن فيه القيمة للإختيار ، بالاضافة الى سجلات الجدول الذي يتم فيه اختيار هذه القيمة جعفر
  20. وعليكم السلام الحدث الذي عليه cmd_Search3 ، بدل ان يكون Private ، اجعله Public ، ثم في الحدث على cmd_Search اكتب هذا الكود: Form_frm_yy. ستحصل على قائمة الاوامر الموجودة في ذلك النموذج ، فاختار Form_frm_yy.cmd_Search3..... حيث ... يكون بقية اسم الحدث جعفر
  21. وهو كذلك ونتيجة المعادلة: Expr4: IIf([Travel2]=1 Or [Travel2]=2 Or [Travel2]=3 Or [Travel2]=6 Or [Travel2]=7 Or [Travel2]=8,Nz(DCount("[service]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " And [service]=" & [service]),0),0) Expr4: IIf([Travel2]=1 Or [Travel2]=2 Or [Travel2]=3 Or [Travel2]=6 Or [Travel2]=7 Or [Travel2]=8, Nz( DCount("[service]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " And [service]=" & [service]) ,0) ,0) . . كذلك النتيجة صحيحة جعفر 779.QryVisitors.accdb.zip
  22. معادلة العمود C كما كان: =(I6+H6+E6+D6)/5*J6 بينما اذا اضفنا العمود K لوضع المواد المعفاة بحرف م ، والعمود B فيه مجموع العلامات بإستثناء المعفاة م: =IF(K6="م",0,(I6+H6+E6+D6)/5*J6) . جعفر 781.كشف السنة الأولى ثانوي علمي.xlsx.zip
  23. شو السالفة ، نتائجنا ما تتفق انا اخذت المعادلة ، واشتغلت على طول: . وهاي المعادلة: Expr4: IIf([Travel2]=1 Or [Travel2]=2 Or [Travel2]=3 Or [Travel2]=6 Or [Travel2]=7 Or [Travel2]=8,Nz(DSum("[Travel2]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " And [Travel2]=" & [Travel2]),0),0) وهي Expr4: IIf([Travel2]=1 Or [Travel2]=2 Or [Travel2]=3 Or [Travel2]=6 Or [Travel2]=7 Or [Travel2]=8, Nz( DSum("[Travel2]","Tabil_Visitors","[Num_brnamge]=" & [Num_brnamge] & " And [Travel2]=" & [Travel2]) ,0) ,0) . ولكن ، استعمال الجمع غير صحيح ، لأنه ما عندك قيم علشان تجمعها ، وانما عندك خدمات تقوم بتعدادها (count او Dcount) جعفر
  24. السلام عليكم اخي طاهر رجاء فتح موضوع خاص بك ، فهذا الموضوع قديم وتمت الاجابة عليه!! جعفر
  25. السلام عليكم اخي طاهر رجاء فتح موضوع خاص بك ، فهذا الموضوع قديم وتمت الاجابة عليه!! جعفر
×
×
  • اضف...

Important Information