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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. السلام عليكم 🙂 جرب هذه الطريقة: جعفر
  2. انا متفق معاك ، لابد ان يكون للصادر او الوارد رقم واحد موحد على جميع الاجراءات ، ولكن كلامي كان عن الاجراءات ، فبالاضافة الى تاريخ المعامله ، فقد تم طلب اعطاء رقم فرعي لهذه المعاملة ، لسهولة التخاطب برقمها ، مثلا : مثلا قدمت على طلب اجازة وتم تقييدها في صادر القسم برقم 25 في 1-1 الساعة 10.5 وردت لمكتب المدير بنفس الرقم وتاريخ 1-1 وردت لمكتب الموظف مرة ثانية لأن المدير عنده استفسار ، بنفس الرقم وتاريخ 1-1 وردت لمكتب المدير بنفس الرقم وتاريخ 1-1 احيلت للموارد البشرية قسم الوارد بتاريخ 1-1 (طبعا نتكلم عن موظف عنده واسطة 🙂 ) فبدل ان يُشار للمعامله بإسم فلان اللي بعد فلان .... ، فيُشار اليها برقم فرعي ، كالتالي: 25.0 مثلا قدمت على طلب اجازة وتم تقييدها في صادر القسم برقم 25.0 في 1-1 الساعة 10.5 25.1 وردت لمكتب المدير بنفس الرقم وتاريخ 1-1 25.2 وردت لمكتب الموظف مرة ثانية لأن المدير عنده استفسار ، بنفس الرقم وتاريخ 1-1 25.3 وردت لمكتب المدير بنفس الرقم وتاريخ 1-1 25.4 احيلت للموارد البشرية قسم الوارد بتاريخ 1-1 (طبعا نتكلم عن موظف عنده واسطة 🙂 ) جعفر
  3. السلام عليكم 🙂 فكرة عمل جدول واحد للصادر والوارد نابع من تشابه الحقول ، ومثل ما قال الاخ kha9009lid : . ولكن وحسب علمي في احد المؤسسات ، فكان كتاب الوارد له رقمه الخاص ، ولكن تم طلب اعطاء المعامله رقم فرعي لكل خطوة تمر بها (يعني تحويل المعامله من الموظف الى رئيس القسم لإبداء رأيه ، ثم الى مدير الدائرة للموافقة ، ثم قد يكون عند المدير استفسار فيُرجع المعامله الى رئيس القسم). فصحيح ممكن استيعاب هذا كجزء من جدول واحد ، ولكن قد تحتاج الى جدولين او حتى ثلاث جداول لهذه الحركات 🙂 جعفر
  4. مو على قولك ، ما كنت ادري نوع البكتيريا ، فقلت يالله نتعامل مع الاثنين 🙂 جعفر
  5. والآن مادامت الوحدة النمطية Isolate تقوم بالعمل على طول ، جربها على البكتيريا حياك الله 🙂 جعفر
  6. وعليكم السلام 🙂 اهلا وسهلا بك في المنتدى 🙂 التعديلات المطلوبة على برنامجك: . واضافة الكود على حدث بعد التحديث لحقل البحث . والنتيجة: . جعفر 1036.جديد.accdb.zip
  7. وعليكم السلام 🙂 ولكن السؤال هنا ، كم حقل تريد في الجدول الجديد؟ هل يعني انك كلما زادت عندك المواد ، تزيد عدد الحقول في الجدول برمجيا؟ طبعا ممكن ، ولكن هذه ليست الطريقة الصحيحة في عمل جداول قواعد البيانات ، والطريقة الصحيحة هي التي عملتها في جدولك ، هكذا . والطريقة الصحيحة لحل مشكلتك هي استعلام Crosstab 🙂 وسؤالي هنا ، ليش ما تريد تستعمل Crosstab ، صحيح له عيوبه ، ولكن له ميزاته كذلك 🙂 الاختيار الآخر اللي يجي في بالي ، هو تصدير البيانات بالطريقة اللي تريدها الى الاكسل بصيغة csv مثلا 🙂 جعفر
  8. هممم طريقة غير متعودين عليها ، ولكن هذا حال قواعد البيانات ، وخصوصا اذا جابوا البيانات من الاكسل ، حيث يخلطون البيانات 🙂 بيانات الجدول ، الاستعلام qry_1 ، ولاحظ كيف ننادي الوحدة النمطية Isolate ونخبرها شو التصفية اللي نريدها (عربي ، انجليزي ، ارقام ، علامات) ، ونرسل لها قيمة الحقل ، وبما اننا عملنا حقل لكل لغة ، فتعطينا كل قيمة في حقلها ، بينما الاستعلام qry_2 ، يأخذ تصفيتة من الحقل cmb_Lang من النموذج Form1 ، ويعطينا فقط تصفية الحقل Name . والتجربة . الطريقة اللي جاءت على بالي ، هي استعمال Ascii كل حرف من حروف الخط ، وهو رقم الحرف ، وهي ارقام ثابته بغض النظر عن نوع الخط المستعمل ، هذا الجدول الاصل لجميع حروف وحركات اللاتينية/الانجليزي، وهنا قيمة Asc موجودة في العمود Dec . وهذا جدول الحروف العربية ، من https://www.aivosto.com/articles/stringopt3.html . الوحدة النمطية Isolate : تقوم الوحدة النمطية ، وعلى اساس اللغة المطلوبة (والتي يتم ارسالها من الاستعلام ، مع القيمة) ، بقراءة كل حرف من القيمة ، وعلى اساس اللفة و الحرف ، يتم اخذ قيمته الـ Asc للحرف (وقد يكون من الافضل استعمال AscW ، كون القيمة تحتوي على حروف UTF-8 او Unicode) ، ويقوم بجمعها ، ورد القيمة الى الاستعلام: Public Function Isolate(Lang As String, str As String) As String 'Lang = "E" = "English" 'Lang = "N" = "Numbers" 'Lang = "C" = "Characters" 'Lang = "A" = "Arabic" Dim i As Integer Dim curAsc As Integer Dim curChr As String Dim con As String For i = 1 To Len(str) curChr = Mid(str, i, 1) 'one character at a time curAsc = Asc(curChr) 'Asc of that character If Lang = "E" And ((curAsc > 64 And curAsc < 91) Or (curAsc > 96 And curAsc < 123)) Then '65 to 90 capital letters, 97 to 122 small letters con = con & curChr ElseIf Lang = "N" And (curAsc > 47 And curAsc < 58) Then '48 to 57 capital letters con = con & curChr ElseIf Lang = "C" And ((curAsc > 31 And curAsc < 48) Or _ (curAsc > 57 And curAsc < 65) Or _ (curAsc > 90 And curAsc < 97) Or _ (curAsc > 122 And curAsc < 127)) Then '32 to 47, 58 to 64, 91 to 96, 123 to 126 con = con & curChr ElseIf Lang = "A" And curAsc > 127 Then 'Extended Ascii , > 127 con = con & curChr End If Next i Isolate = con End Function جعفر 1034.Filter.accdb.zip
  9. وعليكم السلام 🙂 حيا الله اخوي محمد 🙂 هذا مجرد حقل عادي ، فيه بيانات مختلفة ، وبلغات مختلفة ، شو المشكلة !! يمكنك التصفية بقيمة الحقل كاملة ، او عن طريق Like : جعفر
  10. السلام عليكم 🙂 اخوي ابو عبدالله 🙂 تفضل المرفق ، ان شاء الله يكون هو المطلوب 🙂 لما افضى شوي ، ان شاء الله اشرح طريقة العمل 🙂 بس لوسمحت تخبرنا اذا هذا هو طلبك ، وان النتيجة صحيحة 🙂 جعفر 1033.stu.accdb.zip
  11. لا يمكن التوسيط ، وانما يمكن محاذاته جهة اليمين : . جعفر
  12. 1. . 2. اضف كائنات التسميات Label واعمل لهم التنسيق كما يحلو لك 🙂 . جعفر
  13. تفضل اعمل استعلام الحاقي بهذه القيم : . والنتيجة . والآن في الجدول Marj3 يمكنك ادخال - . جعفر
  14. وعليكم السلام 🙂 مو هذه مشكلتك ، وانما انت عامل علاقة ربط بين الجدولين ، بحقل من هذا الجدول وذاك ، . فلا تستطيع ادخال شيء في الجدول Marj3 في الحقل AuthorBook إلا بإدخال قيمة لها في الحقل IDAuthor ، لذا يمكنك ان تُدخل رقم وهمي مثل صفر ، واسم الشهرة يكون "-" 🙂 جعفر
  15. بعد النظر في الملف ، عندك مجلد خارجي فيه ملفات PDF وتريد تعرض الملف حسب رقمه ، بعد النقر على List1 🙂 النتيجة ، وبدون الاكروبات ومكتباتها 🙂 . نستخدم IE WebBrowser ، والموجود على كل كمبيوتر ، وبدون اضافة ملفات 🙂 وهذا كود العرض: Option Compare Database Dim web As Object Private Sub Form_Load() 'On Error GoTo err_Form_Load DoCmd.Maximize 'specify that the browser is an object in the Form Set web = Me.WebBrowser_PDF.Object 'give the initial web page name web.Navigate "about:blank" 'don't show web page errors web.Silent = True Exit Sub Err_Form_Load: If Err.Number = 2447 Then MsgBox "Please Enter a Site Name for starting this Page" Exit Sub End If Resume Next End Sub Private Sub List1_Click() 'تحديد مسار الملف StrFileParh = CurrentProject.Path & "\booksindex\" web.Navigate StrFileParh & Me.List1 & ".pdf" web.Visible = True End Sub جعفر 1032.db2.zip
  16. السلام عليكم اخوي بوحسين 🙂 خلينا من الاكروبات ، واخبرنا شو اللي تريد تعمله ، وبالتفصيل لوسمحت 🙂 جعفر
  17. وعليكم السلام اخوي علي 🙂 @علي هندسة على حدث بعد التحديث ، اكتب احد هذه الاسطر لعرض قيمة العمود الاول me.text6 = me.list1.column(0) لعرض قيمة العمود الثاني me.text6 = me.list1.column(1) لعرض قيمة العمود الثالث me.text6 = me.list1.column(2) جعفر
  18. الرسالة تأتيك ، لأن المرفق الجديد الذي ارسلته لك في موضوعك الآخر ، عملت فيه هذا الحقل ، واذا لم تنتبه لهذا الحقل ، وعلى طول استوردت الكائنات الاخرى لبرنامجك الاصل ، فستأتيك هذه الرسالة 🙂 هممم ، سؤال يحتاج الى مزيد من الايضاح ، حتى يكون له معنى 🙂 جعفر
  19. السلام عليكم 🙂 1. هذه الرسائل ذو اهمية لعمل البرنامج ، واذا ظهرت مثل هذه الرسالة ، فهذا معناه ان المبرمج اخطأ في شيء ما في الكود ، ويجب علاجة وعدم تجاهله !! رسالتك تقول بأن البرنامج يحتاج الى الحقل cmd_edara_N في عمله ، يعني ان الكود فيه هذا الحقل ، ولكن البرنامج لم يستطع الحصول عليه في النموذج !! فالطريقة الصحيحة في عمل زر البحث او زر فتح تقرير يعتمد على هذه الحقول التي في النموذج هي ، ان لا نعتمد على ان مستخدم البرنامج سوف يُدخل البيانات في هذه الحقول لذلك ، يجب علينا ان نتحقق من ادخال البيانات ، هكذا: Private Sub cmd_Print_Preview_Click() On Error GoTo err_cmd_Print_Preview_Click if len(me.cmd_edara_N & "")=0 then msgbox "رجاء اختيار الإدارة من القائمة" me.cmd_edara_N.setfocus exit sub elseif len(me.Date_From & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_من" me.Date_From.setfocus exit sub elseif len(me.Date_To & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_الى" me.Date_To.setfocus exit sub endif Dim stDocName As String stDocName = "rpt_Monthly" DoCmd.OpenReport stDocName, acViewPreview Exit_cmd_Print_Preview_Click: Exit Sub err_cmd_Print_Preview_Click: if err.number=2465 then msgbox "هناك احد الحقول فارغة، والتي يحتاج الى قيمته الكود، رجاء تعبئتها ثم النقر على الزر مرة اخرى" Resume Exit_cmd_Print_Preview_Click elseIf Err.Number = 3070 Then MsgBox "احد الحقول مصدر بياناته غير صحيح" Resume Exit_cmd_Print_Preview_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub . وهنا مثال آخر . 2. عند وضع رقم الخطأ في نهاية الكود ، فاننا نتحكم في الرسالة التي نريد ان نجعل المستخدم يراها (لاحظ السطر if err.number = 2465 والاسطر التي تليه) ويمكنك ايضا اصطياد الخطأ بهذه الطريقة: . وفي حالات قليلة ، وجدا ضيقة (مثل زر للإنتقال الى السجل السابق او التالي) نستعمل on error resume next ، والتي معناها لا تجعلني ارى اي رسالة خطأ ، ولكن في حالتنا ، واذا لم نرى رسالة الخطأ ، فلن نعرف لماذا برنامجنا لا يعطي النتائج الصحيحة ، او حتى لماذا لا يفتح التقرير !! جعفر
  20. بسبب صعوبة حصول الاعضاء على البرنامج من رابط الرفع ، تم اضافة المرفق الى الموضوع الاصل 🙂 جعفر
  21. همممم الكل انشغل بالرابط ، ونسيتوا المجهود في عمل البرنامج !! اخي @aaaamido ، اصالة عن نفسي ، ونيابة عن جميع الشباب اللي شاركوا في الموضوع ، احب ان اشكرك على هذا المجهود وهذه الهدية 🙂 ومن جانبي ، فقد اعطيتك Like 🙂 جعفر
  22. عملت لك الاضافة ، اللي تحتها خط احمر ، وتقدر تعملها للحقل الآخر للبحث : . والنتيجة: . جعفر 1031.Advanced Search Marj3.accdb.zip
  23. السلام عليكم 🙂 وبعد ملاحقة الرابط الى آخر الى آخر الى آخر الى آخر الى آخر الى آخر الى ... ، ومحاربة مضاد الفيروسات على كمبيوتري مع هذه الصفحات والتي تحاول زرع برامج خبيثة عليه ، اليكم الرابط الاخير لتحميل البرنامج: https://www.file-up.org/azot1x4brsec جعفر ملاحظة: بسبب صعوبة حصول الاعضاء على البرنامج من رابط الرفع ، تم اضافة المرفق الى الموضوع الاصل 🙂
  24. السلام عليكم 🙂 في الماضي كان عندنا معيار واحد فقط (التاريخ) ، بينما الآن اصبح عندنا معيارين (التاريخ و الادارة) ، وهذا اخذ مني اكثر من يومين للوصول اليه !! على العموم ، نظّفت الكود بطريقة اخرى ، والعرض اصبح الآن يأخذ الصفحة كاملة ، وعلى اساسه يعمل عرض الحقول 🙂 وهذا الكود كاملا: Private Sub Report_Open(Cancel As Integer) Dim ctrl As Control Dim A As Integer Dim Empty_Cells As Integer Dim Full_Cells As Integer Dim W As Integer Dim myWhere As String Dim rpt_width As Integer Dim Full_Date As Date Dim D As Integer Dim Y As Integer Dim M As Integer 'W = 2200 / 4 'field width Empty_Cells = 0 Full_Cells = 0 'the name rpt_width = 0 Y = Forms!Report!iYear 'year M = Forms!Report!iMonth 'month 'lets fit/expand the controld based on the avaible width 'how many Full_Cells For D = 1 To 31 Full_Date = DateSerial(Y, M, D) myWhere = "[edara]='" & Forms!Report!cmd_edara_N & "'" myWhere = myWhere & " And " myWhere = myWhere & "[zeiara_date]=" & DateFormat(Full_Date) A = DCount("*", "zeara", myWhere) If A <> 0 Then Full_Cells = Full_Cells + 1 End If Next D W = Me.Width - (Me.Printer.LeftMargin + Me.Printer.RightMargin + Me("mogh_name").Width) W = W / (Full_Cells - 1) For D = 1 To 31 Full_Date = DateSerial(Y, M, D) 'the field Names from the Crosstab query 'check if this field exists int the table myWhere = "[edara]='" & Forms!Report!cmd_edara_N & "'" myWhere = myWhere & " And " myWhere = myWhere & "[zeiara_date]=" & DateFormat(Full_Date) A = DCount("*", "zeara", myWhere) If A = 0 Then 'field dose not exist Me("txt_" & D).Width = 0 'trim field size to Zero Me("txt_" & D).Visible = False 'make the field invisible Me("txt_" & D).ControlSource = "" 'remove the Control Source Me("lbl_" & D).Width = 0 'trim label size to Zero Me("lbl_" & D).Visible = False 'make the label invisible Empty_Cells = Empty_Cells + 1 'Debug.Print "Off " & Me("txt_" & D).Name & vbTab & "D:" & D & vbTab & "Full:" & Full_Date & vbTab & "A:" & A Else 'field exists Me("txt_" & D).Width = 1 * W 'set the field width Me("txt_" & D).Visible = True 'make the field visible Me("txt_" & D).ControlSource = Full_Date Me("lbl_" & D).Width = 1 * W 'set the label width Me("lbl_" & D).Visible = True 'make the label visible Me("lbl_" & D).Caption = D & "/" & M 'give the label, a caption Full_Cells = Full_Cells + 1 rpt_width = rpt_width + Me("txt_" & D).Width 'add the width 'Debug.Print "ON " & Me("txt_" & D).Name & vbTab & "D:" & D & vbTab & "Full:" & Full_Date & vbTab & "A:" & A End If Next D Me.Width = rpt_width + Me("mogh_name").Width 'the final Report width End Sub جعفر 1030.rpt_Monthly_Crosstaby.mdb
  25. مافهمت قصدك في السؤال: فالبيانات عندك تظهر بالكامل ، ولا حاجة الى عمل اي شيء !! ولكن ، اذا اردت معرفة طريقة عمل تحديث الحقل الفارغ بعلامة - ، فاليك هذه الصورة كمثال: . جعفر
×
×
  • اضف...

Important Information