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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. هلا والله ، مو قلت لك سهله اتوقع ان حجم الحقول انتهيت منها؟ بس ايش عملت في حجم حروف الحقول؟ اذا تسمح لي ، تقدر تستخدم نفس النسبة وتضيفها/تنقصها على حجم الخط (يعني تبدأ بحجم خط صغير مثلا يناسب الحقول الاقصر) ، او نقدر نستخدم كود تصغير/تكبير الخط ليتلائم مع ارتفاع الحقل جعفر
  2. في نموذج_المواد حقل Sum_Total
  3. جميل وحدة القياس هي Twips وتساوي 576 سنتيمتر ، ومثل ما قلت لك ، في البدايه خلينا نشتغل على ارتفاع القسم ، ثم نرجع للحقول ، فالمعادلة لقسم Detail هي: Me.Section(0).Height= 23.9 * 576 / Number_of_Records جعفر
  4. حياك الله اخوي حسين جعفر
  5. شو يا ابوعبدالله ، كيف تتوقع اني اعرف هذا النموذج هو طلبك؟؟ انا يا اشتغل مبرمج ويا ساحر ، بس ما يصير الاثنين مع بعض المبرمج يقول: استعمل هذه المعادلة: =Sum(Nz([حد الرسوب]+[حد النجاح],0)) جعفر
  6. 1. ما فهمت قصدك ، اعطني تفصيل بالارقام واسماء الحقول لوسمحت والمرفق اللي انت ارفقته هو نفس اللي انا ارفقته!! 2. تم حذف هذا الحقل اصلا ، ولا يوجد في المرفق ، فكيف طبقت عليه !! جعفر
  7. وعليكم السلام سهلة المحاولة التالية للتغلب على هذه المعادلة ، والحصول على معادلة صحيحة: If Me.mycount <= 39 Then Me.StuName.Height = Me.StuName.Height * 1.33 ابدأ بالتالي: اجعل حقول قسم التفصيل Detail قصيرة جدا ، شوي اكبر من خط مستقيم ، في التقرير عندك مجموعة اقسام ، وجميع الاقسام ارتفاعاتها ثابته وغير متغيرة ، القسم الوحيد الذي يتغير هو قسم التفصيل Detail ، عندك ارتفاع التقرير النهائي على حجم A4 مثلا ، واحسب ارتفاعات جميع الاقسام ، واطرح هذا من ذاك وبتحصل على المسافة المتبقية للقسم Detail ، تقدر تحسب عدد السجلات اللي بتكون في كل فصل ، وفي حدث فتح التقرير اقسم المسافة المتبقية من التقرير على عدد السجلات ، وتحصل على ارتفاع قسم Detail ، وهو المطلب الاول الاصل (والتغييرات تصير عليه بعدين) ، وبعد عدة تجارب ستصل الى الارتفاع الصحيح ، وعليه تغير ارتفاع الحقول الى نفس ارتفاع قسم Detail قلت لك سهلة جعفر
  8. هلا والله أخوي ابوعبدالله 1. هذا الكلام الزين ، تجربتك للبرنامج وجوابك كان على طول عملنا تغيير ، ووصلنا الى: النموذج الرئيسي: - عملت وحدة مستقله للجمع ، اسميته sTotal ، ولاحظ انه مب Private ، وإنما Public ، مما يعني اقدر اناديه من اي كائن (نموذج/تقرير/وحدة نمطية) في البرنامج ، - الحدث "في الحالي" يرسل طلب للوحدة sTotal بأن تقوم بالعمل ، والسبب اني اخرجت كود الحساب الى وحدة مستقلة هو ، لاحقا في البرنامج قد تضيف مجموعة اوامر اخرى في حدث الحالي ، وعندما تريد ان تقوم بعملية الجمع ، فلن تستطيع القيام بعملية الجمع بدون القيام بالاوامر الاخرى (ما عليه ، الموضوع بيتضح لك بعديييين ان شاء الله ، هذه خطوة استباقية) : Private Sub Form_Current() Call sTotal End Sub Public Sub sTotal() Me.Sum_Total = DSum("[الدرجة]+[حد الرسوب]", "qry_sfrm", "[رقم الطالب]=" & Me.[رقم الطالب]) End Sub والآن لما تضيف او تعدل الدرجة في النموذج الفرعي ، نريد ان نقوم بالعملية الحسابية ، فنقوم بحفظ السجل ، ثم مناداة الوحدة sTotal : Private Sub الدرجة_AfterUpdate() DoCmd.RunCommand acCmdSaveRecord Call Form_نموذج_الطالب.sTotal End Sub جعفر 623.stu new.accdb.zip
  9. السلام عليكم أخي ابا جودي ، الكود التالي سيعطيك النتيجه الصحيحه ، اذا عدد السجلات صفر : ولكن اذا اردت حساب عدد السجلات ، فلن يعطيك النتيجة الصحيحة ، وذلك ان نتيجة حساب عدد السجلات RecordCount يكون قبل ان يكتمل جلب جميع السجلات ، لذلك يجب عليك ان تأمر البرنامج للذهاب لآخر سجل ، وعليه سيعرف البرنامج عدد السجلات ، هكذا: Me.RecordsetClone.movelast Me.RecordsetClone.movefirst For i = 1 to Me.RecordsetClone.RecordCount جعفر
  10. وعليكم السلام امر NZ لا يُكتب هكذا: =Nz(Sum([sum0])) وانما هكذا =Sum(NZ([sum0],0)) ولكنه لا فائدة له في كون النموذج الفرعي جدولي. طريقة العمل: 1. نأخذ مصدر بيانات النموذج الفرعي ، والذي هو عبارة عن استعلام لجدولين ، ونحفظ هذا الاستعلام كإستعلام خارجي مستقل ، انا اسميته qry_sfrm ، 2. في حدث "الحالي" للنموذج الرئيسي ، عملت هذا الكود لحساب المجموع: Me.Sum_Total = DSum("[الدرجة]+[حد الرسوب]", "qry_sfrm", "[رقم الطالب]=" & Me.[رقم الطالب]) لا يمكن عمل الجمع من جدول واحد ، وذلك لأن الحقلين [الدرجة] و [حد الرسوب] موجودين في جدولين مستقلين ، لذا عملنا الجمع من الاستعلام الذي ربط الجدولين، والسبب الذي عملنا Dsum للحقلين [الدرجة]+[حد الرسوب] ، وذلك لأنك لا يوجد لديك حقل في الاستعلام يجمع [الدرجة]+[حد الرسوب] جعفر 623.stu new.accdb.zip
  11. السلام عليكم طريقة العرض اللي انا اتبعها في برامجي بوجه عام: وفي حالات: فالطريقة اللي اتبعها علشان المستخدم يشوف كل البيانات ، او حتى اذا اراد ادخال بيانات واراد ان يرى المعلومة كامله ، فأعمل على حدث النقر المزدوج لذلك الحقل الكود التالي: DoCmd.RunCommand acCmdZoomBox والذي يفتح نافذة ZoomBox (كما يمكنك فتحها يدويا ، فلما تكون على اي حقل ، استخدم الزرين Shift + F2) ، وسيرى كامل البيانات جعفر
  12. السلام عليكم أخوي ابو زاهر شكرا على الهدية ، ونسأل الله سبحانه وتعالى ان يسهل عليكم دنيا وآخره ، وان يشافي ولدكم وان يرعاه بعينه التي لا تنام ، وقد قمت بتغيير اسم الموضوع قليلا ، وذلك بإضافة اسم البرنامج فيه جعفر
  13. 1. الحمدلله 2. هذه اعمل حدث على "نقر" الحقل الموجود في النموذج الفرعي ، ويكون الكود هكذا : (مثلا ، اسم حقل نص النموذج الرئيسي TextBox_Name ، واسم الحقل الموجود في النموذج الفرعي SubForm_Field ): me.parent.TextBox_Name = me.SubForm_Filed 3. ان شاء الله سأتطلع عليه لاحقا جعفر
  14. وعليكم السلام ابا جودي سؤال قبل ان ندخل للكود: هل قمت بتنصيب Plug-ins البرنامج ، لأن خاصية pdf ليست اساسية في البرنامج وانما هي من plug-in !! سؤالك لم يكن عن جلب الصور عن طريق السكانر ثم تحويلهم الى pdf ، وانما كان عن تحويل مجموعة الصور الى pdf ، وعليه كان جوابي!! وانت لم تستعمل الكود الاصل اللي انا اعطيتك في مشاركتي الاولى ، وانما اخذت طريقا آخر!! على العموم ، بعد ان تنشأ ملف tif ، استخدم الكود التالي لتغيير ملف tif الى pdf Dim temp_scan_path temp_scan_path = db_path() & "tempscan" If Dir(temp_scan_path, vbDirectory) = "" Then MkDir temp_scan_path End If Shell ("c:\program files\irfanview\i_view32.exe /batchscan=(scanfile,1,1,2,0," & Trim(db_path) & "tempscan,tif,1) /scanhidden") i_view32.exe /multipdf=(zzzzz.tif) مع مراعاة كتابة المسار والمسميات الصحيحة في السطر الاخير من الكود اعلاه جعفر
  15. هلا والله أخوي وائل حل مشكلتك بسيط ، بس بيكلفك عشاء ، لا ومب عشاء واحد ، وانما عشاء عن توفير وقت كل تقرير وإلا خليني اسهل الموضوع ، عشاء واحد بس اجيب معاي كل الحبايب و أولهم أخونا العود @ابو خليل اذا اتفقنا ، شوف الحل التالي: مشكلتك في طريقة طباعتك للتقرير انك تجلب وتفرز وتصفي 34 الف سجل 3 مرات ، بينما الطريقة التالية تخليك تجلب وتفرز وتصفي 34 الف سجل مرة واحدة فقط ، ولكن تطبع التقرير 3 مرات: DoCmd.OpenReport "Rreceipt", acViewPreview, , , acHidden DoCmd.PrintOut acPrintAll, , , , 3 DoCmd.Close acReport, "Rreceipt", acSaveNo جعفر
  16. وعليكم السلام رجعنا مرة ثانية لنفس الموضوع ، سؤالك غير واضح هل زر اختيار الكل معناه: 1. عرض كل الغرف ، بغض النظر عليها صح او لا (وهذا هو المتبع الآن) ، ولكن اجمع لي في الحقل الجديد عدد الغرف اللي عليها صح فقط ، 2. عرض كل الغرف ، اللي عليها صح فقط ، وايش تريد تعمل للحقل الجديد لعدد الغرف. جعفر
  17. السلام عليكم شكرا للتنبيه ، فقد استعملت طريقة me.combo.rowsource = me.combo.rowsource & "," & "1200 x 1024" والتي اضيف فاصلة بين البيانات ، وهذه الطريقة تشتغل تمام للكمبيوترات ذات التنصيب الانجليزي ، ولكن الكمبيوترات ذات التنصيب العربي تستعمل الفاصلة المنقوطة!! اما الآن فقد تم استعمال طريقة AddItem. الان me.combo.AddItem "1200 x 1024" وقد قمت بتغيير المرفق في مشاركتي السابقة جعفر
  18. عفوا أوس ، بس مافهمت اللي تريده ايش دخل هذه الوحدة النمطية بالرابط اللي اعطيتك!! كود البرنامج اللي في الرابط جدا بسيط ، وفيه شرح عن كل سطر: Private Sub n2_Change() Dim fld As String Dim x() As String Dim A As String '1 'add the 1st field to search in fld = "[كلمات ارشادية]" '** Add additional fields to search in as well, 'so everytime you want to add additional fields, copy the FULL next line, and add the field name fld = fld & " & ' ' & " & "[موضوع الخطاب]" 'fld = fld & " & ' ' & " & "[my other field]" '1 '2 'do the initial subform Record Source mySQL1 = "Select * From [المستندات]" mySQL = mySQL1 & " Where " 'now we want to split the search code into smaller bits, 'if seperate by / \ * or space, then change this seperator to | (a unique letter), 'this way we will have more than ONE word to search for Me.n2.SetFocus A = Me.n2.Text A = Replace(A, "/", "|") A = Replace(A, "\", "|") A = Replace(A, " ", "|") A = Replace(A, "*", "|") 'the words are split and ready x = Split(A, "|") If UBound(x) = 0 Then 'Still one word, search for it mySQL = mySQL & fld mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'it is ONE word and a seperate by / \ * or space, 'so lets make a Where statement for each seperate word For i = LBound(x) To UBound(x) If i = 0 Then 'its a word and a seperator, the NEXT word is NOT added yet mySQL = mySQL & fld mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'its multiple words, add the AND command between each word mySQL = mySQL & " AND " & fld mySQL = mySQL & " Like '*" & x(i) & "*'" End If Next i End If 'if the Search field is Empty, use the initial mySQL1 If Len(Me.n2.Text & "") = 0 Then mySQL = mySQL1 End If 'Debug.Print mySQL Me.sfrm_Search.Form.RecordSource = mySQL '2 End Sub جعفر
  19. تفضل مجموع جميع الغرف صحيح وهو 10 ، وذلك لأنه عندك الغرفة رقم 5 ، واللي ما موجودة في الازرار . جعفر 621.Test.accdb.zip
  20. هلا والله بالاستاذ رمهان حياك الله أخوي محمد جعفر
  21. 2. لا ، وانما ما صار شيء ، والحمدلله 3. تفضل ، وبدون الجدول اللي فيه سجلات سابقة عشوائية جعفر ChangeAndGetScreenResolution.zip
  22. هلا والله زين ، اذن نحن في الطريق الصحيح بس سرعة الاستعلام الثاني لازم تكون مقارنة مع الاستعلام الاول ، فلوسمحت تخبرنا ايش الاشياء الاخرى اللي تعملها في الاستعلام الثاني ، يعني مو الغلط كله نخليه على البرنامج ، المبرمج كذلك عليه جزء من الغلط جعفر
  23. نعم تقدر (لدرجة ما) ، ولكن بتعب 1. نعمل طريقة للبحث ، في حقل النص ، مثل الربط التالي: 2. نأخذ أول نتيجة من النموذج الفرعي ونضعه في حقل نص البحث ، 3. نغير شكل النموذج الفرعي الى ListBox ، يطول ويقصر على اساس عدد الكلمات اللي تأتي من البحث ، وفي النهاية بيصير عندنا كما هو الحال في ComboBox ، فليش التعب جعفر
  24. زين الحمدلله اعطيت مثال ، واصبح طلبك شبه مفهوم هل المطلوب حقل واحد فقط للغرفة التي تضغط الزر عليها ، او امام كل زر حقل خاص به؟ جعفر
  25. عفوا ما لاحظت المطلوب اليك المطلوب الآن: تغيير اسم الحقل الى اسم مفهوم . إضافة الحقل الآخر للمعيار . حدث النقر على رقم الغرف اصبح: Private Sub Rooms_Click() Select Case Rooms.Value Case 1 Room_Number = 1: Room_Check = -1 Case 2 Room_Number = 2: Room_Check = -1 Case 3 Room_Number = 3: Room_Check = -1 Case 4 Room_Number = 4: Room_Check = -1 Case 5 Room_Number = "": Room_Check = "" End Select Me.sfrm_Room_No_Available.Requery . ومصدر بيانات النموذج الفرعي اصبح: . واكتب لك سطري المعيار ، مع الشرح وذلك لأهميته: check: IIf([Forms]![frm_Rooms_Available]![Room_Check]<>-1,[Check],[Forms]![frm_Rooms_Available]![Room_Check]) اذا مافي علامة صح على الحقل [Forms]![frm_Rooms_Available]![Room_Check] (يعني الحقل لا يساوي -1) اذن اعطنا جميع سجلات الحقل [check] وإلا ، فاستخدم قيمة الحقل الموجودة في النموذج [Forms]![frm_Rooms_Available]![Room_Check] ------------------------------------------ Room_No: IIf(Len([Forms]![frm_Rooms_Available]![Room_Number] & "")=0,[Room_No],[Forms]![frm_Rooms_Available]![Room_Number]) اذا مافي بيانات في الحقل Len([Forms]![frm_Rooms_Available]![Room_Number] & "")= اذن اعطنا جميع سجلات الحقل [Room_No] وإلا ، فاستخدم قيمة الحقل الموجودة في النموذج [Forms]![frm_Rooms_Available]![Room_Number] . وللأسف الشديد ، فأنا ارى الكثير من المبرمجين لا يلتفتون لهذه الاسطر ، ويستخدمون Like بدلا عنها جعفر 621.Test.accdb.zip
×
×
  • اضف...

Important Information