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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. لا يمكن التوسيط ، وانما يمكن محاذاته جهة اليمين : . جعفر
  2. 1. . 2. اضف كائنات التسميات Label واعمل لهم التنسيق كما يحلو لك 🙂 . جعفر
  3. تفضل اعمل استعلام الحاقي بهذه القيم : . والنتيجة . والآن في الجدول Marj3 يمكنك ادخال - . جعفر
  4. وعليكم السلام 🙂 مو هذه مشكلتك ، وانما انت عامل علاقة ربط بين الجدولين ، بحقل من هذا الجدول وذاك ، . فلا تستطيع ادخال شيء في الجدول Marj3 في الحقل AuthorBook إلا بإدخال قيمة لها في الحقل IDAuthor ، لذا يمكنك ان تُدخل رقم وهمي مثل صفر ، واسم الشهرة يكون "-" 🙂 جعفر
  5. بعد النظر في الملف ، عندك مجلد خارجي فيه ملفات 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
  6. السلام عليكم اخوي بوحسين 🙂 خلينا من الاكروبات ، واخبرنا شو اللي تريد تعمله ، وبالتفصيل لوسمحت 🙂 جعفر
  7. وعليكم السلام اخوي علي 🙂 @علي هندسة على حدث بعد التحديث ، اكتب احد هذه الاسطر لعرض قيمة العمود الاول me.text6 = me.list1.column(0) لعرض قيمة العمود الثاني me.text6 = me.list1.column(1) لعرض قيمة العمود الثالث me.text6 = me.list1.column(2) جعفر
  8. الرسالة تأتيك ، لأن المرفق الجديد الذي ارسلته لك في موضوعك الآخر ، عملت فيه هذا الحقل ، واذا لم تنتبه لهذا الحقل ، وعلى طول استوردت الكائنات الاخرى لبرنامجك الاصل ، فستأتيك هذه الرسالة 🙂 هممم ، سؤال يحتاج الى مزيد من الايضاح ، حتى يكون له معنى 🙂 جعفر
  9. السلام عليكم 🙂 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 ، والتي معناها لا تجعلني ارى اي رسالة خطأ ، ولكن في حالتنا ، واذا لم نرى رسالة الخطأ ، فلن نعرف لماذا برنامجنا لا يعطي النتائج الصحيحة ، او حتى لماذا لا يفتح التقرير !! جعفر
  10. بسبب صعوبة حصول الاعضاء على البرنامج من رابط الرفع ، تم اضافة المرفق الى الموضوع الاصل 🙂 جعفر
  11. همممم الكل انشغل بالرابط ، ونسيتوا المجهود في عمل البرنامج !! اخي @aaaamido ، اصالة عن نفسي ، ونيابة عن جميع الشباب اللي شاركوا في الموضوع ، احب ان اشكرك على هذا المجهود وهذه الهدية 🙂 ومن جانبي ، فقد اعطيتك Like 🙂 جعفر
  12. عملت لك الاضافة ، اللي تحتها خط احمر ، وتقدر تعملها للحقل الآخر للبحث : . والنتيجة: . جعفر 1031.Advanced Search Marj3.accdb.zip
  13. السلام عليكم 🙂 وبعد ملاحقة الرابط الى آخر الى آخر الى آخر الى آخر الى آخر الى آخر الى ... ، ومحاربة مضاد الفيروسات على كمبيوتري مع هذه الصفحات والتي تحاول زرع برامج خبيثة عليه ، اليكم الرابط الاخير لتحميل البرنامج: https://www.file-up.org/azot1x4brsec جعفر ملاحظة: بسبب صعوبة حصول الاعضاء على البرنامج من رابط الرفع ، تم اضافة المرفق الى الموضوع الاصل 🙂
  14. السلام عليكم 🙂 في الماضي كان عندنا معيار واحد فقط (التاريخ) ، بينما الآن اصبح عندنا معيارين (التاريخ و الادارة) ، وهذا اخذ مني اكثر من يومين للوصول اليه !! على العموم ، نظّفت الكود بطريقة اخرى ، والعرض اصبح الآن يأخذ الصفحة كاملة ، وعلى اساسه يعمل عرض الحقول 🙂 وهذا الكود كاملا: 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
  15. مافهمت قصدك في السؤال: فالبيانات عندك تظهر بالكامل ، ولا حاجة الى عمل اي شيء !! ولكن ، اذا اردت معرفة طريقة عمل تحديث الحقل الفارغ بعلامة - ، فاليك هذه الصورة كمثال: . جعفر
  16. السلام عليكم 🙂 اخي سامي: وضع اكثر من سؤال في الموضوع يُعتبر مخالف لقوانين المنتدى ، والاسئلة اعلاه خارجة عن الموضوع 🙂 جعفر
  17. السلام عليكم 🙂 . 1. نعم ، بعمل مجموعة استعلامات تحديث ، استعلام لكل جدول (وقد نحتاج الى اكثر من استعلام للجدول) ، ولكن يعملون بحدث رز واحد ، 2. نعم ، ولكن هذا يعتمد على المعيار والتصفية ، ويمكنك تجربة هذا على حقل معين في الجدول ، قم بتغيير بيانات بعض الحقول الفارغة الى - ، وشوف النتيجة. نعم كلامك صحيح. سبق وان ناقشنا هذا الموضوع ، وبعمق ، فرجاء لا تأتي بأسماء اعضاء وتحرجهم ، والنتيجة ببساطة انك لن تجد لهم جواب في اسئلتك القادمة (وقد تم حذف اسم العضو من موضوعك اعلاه). مشكلتك الاساسية هي عدم ظهور كافة البيانات في الاستعلام (الاستعلام وبدون اي معايير) ، وذلك لأن العلاقة التي عملتها بين الجدولين لا تطلب جميع السجلات وبغض النظر من وجودها في الجدول الآخر او لا ، وقد قام الاخ كاسر @kaser906 مشكورا بتوضيح وتعديل الاستعلام في 3 ابريل ، اي قبل 8 ايام تقريبا ، وذلك في الموضوع والطريقة التي قام بها: بما ان ربطك للجدولين ظاهرا هكذا (علاقة الربط غير حقيقة الربط) ، ولكن حقيقة ، الربط بحقل "اسم الشهرة" و"المؤلف" ، لأنك مستخدم Lookup لحقل "المؤلف" ، فالحقول (في المربع الاحمر) التي لا توجد اسماء لها في الجدول الآخر ، لن تظهر في الاستعلام . وبالنقر المزدوج على خط العلاقة بين الجدولين ، تظهر لنا هذه النافذه ، والتي نختار منها جميع السجلات في الجدول Marj3 ، بغض النظر اذا كانت موجودة في الجدول الآخر او لا . والنتيجة تكون هكذا (لاحظ السهم تحت الرقم 1) . وعلى اساسه نرى جميع البيانات في الاستعلام . الى هنا وينتهي الذي قام به الاخ كاسر ، ولما نرى النتيجة في النموذج ، وبعد إضافة معيار البحث في الاستعلام ، ثم نبحث عن: "د" . ففي واقع الامر ، لم تكن عندك مشكلة في NULL ، وانما في عرض البيانات بطريقة صحيحة 🙂 جعفر 1029.نموذج بحث.accdb.zip
  18. لإضافة السجلات الفارغة ، يجب اضافة الجزء الاخير من المعادلة التاليه: Like IIf(Len([forms]![frm_Main]![fName] & '')=0,"*","*" & [forms]![frm_Main]![fName] & "*") or [DateX] is null هذا معناه انك تبحث عن معلومه معينه ، ويعطيك الاكسس هذه المعلومه ، وطبعا الحقل الفارغ البكر NULL لا يحتوي على هذه المعلومة ، لذلك تريد: 1. بيانات البحث ، 2. الحقول الفارغة في الحقل. ولكن دعني اعطيك نصيحة ، فالعمل على الحقول التي بها بيانات وبها فارغة ، ليس بالعمل السهل ، لذلك ، فالافضل ان تعبئ هذه الحقول الفارغة بعلامة مثل "-" (شرطة او ناقص) ، ولسهولة العمل ، اعمل استعلام تحديث لهذا الحقل ، بحيث تُدخل علامة - في جميع الحقول الفارغة ، فيصبح بحثك اسهل 🙂 جعفر
  19. السلام عليكم 🙂 مع خالص الشكر، هل ممكن شرح نتعلم منه هذه الطرق في عمل استعلام البحث من حيث (غرض الاستخدام - والمميزات والعيوب - وكيفيه التنفيذ) هذه الروابط فيها المطلوب: 1. 2. . جعفر
  20. السلام عليكم 🙂 الدقة: جميع الاستعلامات لها نفس الدقة في تصفية/فرز البيانات ، السرعة: الاستعلام العادي من خلال معالج الاستعلام كان يمتاز عن بقية انواع الاستعلامات (وهنا لا اتكلم عن Recordset) ، بأن الاكسس كان يعمل له Compile وايضا يعمل له خطة عمل ، مما يجعله اسرع من بقية الانواع ، حيث انه يكون جاهزا للعمل بمجرد فتحه ، اما الآن ، وبوجود الاجهزة الجديدة والسريعة ، فبقية انواع الاستعلام ، تقوم بعمل Compile بسرعة عند استعمالها ، فلا نلاحظ الفرق في سرعة بينهم. ولكن ، هذا كله يعتمد على طريقة عمل الاستعلام ، بغض النظر عن نوعه 🙂 واهم شيء لجعل الاستعلام يعمل بسرعة هو ، عمل فهرسة (في الجداول) للحقول التي بها معايير ، او الحقول التي بها ربط بين الجداول. جعفر
  21. وعليكم السلام 🙂 اخي حسنين ، الصور التي وضعتها في الموضوع لا تظهر !! يجب ان تختار اللغة التي كتبت فيها البرنامج في المادة 4 من الصورة ادناه: . جعفر
  22. حياك الله اخوي حسنين ، واهلا وسهلا بك 🙂 وشكرا الموضوع المميز 🙂 جعفر
  23. السلام عليكم 🙂 نفس فكرة اخي حسنين ، ولكن على برنامجك: . . . . . . جعفر 1028.exa 4.accdb.zip
  24. وعليكم السلام 🙂 اخبرك طريقة الصيد ، بدل ان اعطيك سمكه 🙂 الجزء الاول هنا . والجزء الثاني . ولسرعة جلب البيانات ، استعمل التالي وبدون ذكر الحقل ، لأنك في نهاية الامر تحسب عدد السجلات: DCount("*", . وللتأكد انك صرت صياد ، وبعد ان تحصل على النتيجة الصحيحة ، اريدك تعرض لنا الكود بالكامل و النتيجة 🙂 جعفر
  25. السلام عليكم شباب 🙂 في مشاركتي لسؤال من نفس النوع ، وبعد البحث في الانترنت ، وضعت هذه المشاركة ، ولم يتم تجربة الكود ، والفكرة هي عمل التحويل الى accde على جهاز العميل برمجيا : . وفي هذا الموضوع ، تم تجربة الكود وبنجاح 🙂 . جعفر
×
×
  • اضف...

Important Information