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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم مصدر النموذج عندك عبارة عن استعلام ، وفيه انت رابط الجداول الثلاثة مع بعض ، يعني كل جدول مرتبط بقيمة حقل جدول آخر ، وعندك الجدول raetb_tamb فاضي ، لهذا السبب النموذج عندك فاضي: . عبئ الجداول بمجموعة بيانات ، ثم انظر للنتائج انا ما شفت العلاقات ونوعها. جعفر
  2. وعليكم السلام سيدي الفاضل ، انا عملت شئ غير طلبك ، فعسى ان تقبله الاستعلام ، عملت استعلام اجمالي ، وطلبت منه ان يعطيني اول تاريخ للإجازة F ، وآخر تاريخ L : . ونتيجته: . فعملت كود لقسم تفصيل التقرير لجمع التاريخين ، حسب الشهر: Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer) 'make the date format FF = Format(Me.F, "dd-mm-yy") LL = Format(Me.L, "dd-mm-yy") 'if both days are the same, write one of them If Me.F = Me.L Then Me.iDates = FF Else 'if the dates are different, then 'if months are the same If Month(Me.F) = Month(Me.L) Then Me.iDates = Day(Me.F) & " - " & LL 'write the day of F, and full date of L Else Me.iDates = FF & " - " & LL 'otherwise write both dates End If End If End Sub . والنتيجة ، ان تاريخ الاجازة من 1 الى 2/2 ، والسبب اني وسعت حقل التاريخ ، حيث يمكن الاجازة تصير في شهرين مختلفين ، فيسعها حجم الحقل : . جعفر 286.برنامج حساب الاجازات 3.accdb.zip
  3. السلام عليكم الحقول: 1. الكمية2 ، وتأخذ قيمتها من المتبقي السابق ، وعند ادخال قيمة للمنصرف او الرجيع ، سترى ان قيمة الكمية2 تظهر تلقائيا ، 2. المستهلك2: وستحتسب تلقائيا من ، المنصرف السابق - الرجيع ، والا ، فانها ستكون صفر: جعفر 285.حساب الرجيع.mdb.zip
  4. وعليكم السلام أخي عبدالله البرنامج الذي ارفقته انا في مشاركتي السابقة يقوم بنفس الفكرة ، وكذلك فكرة أخوي ابوخليل وابو عبدالله هذه الخطوة سهلة ، ولكن الصعوبة كانت في رسائل msgbox ، لأنها من الكود ، والكود يقوم على اساس ANSI وليس UTF8 مثل بقية كائنات الاكسس ، وهناك طريقتين لحل هذه المشكلة: 1. إما عمل نموذج بمسمى frm_MsgBox مثلا ، ونجعله يقوم بعمل Msgbox ، 2. وإما بإستعمال كود بديل والموجود في المرفق(وبصراحة تعبت الى ان حصلت عليه) جرب المرفق واخبرنا النتيجة جعفر
  5. بالصورة ، ربطت الاسمين
  6. حيا الله السيد ، منور
  7. وعليكم السلام أخي الرسالة معناها ان اعدادات اللغة في جهازك لا تناسب العربية ، لذا استطيع ان افكر في حلين: 1. الرابط التالي ، فيه مرفق "المفروض ان" يعمل على جميع اعدادات الوندوز ، وفيه وحدة نمطية خاصة للرسائل: http://www.officena.net/ib/topic/67205-هل-من-حل-شافى-لمشكلة-اختلاف-اعدادات-اللغة-بالويندز-على-الأجهزة-المختلفة/?do=findComment&comment=437551 2. تغيير اعدادات لغة الكمبيوتر: http://www.officena.net/ib/topic/64955-مشكلة-عند-فتح-البرنامج-على-ويندوز-8/ جعفر
  8. وعليكم السلام ورحمة الله وبركاته انا اعتذر منك ، ولكني لا استطيع مساعدتك أكثر من هذا ، فالجواب الذي تركته لك هو من واقع اجابك على اسئلتنا التوضيحية أخي عبدالله ذكر لك: وانا طلبت منك: وحسب شرحك بتفصيل اكثر ، وخصوصا بمثال او مثالين من بيانات برنامجك ، يدعمه صور لشكل النتيجة ، فكل جزء يوضح الجز الاخر ، كان الرد جعفر
  9. السلام عليكم في الواقع صار لي كم يوم اشتغل على هذا البرنامج ، والمفروض يشتغل وبدون رسائل خطأ ، فلوسمحت أخي عبدالله ، جربه على جميع الاصدارات وجميع اللغات ، واعطنا النتيجة جعفر MultiLanguage3.zip
  10. السلام عليكم co2002co ان شاء الله مفهومي لشرحك صحيح ، لأنه كان جدا صعب عليّ واخذ وقت طويل !! تفضل: المرفق فيه نموذجين فقط Form1 و Form2 ، وتقوم الوحدة النمطية بإنتاج نسخ من Form2 كلما ضغطت على احد سجلات مربع القائمة: . هاي الوحدة النمطية المسؤلة عن انتاج نسخ من النموذج: Option Compare Database Option Explicit 'Author: Allen J Browne, July 2004 'Email: allen@allenbrowne.com Public clnClient As New Collection 'Instances of frmClient. Function OpenAClient() 'Purpose: Open an independent instance of form frmClient. Dim frm As Form 'Open a new instance, show it, and set a caption. Set frm = New Form_Form2 frm.Visible = True frm.Caption = frm.Hwnd & ", opened " & Now() 'Append it to our collection. clnClient.Add Item:=frm, Key:=CStr(frm.Hwnd) Set frm = Nothing End Function Function CloseAllClients() 'Purpose: Close all instances in the clnClient collection. 'Note: Leaves the copy opened directly from database window. Dim lngKt As Long Dim lngI As Long lngKt = clnClient.Count For lngI = 1 To lngKt clnClient.Remove 1 Next End Function . وهاي كود النموذج Form1: Private Sub TopicList_AfterUpdate() Call OpenAClient End Sub . وهاي كود النموذج Form2: Private Sub Form_Load() Me.Text1 = Forms.Form1.TopicList.Column(0) Me.Text2 = Forms.Form1.TopicList.Column(1) Me.Text3 = Forms.Form1.TopicList.Column(2) Me.Text4 = Forms.Form1.TopicList.Column(3) Me.Text5 = Forms.Form1.TopicList.Column(4) End Sub جعفر 284.db.mdb.zip
  11. السلام عليكم أخي نبيل تفضل: . ولكن الكود لن يعمل اذا رقم اللغة لم يكن صحيحا في الكود وهذا هو الكود: Option Compare Database Private Declare Function ActivateKeyboardLayout Lib _ "user32.dll" (ByVal myLanguage As Long, Flag As Boolean) As Long Private Const Ar = 5121 'Arabic United Arab Emirates keyboard language layout, Oman 8193 Private Const Fr = 1036 'Français(united states)keyboard language layout Private Const En = 1033 'US Private Sub cmd_Change_Language_Click() 'go back to the same field we were in, but to the end of it Dim ctl As Access.Control Set ctl = Screen.PreviousControl 'the last control we were on ctl.SetFocus 'set the focus back to it ctl.SelStart = Len(ctl.Text) 'go to the end of the field, so that we can continue writing If Me.cmd_Change_Language.Caption = "Arabic" Then Me.cmd_Change_Language.Caption = "French" Call ActivateKeyboardLayout(Ar, 0) ElseIf Me.cmd_Change_Language.Caption = "French" Then Me.cmd_Change_Language.Caption = "Arabic" Call ActivateKeyboardLayout(Fr, 0) End If End Sub Private Sub Form_Load() 'start with Arabic Call ActivateKeyboardLayout(Ar, 0) End Sub وهذا للقائمة المنسدلة Private Sub textlog_AfterUpdate() If Me.textlog.Value = "Arabic" Then Call ActivateKeyboardLayout(Ar, 0) ElseIf Me.textlog.Value = "French" Then Call ActivateKeyboardLayout(Fr, 0) End If End Sub . جعفر 283.Database changer.accdb.zip
  12. تفضل الاستعلام qry_Sum_dorat يعمل المطلوب ، ونتائجه في اسفل النموذج: . جعفر 282.مشاركين في الدورات.accdb.zip
  13. أخي عبدالرحمن ، وعلشان نكمل حيثما توقفت وبتعديل بسيط في الوحدة النمطية ، عملت لك التسلسل ، العليا والوسط والثالث . . وهذا هو الكود ، وبه التعديلات: Public Function fGetMaxNumber(ParamArray Values()) As Variant 'John Spencer UMBC CHPDM 'Last Update: April 5, 2000 'Returns the Maximum Number of a group of values passed to it. 'Sample call: myMax = GetMaxNumber("-21","TEST","2", "3",4,5,6,"7",0) 'returns 7 'Ignores values that cannot be treated as numbers. Dim I As Integer, vMax As Variant, tfFound As Boolean, dblCompare As Double '1 vMax = -1E+308 'very large negative number For I = LBound(Values) + 1 To UBound(Values) If IsNumeric(Values(I)) Then dblCompare = CDbl(Values(I)) If dblCompare > vMax Then vMax = dblCompare tfFound = True End If End If Next If tfFound Then A1 = vMax Else A1 = Null End If '2 vMax = -1E+308 'very large negative number For I = LBound(Values) + 1 To UBound(Values) If IsNumeric(Values(I)) And Val(Nz(Values(I), 0)) <> A1 Then dblCompare = CDbl(Values(I)) If dblCompare > vMax Then vMax = dblCompare tfFound = True End If End If Next If tfFound Then A2 = vMax Else A2 = Null End If '3 vMax = -1E+308 'very large negative number For I = LBound(Values) + 1 To UBound(Values) If IsNumeric(Values(I)) And Val(Nz(Values(I), 0)) <> A1 And Val(Nz(Values(I), 0)) <> A2 Then dblCompare = CDbl(Values(I)) If dblCompare > vMax Then vMax = dblCompare tfFound = True End If End If Next If tfFound Then A3 = vMax Else A3 = Null End If If Values(0) = 1 Then fGetMaxNumber = A1 ElseIf Values(0) = 2 Then fGetMaxNumber = A2 ElseIf Values(0) = 3 Then fGetMaxNumber = A3 End If End Function جعفر . أخي كرار حاولت النظر في برنامجك ، ولكن جدولك يختلف عن الجدول الاصل جعفر
  14. حيا الله أخي مراد 1. ان شاء الله ، 2. انت تستطيع اختيار/اخفاء اي حقل ، من النموذج ، اضغط على مربع "اخفي" على يسار اسم الحقل ، 3. ايش رايك في هذه الطريقة لكل الحقول ، مع رأس وتذييل التقرير ، لون وحجم ونوع الخط ، وتنسيق يمين/يسار/وسط: http://www.officena.net/ib/topic/59818-اعمل-برنامجك-بعدة-لغات-وببساطة/?do=findComment&comment=383548 جعفر
  15. السلام عليكم أخي co2002co ، احد الاسباب اللي انا ما شاركت في سؤالك هو عدم وضوحه لي كلما كان شرحك بتفصيل اكثر ، وخصوصا بمثال او مثالين من بيانات برنامجك ، يدعمه صور لشكل النتيجة فكل جزء يوضح الجز الاخر حينها ستجد الكثير من الشباب يهب لمساعدتك ان شاء الله جعفر
  16. السلام عليكم أخوي فهد ممكن توضح المطلوب بالتفصيل ، ومرة واحدة (يعني مو بالتقسيط المريح ) ، وتعطينا مثال على الاجابة اللي تريدها ، وهذا المثال وارقامه يجب ان يكونوا من المرفق ، حتى نستطيع تتبع الخطوات المطلوبة جعفر
  17. السلام عليكم عملت إضافة لكود الوحدة النمطية ، وكود الحقل Text4 في المشاركة السابقة لإستفادة اكبر واعم جعفر
  18. انا الغيت قسم راس وقسم ذيل التقرير ، والباقي قسم التفصيل Detail Section (كما تلاحظه في الصورة) ، بهذه الطريقة ، تصبح البطاقة عبارة عن سجل واحد ، والسجلات الاخرى (البطاقات الاخرى) ، تأتي تحتها تلقائيا الى ان تملئ الصفحة ، وبدل ان اخلي الحقول في صف افقي واحد ، جعلت الحقل وتسميتهم جنب بعض ، ثم وزعت الحقول فوق وتحت حسب المطلوب ، ولأني استخدم ورقة A4 ، فاعتقد اني كنت اطبع 5 او 6 بطاقات في الورقة الواحدة جعفر
  19. المطلوب التسلسل/الفرز تنازليا ، ومن ثم اخذ الارقام الثلاث الاولى ، وليس اكبر قيمة واصغر قيمة جعفر السر في هذا الكود ، وهو تحويل الحقول ، من افقيا ، الى عموديا ، Set rst = CurrentDb.OpenRecordset("Select * From [درجات] Where [Auto_ID]=" & Me.Auto_ID) ReDim InputArray(rst.Fields.Count - 1) 'make the array For ii = 1 To rst.Fields.Count - 1 'MsgBox rst(ii).Name & vbCrLf & rst(ii) InputArray(ii) = rst(ii) Next ii فلما تكون الحقول افقيا ، يجب ان تتعامل مع كل حقل بإسمه ، ولكن عندما تحولهم الى طريقة عمودية ، فيصبح عندك حقل واحد تتعامل معه جعفر
  20. عفوا اخي مافهمت شو اللي تريده المعلومات الموجودة في التقرير عبارة عن سجل شخص واحد ، موزعة ومرتبة ، كحقول وتسميات ، ومافي شئ خاص جعفر
  21. وعليكم السلام استعمل استعلام اجمالي ، واحسب Count فيه عدد تكرار الحقول ، واجعل الفرز تنازلي ، فتحصل على طلبك جعفر
×
×
  • اضف...

Important Information