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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. من يركب البحر ، لا يخشى من الغرق ولكن الجواب على سؤالك الاصل لا علاقة له بـ "التعقيد" وهنا اخونا العود ابو خليل يتكلم عن التحزيم (انا لم استعمل اي برامج تحزيم ، لذا فلا افهم فيها) ، في موضوع يخص سؤالك كذلك: جعفر
  2. خليني ما اتفاعل ولا اجر نفسي في سؤال جديد المهم ان طلبك تم تنفيذه والحمدلله جعفر
  3. ملف الـ vbs يمكنك عمله برمجيا ، وكذلك يمكنك التحكم برمجيا (commad line) في برنامج تحويل vbs الى exe ، وكلاهما تستطيع عمله بواسطة برنامج اكسس وسيط ، يعني اول ما تفتح برنامج التحزيم ، اجعل برنامج الاكسس الوسيط ينفتح ، ويطلب منك مسار التنصيب ، ومنها يقوم الاكسس بعمل الخطوات اعلاه برمجيا وعند انتهاء هذا البرنامج الوسيط من عمله ، اجعله يحذف نفسه ، او اجعل البرنامج الجديد عندما يفتح ، يحذف البرنامج الوسيط جعفر
  4. تستطيع ان تغير المسار كما تشاء ، هذا مجرد سطر ، وتقدر تكتبه بأي برنامج ، يعني تقدر تعمل هذه الاسطر جميعها برمجيا ، حسب المسار الذي يريده المستخدم جعفر
  5. حياك الله شو قصدك انعاش النموذج؟ جعفر
  6. وعليكم السلام اخي حسين ، انت تعرف جيدا ان المنتدى مفتوح لجميع الاعضاء ، فأي مرفق يوضع فيه ، يستطيع الاعضاء انزاله ، وهو لا يخالف قوانين المنتدى (وقد لا يعرف الاعضاء انك لا ترضى بإستعماله بدون إذنك ، لأنك لم تذكر ذلك في مشاركتك) ، والواجب عمله في اي مشاركة ، هي ارفاق عيّنة من قاعدة بياناتك ، وفيها فقط الجزئية التي تحتاج النظر فيها ، وبأقل قدر من البيانات. والآن الى حل موضوعك: رجاء اعطائي الروابط التي بها مرفقاتك (التي ارفقتها انت في الموضوع) والتي تريد حذفها. جعفر
  7. وعليكم السلام تفضل: me.New_Date= DateAdd("d",[Number of Days]-1,DateSerial(Year(Date()),Month(Date()),1)) اي التاريخ= DateAdd("d",[عدد ايام الحضور]-1,DateSerial(Year(Date()),Month(Date()),1)) جعفر
  8. جيد في الحدث Current ، اوقف كل الحدث ، ومجرد جرب msgbox "OK"
  9. بدل الفاصلة ، استخدم الفاصلة المنقوطة نظام الكمبيوتر عندي انجليزي فيستخدم الفاصلة ، بينما النظم العربية تحتاج الفاصلة المنقوطة جعفر
  10. عليكم السلام اولا تغير Private الى Public حتى تستطيع بقية كائنات الاكسس رؤيتها ، public Sub Form_Current() ثم تستعمل الكود التالي عند مناداة ذلك الحدث: Form_Forme_Fatora. وسيعطيك الاكسس جميع الخيارات التي تستطيع التحكم فيها لذلك النموذج ثم سترى Form_Current() ليصبح الكود عندك Form_Forme_Fatora.Form_Current() . جعفر
  11. وعليكم السلام الكود يجب ان يكون <> Date() - 1 او <>DateDiff("d",-1,Date()) جعفر
  12. وتغيير اخير ، إضافة عرض الحقول بغير بيانات ، الى الحقول التي بها بيانات ، وبهذه الطريقة الحقول دائما تملئ عرض التقرير عمل التجربة في تقرير جديد: . . جعفر 783.عرض تقرير.zip
  13. وعليكم السلام قام اخي @Shivan Rekany بالرد على نفس السؤال هنا: جعفر
  14. عذرا رجاء حذف حدث الحقل ، فقد كنت استعمله للتجربة ونسيت ان احذفه جعفر
  15. السلام عليكم رجاء متابعة عمل الاستعلام 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
  16. مرفقك كان فيه مشكلة!! الآن عند استعمال + و - ، يجب ان تكون في حقل التاريخ جعفر 785..accdb.zip
  17. حياك الله
  18. زر الصفحة لأعلى وزر الصفحة لأسفل ، هذه الازرار محجوزة للأكسس ، فأنا غيرت لك الكود علشان تستعمل السهم الاعلى والسهم الاسفل ، بدل الازرار اعلاه: 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
  19. 1. اذن الكود الذي ارفقته يعمل!! 2. رجاء ارفاق صورة من رسالة الخطأ. جعفر
  20. وعليكم السلام بدل 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 جعفر
  21. السلام عليكم انا قلت "المفروض" ، وما قلت ما يصير !! الاستعلام اصبح: 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])); . والنتيجة: . جعفر
  22. السلام عليكم استعمل الاداة: . لكي تعرض الكود في المشاركة بطريقة صحيحة ، ليسهل علينا قراءة الكود : 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 . جعفر
  23. السلام عليكم تستطيع عمل استعلام CrossTab ، والذي سيعطيك نتائج صحيحة ، . . ولكن في التقرير يمكنك مسبقا ان تضيف كم سنه للمستقبل ، وبرمجيا تخبئ العمود اذا مافي بيانات لتلك السنه ، وهذه طريقة عمل الاعمدة في استعلام CrossTab واللي على اساسه تعمل التقرير: . وهناك طريقة اخرى لعمل التقرير: . وهنا سؤال آخر عن نفس الموضوع: جعفر 783.عرض تقرير.accdb.zip
×
×
  • اضف...

Important Information