اذهب الي المحتوي
أوفيسنا

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. السلام عليكم :) أخي ابوعبدالله ، نموذجك كله بالعربي !! . الغي هذا النموذج وجرب البرنامج. المفروض ان البرنامج لا يحتوي على اي كتابة بالعربي (unicode) في اي مكان في البرنامج ، إلا كبيانات في الجدول فقط :) جعفر
  2. السلام عليكم :) أخي مؤمن ، هل حصلت على الاجابة المطلوبة؟ اذا لا ، فالرجاء ارفاق برنامجك ، وتوضيح المطلوب :) جعفر
  3. السلام عليكم :) لا يُنصح بإستخدام الاكسس في شبكة وايرلس ، لأن الشبكة حتى لما تعمل بالطريقة الصحيحة ، فإنها تكون متقطعة ، فعليه تكون مشكلة في تواصل البيانات :( احد الطرق اللي ممكن تستعملها هي ، ان تكون نماذجك غير مضمنه / غير مربوطه بجدول او استعلام ، ويكون عندك زر لحفظ البيانات ، وقبل حفظ البيانات في الجدول ، يجب ان تقرأ من الجدول (تقرأ اي شئ ، فقط للتأكد ان الشبكة موجودة) ، وعندها تحفظ البيانات ، الطريقة الاخرى اللي على بالي هي ، ان تكون بياناتك محلية ، وبين كل فترة ، يقوم البرنامج ، وبعد التأكد من وجود الشبكة ، بنقل البيانات الى قاعدة البيانات الاصل :) جعفر
  4. وعليكم السلام :) 1. انا جربت الكود قبل ان اضعه ، وجربته مرة اخرى الان ، وهو يعمل كما يجب ، فما قصدك انه "لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -" 2. حتى ولو اخفيت السجل الجديد "والذي يظهر فيه New" ، فالمستخم يستطيع ان ينتقل الى الحقل الجديد وبدون ان يملئ بيانات الحقل الذي هو عليه ، فالطريقة الصحيحة لإجبارة ، هي كما اقترحت عليك. جعفر
  5. السلام عليكم :) تفضل :) الاستعلام: . الوحدة النمطية: Option Compare Database Dim rst As DAO.Recordset Function Get_Dates(ID) mySQL = "Select * From tbl_Loans" mySQL = mySQL & " Where [EmployeeID]=" & ID mySQL = mySQL & " And Year([Payment_Month])= " & [Forms]![FrmOtherDiscountReport]![txtYear] mySQL = mySQL & " Order by Payment_Month" Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount If RC = 1 Then Get_Dates = "Discount for the month " & Format(rst!Payment_Month, "m/yyyy") Else For I = 1 To RC If I <> RC Then Get_Dates = Get_Dates & " and " & Month(rst!Payment_Month) Else Get_Dates = Get_Dates & " AND " & Format(rst!Payment_Month, "m/yyyy") End If rst.MoveNext Next I Get_Dates = "Discount for the months " & Mid(Get_Dates, 5) End If End Function . النتيجة: . والتقرير: . جعفر Discount.zip
  6. السلام عليكم انا على سفر ، وبعيد عن الكمبيوتر ، لهذا السبب انا بعيدا عن المنتدى عندي ملاحظة واحدة فقط ، وبحسب خبرتي في هذا الموضوع: الكمبيوتر يعطي أولوية تنفيذ أوامر CPU إلى برامج الوندوز ، ثم البرامج الاخرى ، مما قد يُؤخر تنفيذ أوامر برنامج الاكسس ثانية او اثنين ، إذًا ، عند تنفيذ الأمر التالي او أمر مثله: If rs!mish_time = Time() Then قد يكون CPU الكمبيوتر مشغولا ، وعند تنفيذ الامر ، الوقت لن يكون مطابقاً ، لأننا نقارن الوقت بالثواني ، وحينها ، فالمعادلة لن تُنفّذ !! لذلك ، ولتفادي هذه المشكلة ، اجعل مقارنة الوقت: إما بالساعة والدقيقة وبدون ثواني ، وإما اجعل المقارنة ">=" بدل "=" ، او شئ من هذا القبيل ، وإلا ، فقد يفوتك موعد ولن تعرف لماذا جعفر
  7. حياك الله في الواقع كنت مفكر أضع كود لكل نموذج/تقرير علشان يربط الصور ، بس ما كان عندي وقت جعفر
  8. وعليكم السلام برنامجي: يقوم بربط الصور من الاسكانر ، في مجلد تابع لمجلد البرنامج ، و ربط الصور بدون حقول في الجدول. جربه ، وانقله بين مجلدات الكمبيوتر وسترى انه يعمل بكفائة ولاحظ طريقة تسمية الصور ، فبالتالي تستطيع ان يكون عندك أي عدد من الصور للسجل الواحد جعفر
  9. السلام عليكم انا اعتذر منك ، فانا على سفر وبعيد عن الكمبيوتر ، فما استطيع عمل اللازم. رجاء أفتح موضوع جديد واكتب فيه جميع المعادلات مرة واحدة ، وإن شاء الله الشباب ما بيقصروا جعفر
  10. وعليكم السلام انت عندك 3 صور تستعملها في برنامجك ، واحدة منها موجودة في مجلد البرنامج ، ولكن الصورتين الباقيتين ما موجودات. الصور الثلاث لازم يكونوا في مجلد البرنامج ، وأخبرنا النتيجة جعفر
  11. السلام عليكم موضوع ان النموذج/التقرير منبثق دوخة رأس ، وانا نادرا استخدمه ، المشكلة بدأت من الاكسس 2007 لما مايكروسوفت عملت لسان لكل كائن يتم فتحه: نموذج/جدول/استعلام/تقرير ، وهذه الطريقة غير محبذه للمبرمجين ، فذهبوا لحل المشكلة عن طريق النماذج/التقترير المنبثقة ولكن هنا ك طريقة سهلة لعمل النماذج/التقارير خارج اللسان ، وبدون "منبثقة" : لاحظ لسان اسم النموذج ، وهذا ما سنلغيه: . وعلشان يتم حل الموضوع ، الكثير يستعمل نموذج منبثق لحله: . بينما نسنتطيع ان نأتي الى اعدادات الاكسس: . والنتيجة تصبح حسب المطلوب ، ونموذج غير منبثق: . أحد العيوب الكبيرة في النماذج المنبثقة انه يجب فتح نموذج/تقرير واحد ، فالنموذج/التقرير الجديد الذي يتم فتحه يكون خلف النموذج المفتوح من قبل ، بينما في الطريقة العادية ، لا نعاني من هذه المشكلة ، فكل نموذج/تقرير تفتحه ، فيكون تلقائيا امام النموذج السابق جعفر
  12. تفضل A = IIf([N38] = 0, 0, IIf([N38] <= 41.667, [N38] * 1.2, IIf([N38] <= 50, 50, [N38]))) B = IIf(TOTAL = 0, 0, IIf(TOTAL <= 499.999, TOTAL + 50, IIf(TOTAL >= 500, IIf(TOTAL <= 1818.1818, TOTAL * 1.1, IIf(TOTAL >= 1818.1818, IIf(TOTAL <= 2000, 2000, TOTAL)))))) + O39 + O38 C = IIf(TOTAL = 0, 0, IIf(TOTAL <= 499.999, "B.D. 50.000 Mobilization premuim calculated", IIf(TOTAL >= 500, IIf(TOTAL <= 1818.1818, "10% Mobilization premuim calculated", IIf(TOTAL >= 1818.1818, IIf(TOTAL <= 2000, "Mobilization premuim adjusted with total", "no mobilization premuim calculated")))))) جعفر
  13. تفضل هذا الرابط به كود قراءة الريجستري: http://vba-corner.livejournal.com/3054.html بس عليك ان تأخذ اسم الفلاش من الرابط السابق ، ثم تستعمل هذا الكود جعفر
  14. لاحظ امر الكود ، هو نفسه الذي انت ذكرته: Me.[Mob].NumeralShapes = 1 وطبعا National مش راح ينفع ، شوف رقم واسم العربية من جدولك (وجرب بقية الاخيارات كذلك): بس في شغله لازم تعرفها ، وهي: لاحظت في بعض كمبيوترات المستخدمين ، الانتقال من حقل به هذا التنسيق الى حقل آخر يكون بطئ ، ولكن بعد تحديث الاكسس بتحديثات مايكروسوفت ، اصبحت تمام جعفر
  15. ولكن ... اذا عملت الارقام باللغة العربية في اعدادات الوندوز ، فبدل ان تستخدم كود الاستاذ عبدالرحمن ، تستطيع من اعدادات كل حقل ان تتحكم في نوعية ارقام الحقل ، بحيث ممكن حقل تكون الارقام فيه انجليزي ، وحقل الارقام بالعربي جعفر
  16. انا الاصدار عندي انجليزي ، وهذا لا يهم ، الذي يهم ان نكون قد اخترنا الارقام العربية من اعدادات الوندوز ، ثم يشتغل الكود اعلاه ، وقد جربته انا : . . . جعفر
  17. وعليكم السلام أخي أوس هذه معلومة ، وهي انه لابد من البحث عنها في الريجستري ، كما هو في هذا الرابط الاجنبي: http://www.xtremevbtalk.com/general/275224-detect-installed-codecs.html وانا اعتذر منك ، فيجب ان اترك الكمبيوتر بعد قليل ، فلا استطيع مساعدتك اكثر جعفر
  18. وعليكم السلام بالنسبة للرقم ا: اعمل هذا الحدث للحقل m_sum ، في الحدث بعد التحديث: Private Sub m_sum_AfterUpdate() Me.m_sum = Me.m_sum - Me.com_name.Column(2) If Me.m_sum < Me.com_name.Column(2) Then MsgBox "القيمة اصغر" End If End Sub وبالنسبة للرقم 2: في الجدول notes ، في اعدادات الحقول (ما عدالرقم التلقائي) ، اجعل "مطلوب" = نعم: جعفر 322.db.accdb.zip
  19. السلام عليكم في الرابط التالي ، فيه شرح عن الموضوع: http://ryanglynn.com/2010/12/06/arabic-keyboard-layout-finished-programming/ وفيه كيبورد عربي بـ 103 ازرار ، والظاهر انه يعطي النتيجة الصحيحة: http://ju.chearon.net/up/junkyard/61574_arabic.zip جعفر
  20. وعليكم السلام أخي محمد البرنامج يعتمد على البرنامج الخارجي pdftk.exe ، واللي المفروض ان يكون في مجلد البرنامج ، غير هذا ، البرنامج يحفظ ملف الـpdf في مجلد الوندوز المؤقت ويناديه بهذا الامر fReturnTempDir ، وعلشان هذا الامر يشتغل ، فانت محتاج للوحدة النمطية modSystemDirectories واذا لم ترد ان تحفظ الملف المؤقت في مجلد الوندوز المؤقت (او كان عندك كود آخر لهذه المهمة) ، فانت لست بحاجة لهذه الوحدة النمطية. برنامج Adobe Acrobat Reader لا يملك قابلية عمل كلمة سر لملف pdf ، ولا إمكانية تمرير كلمة السر اليه لفتح ملف pdf ، لهذا السبب فنحن محتاجين الى الى البرنامج pdftk.exe ليقوم بهذه العمليات لنا جعفر
  21. وعليكم السلام اعطيك طريقتين: مطوّله بعدة اسطر لسهولة فهمها : If (RET * Rate) <= 500 Then If J15 > 0 Then A = N15 * L15 * 0.35 * 0.3 Else A = 0 End If Else If J15 > 0 Then A = N15 * L15 * 0.35 * 0.25 Else A = 0 End If End If بسطر واحد: A = IIf(RET * Rate <= 500, IIf(J15 > 0, N15 * L15 * 0.35 * 0.3, 0), IIf(J15 > 0, N15 * L15 * 0.35 * 0.25, 0)) جعفر
  22. السلام عليكم أخي الفاضل ابو خليل ، أخي الفاضل رمهان انا استعملت جزء من كود اخوي رمهان ، ولكني استبدلت Trim بدالة Replace وذلك لأني حصلت على نتائج أفضل بها سابقا المرفق فيه وحدة نمطية ، تشتمل على 3 وحدات ، وهي تقوم بتغيير حقل3 في جميع الجداول دفعة واحدة: flip_Numbers : لا نستعملها نحن (بل تناديها الوحدة النمطية F3_to_F4) ، وهي التي تقوم بعمل تغيير الارقام ، F3_to_F4 : وهي لتحويل الارقام من حقل3 بالطريقة الصحيحة ، ولكنها تقوم بوضع الارقام الصحيحة في حقل4 ، حتى تقوم انت بالتأكد ان الارقام صحيحة ، F4_to_F3 : وبعد التاكد من ان الارقام صحيحة ، نستعمل هذه الوحدة ، والتي تحدث حقل3 بالقيم الموجودة في حقل4 ، ثم تحذف القيم من حقل4 ، يعني استعمل F3_to_F4 ، ثم تأكد من الجداول ، ولما تكون مطمئن ، استعمل F4_to_F3 والوحدات النمطية: Option Compare Database Dim x() As String Function flip_Numbers(T) T = Replace(T, " ", "") '3 spaces T = Replace(T, " ", "") '2 spaces T = Replace(T, " ", "") '1 space If InStr(T, "-") > 0 Then x = Split(T, "-") flip_Numbers = x(1) & "-" & x(0) Else flip_Numbers = T End If End Function Function F3_to_F4() Dim tbl As AccessObject Dim dbs As Object Dim rst As DAO.Recordset Set dbs = Application.CurrentData For Each tbl In dbs.AllTables If Left(tbl.Name, 4) <> "Msys" Then 'Debug.Print tbl.Name mySQL = "UPDATE [" & tbl.Name & "] SET [الحقل4] = flip_Numbers([الحقل3])" CurrentDb.Execute (mySQL) End If Next tbl End Function Function F4_to_F3() Dim tbl As AccessObject Dim dbs As Object Dim rst As DAO.Recordset Set dbs = Application.CurrentData For Each tbl In dbs.AllTables If Left(tbl.Name, 4) <> "Msys" Then 'Debug.Print tbl.Name mySQL = "UPDATE [" & tbl.Name & "] SET [الحقل3] = [الحقل4]" CurrentDb.Execute (mySQL) mySQL = "UPDATE [" & tbl.Name & "] SET [الحقل4] = ''" CurrentDb.Execute (mySQL) End If Next tbl End Function جعفر 321.db2.mdb.zip
  23. وعليكم السلام انا ما عندي فكرة عن اللي تريده ، ولكن هذه محاولة لتعديل كود اخونا العود ابو خليل: Call Shell("regedit.exe /s " & Application.CurrentProject.Path & "\Lock.reg", 0) ولكن ، انت تستطيع ان تغير الريجستري من الاكسس مباشرة دون اللجوء الى برنامج خارجي ، واليك بعض الامثلة من روابط اجنبية: https://accesstips.wordpress.com/2010/03/25/how-to-use-microsoft-access-vba-to-save-data-in-the-registry/ http://www.slipstick.com/developer/read-and-change-a-registry-key-using-vba/ http://vba-corner.livejournal.com/3054.html وعند بحثي في المنتدى باسم: ريجستري ، فقد ظهرت لي مجموعة من المواضيع كذلك جعفر
  24. وعليكم السلام أخوي ابو خليل الله ان شاء الله يشغلك بالخير دوم ما عملتها بتنسيق ، وانما بإستعلام ، وبطريقتين: F: كود في الاستعلام مباشرة ، ولكنك تعرف ان الكود يتلخبط بسبب الكلمات العربية ، FF: بوحدة نمطية . والنتائج: . والوحدة النمطية: Function flip_Numbers(T) If InStr(T, "-") > 0 Then flip_Numbers = Mid(T, InStr(T, "-") + 2) & " - " & Mid(T, 1, InStr(T, "-") - 2) Else flip_Numbers = T End If End Function جعفر 321.db2.mdb.zip
×
×
  • اضف...

Important Information