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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم أخوي أبوخليل انت تطوعت للتجربة وضعت موضوع خاص على هذا الرابط: http://www.officena.net/ib/topic/66836-تشغيل-برنامج-الاكسس-في-اي-مجلد-،-وبدون-رسائل-الأمان/ جعفر
  2. السلام عليكم ورحمة الله وبركاته انا احد الاشخاص الذين لا يحبذ ان يستعمل الكود في تخفيف أمان الاكسس ، فقد وضعته شركة مايكروسوفت في حزمة الاوفيس حتى تحمينا من ايدي المخربين ، وفي هذا الرابط شرحت كيفية عمل مجلد موثوق به للأكسس 2007 فما فوق: http://www.officena.net/ib/topic/66450-دمج-ملف-وتشغيله-قبل-أو-مع-بدء-اكسس/#comment-432363 المشكلة في كود تخفيف الامان ، انه لا يخفض مستوى أمان الاكسس لبرنامجك فقط ، وانما يخفض مستوى أمان جميع برامج الاكسس. ولكننا كمبرمجين لدينا مشكلتنا ، في انه اذا ارسلت برنامجك الى شخص ما ، فلا بد من التواصل معه و اعطاؤه الخطوات كما في الرابط ، وإلا فالبرنامج لن يعمل ، لان البرنامج يشتمل على الماكرو والوحدات النمطية. هنا اقدم لكم طريقة لجعل برنامجي فقط يعمل بمستوى أمان أقل ، فلا تظهر لي رسالة الأمان من الاكسس. العمل كله يدور حول كود ، ويجب حفظ الكود هذا في ملف بصيغة vbs ، والذي يجب ان نفتح برنامجنا عن طريقه. الكود يعمل على برامج الاكسس بصيغة mdb و accdb ، والمفروض ان يعمل على جميع اصدارات الاكسس 2003 فما فوق ، وعلى الاكسس 32بت و64بت (انا هنا اطلب من الشباب تجربته بإصدارات الاكسس التي يعملون عليها ، وإخبارنا بالنتيجة لوسمحتوا). اليكم طريقة العمل (رجاء انزال المرفق وفكه في المسار C:\jj ، وذلك حتى يمكنكم متابعة خطواتي): رجاء وضع البرنامج المرفق Seq.mdb حسب المسار التالي: C:\jj\Seq.mdb الآن اذهب الى المجلد C:\jj وافتح البرنامج Seq.mdb بالنقر المزدوج ، عند فتحه نرى رسالة أمان الاكسس ، وهذا متوقع ، وذلك بسبب انه في مجلد غير موثوق به (رجاء لا تضف هذا المجلد كمجلد أمان ، وانما اخرج من البرنامج). . الملف الآخر المرفق Seq.vbs ، يحتوي على هذا الكود: rem http://www.accessmvp.com/jconrad/accessjunkie/macrosecurity.html rem expression.OpenCurrentDatabase(filepath required, Exclusive optional, bstrPassword optional) dim o set o=createobject ("Access.Application") o.automationsecurity=1 ' set macro security LOW. o.opencurrentdatabase "C:\jj\Seq.mdb" o.usercontrol=true set o=nothing . تستطيع ان تجعله في اي مجلد (ممكن تجرب نسخه منه في اي مجلد شئت) ، وانقر مرتين على هذا الملف بُغية تشغيله ، سترى انه فتح البرنامج Seq.mdb ، وبدون رسالة أمان الاكسس ، وهو المطلوب ------------------------------------------------------------------------------------------------------------------------------------------- هذه الخطوة إضافية ، وهي لتحويل الملف السابق من صيغة vbs الى exe ، واختيار ايقونه للملف الجديد الآن ننتقل للخطوة التالية ، وهي ، اننا لا نريد ان ايقونة vbs ، وانما نريد ايقونه خاصة لبرنامجنا. هناك طريقتين: 1. ايقونة مختصر البرنامج Shortcut: وهي ان نعمل مختصر لملف Seq.vbs ، ولكن وللأسف مختصر ملف vbs يعطينا نفس ايقونة الملف نفسه ، وما عندنا طريقة لتغييرها!! لذلك ، سنعمل مختصر لملف الاكسس ، ونغير البيانات كالصورة التاليه ، بحيث يصبح مختصر ملف vbs يحتوي على ايقونة ملف الاكسس (طبعا يمكنك ان تغير الايقونة الى اي شئ شئت): . . . . وبهذه الطريقة غيّرنا ايقونة برنامج vbs الى ايقونه اخرى مناسبة 2. تحويل ملف vbs الى ملف تنفيذي exe ، وتختار له الايقونة التي تعجبك: رجاء انزال البرنامج المجاني Vbs to Exe من الرابط التالي: http://www.f2ko.de/en/v2e.php احد اسباب اختياري لهذا البرنامج ، اننا نستطيع التحكم به عن طريق Commandline ايضا ثم نتبع الخطوات التالية: ونستطيع ان نعمل لبرنامج vbs هذا كلمة سر كذلك ، . في الخطوة 6 تستطيع ان تكتب معلومات شركتك ، ونختار الايقونه التي نريدها للبرنامج (الخطوة 5) . . وتستطيع ان تجعله على سطح مكتب كمبيوترك الميزة في هذه الطريقة ، ان المستخدم لن يعرف مكان برنامج قاعدة البيانات Seq.mdb ، ولن يعرف الكود الذي كان في Seq.vbs ارجو ممن يضع ردا على الموضوع ، ان يذكر: 1. اذا اشتغل البرنامج على كمبيوتره ، 2. نسخة الاكسس التي يستخدمها. ملاحظة: الظاهر ان بعض متصفحات الانترنت حجبت انزال المرفق Seq.zip ، وذلك بسبب احتوائه على ملف vbs ، والذي يستخدمه الكثيرون لتخريب الكمبيوتر ، لذلك ، ارفق لكم Seq_2.zip والذي يحتوي على نفس ملفات Seq.zip ، ولكني غيرت صيغة الملف Seq.vbs الى Seq.txt . بعد انزال المرفق وفك ملفاته في الكمبيوتر ، رجاء تغيير مسمى الملف Seq.txt الى Seq.vbs جعفر Seq.zip Seq_2.zip
  3. وعليكم السلام اليك الطريقة بالصور: آخر سجل في الجدول ، والمطلوب طباعته . في الاستعلام ، يجب ان نفرز بحقل يحتوي على آخر معلومة ، ممكن ان نستخدم Descending ، او DLast او DMax ، او اي فرز يوصلنا لعرض النتائج ، بحيث يصبح السجل الذي نريده اول سجل . هنا نرى ان السجل المطلوب اصبح اول سجل . في اعدادات الاستعلام ، نقول له ان يعطينا سجل واحد في الاستعلام فقط . والنتيجة . والتقرير الذي على اساس الاستعلام . جعفر 249.Seq.mdb.zip
  4. اليك المثال: جدول به حقل الاسماء ، انا اريد ان يكون الاسم jjafferr في اول القائمة ، والاسم e يكون ثاني اسم . اذا فرزنا حقل الاسم من الاصغر الى الاكبر ، . فالنتيجة ماهي اللي نريدها . واذا فرزنا حقل الاسم من الاكبر الى الاصغر ، فكذلك النتيجة ماهي اللي نريدها . والحل ، ان نعمل تسلسل في الحقل Seq ، بحيث ان نضع للإسم jjafferr رقم 1 ، والاسم e الرقم 2 : . والآن نفرز الحقل seq من الاصغر الى الاكبر . وهذه هي النتيجة/التسلسل الذي نريده . انا استخدم هذه الطريقة لفرز مربع التحرير / والسرد ، بحيث اضع في اعلا القائمة ، الاسم الذي اريده واللي يتكرر بإستمرار الموضوع لا يتوقف عند هذا الحد ، فاذا كان عندك حقل آخر يريد ترتيب خاص ، في نفس الجدول ، بسيطة ، اعمل حقل Seq2 له سهله هاه جعفر 249.Seq.mdb.zip
  5. وعليكم السلام أخوي حربي الجواب ما ادري ، لأن البرنامج معقد وغير واضح لي ، فيجب ان ابحث فيه ، وهذا مب سهل كذلك لذلك طلبت منك ان توجهني الى مكان الاستعلامات فاذا تقدر توجهني مرة ثانية وين لازم اشوف ، المسألة بتصير واجد اسهل جعفر
  6. هل جربت طريقتي؟ أخي ناصر ، مثل ماقلت لك ، في قاعدة البيانات يجب ان تستعمل الفرز والتصفية في اي شئ تريد جعفر
  7. السلام عليكم انا فكرتي تختلف عن فكرة أخي سعيد ، وهذه ميزة أكثر من مشاركة في موضوع واحد فكرتي هي: 1. عمل جدول مؤقت باسم tbl_Temp ، ونُدخل فيه جميع الاشهر ، ابتداء من الشهر بعد تاريخ التوظيف ، الى الشهر الماضي ، لكل موظف ، 2. ثم نستعمل الاستعلام في مقارنة هذه الاشهر ، مع الاشهر المدفوعه ، ونطلب من الاستعلام ان يعطينا قائمة بالاشهر الغير موجودة الكود التالي يعمل العمل رقم 1: Private Sub cmd_Go_Click() On Error GoTo err_cmd_Go_Click Dim rstF As DAO.Recordset Dim rstT As DAO.Recordset 'empty tbl_Temp CurrentDb.Execute ("Delete * From tbl_Temp") 'table To Set rstT = CurrentDb.OpenRecordset("Select * From tbl_Temp") 'table From Set rstF = CurrentDb.OpenRecordset("Select * From akad_amel") rstF.MoveLast: rstF.MoveFirst RC = rstF.RecordCount 'Loop from table From, 'and get the w-code, and his starting date For i = 1 To RC Date_From = rstF!bad_akd 'Starting date Date_To = DateSerial(Year(Date), Month(Date), 0) 'Last month How_Many_Months = DateDiff("m", Date_From, Date_To) 'How many months in-between Last_Day_Of_Last_Month = DateSerial(Year(Date_From), Month(Date_From), 30) 'Last_Day_Of_Last_Month 'we will generate All the months for each Employee, from his start date to Last month For j = 1 To How_Many_Months 'start adding rstT.AddNew rstT!w_code = rstF!w_code 'w_code rstT!iDate = DateAdd("m", j, Last_Day_Of_Last_Month) 'the month rstT.Update Next j rstF.MoveNext Next i rstF.Close: Set rstF = Nothing rstT.Close: Set rstT = Nothing MsgBox "Done" Exit Sub err_cmd_Go_Click: If Err.Number = 3021 Then 'No Records Exit Sub Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub ثم النتيجة تكون في الاستعلام qry_Temp Without Matching raetb_tamb ، والذي يُفضل ان تعمل تقرير على اساسه ** ملاحظة ، بسبب استعمال الجدول المؤقت ، والذي يتم حذف جميع بياناته واضافة بيانات جديدة ، هذا يجعل حجم قاعدة البيانات تكبر ، فيجب استخدام الضغط والاصلاح بين كل فترة لإرجاع الحجم الى حقيقته جعفر 240.الشهر الغير موجود.mdb.zip
  8. السلام عليكم والله يا أخوي حربي ، انا ضايع في البرنامج بس اعمل هذه الملاحظات ، وان شاء الله يتم الازم: جدول "ترميز_استقطاعات" ، يجب ان: 1. تعمل صح في حقل "كل الموظفين" ، 2. النوع "1" ، 3. وتضع النسبة "3" ، للسجل "رعاية القاصرين": . وهذا هو كود الحدثين: الكود للحدث 1 If قائمة0.Column(0) = 22 Then Me.النسبة = Val(قائمة0.Column(2)) Me.المبلغ = الراتب * النسبة * 0.03 Me.المبلغ.Locked = -1 Me.نوع_الاستقطاع = 1 End If الكود للحدث 2 ElseIf قائمة0.Column(0) = 22 Then Me.النسبة = Val(قائمة0.Column(2)) Me.المبلغ = الراتب * النسبة * 0.03 Me.المبلغ.Locked = -1 Me.نوع_الاستقطاع = 1 . ثم شغل البرنامج بالطريقة العادية ، وان شاء الله تلقى النتيجة المطلوبة جعفر
  9. وعليكم السلام الطريقة الصحيحة لوضع قاعدة البيانات على الشبكة ، هي ان تعملها جزئين ، جزء للجداول (وتسمى BE) ، وجزء لباقي كائنات البرنامج (وتسمى FE)، جزء الجداول يكون على مجلد على الشبكة ، ويكون لجميع المستخدمين صلاحيات القراءة/التغيير ، جزء بقية الكائنات ، يكون على كمبيوتر كل مستخدم ، وتكون جداول الجزء الاول مرتبطة مع هذا الجزء. هناك عدة طرق لعمل تحديث لجزء الكائنات ، بحيث يقوم المبرمج بوضع النسخة الجديدة في نفس مجلد جزء الجداول على الشبكة (لأن جميع المستخدمين عندهم صلاحيات القراءة/التغيير للمجلد هذا ، مما يجعل هذا المجلد هو المجلد الاسهل للإستعمال)، احد طرق التحديث: 1. ان تعمل جدول في جزء الجداول ، ويكون فيه حقل واحد ، وقيمة واحدة فقط ، وهي رقم التحديث ، وطبعا هذا الجدول سيكون مربوط مثل بقية الجداول ، بالجزء الثاني ، 2. وفي جزء بقية الكائنات ، تعمل جدول محلّي ، اي غير مرتبط مع الجزء الاول ، ويكون فيه حقل واحد ، وقيمة واحدة فقط ، وهي رقم النسخة الحالية للجزء الثاني ، 3. عند تشغيل الجزء الثاني ، فسيعمل مقارنة بين رقم نسخته (من الجدول المحلي) ، ورقم نسخة التحديث (من الجدول المرتبط) ، فاذا تطابقت الارقام ، فمعناه انه لا يوجد نسخة جديدة ، اما اذا لم تتطابق الارقام ، فمعناه ان هناك نسخة جديدة موجودة ، ويجب ان يتم استبدال نسخته (التي على كمبيوتره ، بتلك التي في الشبكة) هذه صلب الفكرة جعفر
  10. وعليكم السلام أخي ناصر لا تستطيع بالماوس ، فانت تتكلم عن قاعدة بيانات طريقة تسلسل السجلات هي نفسها في الجدول او الاستعلام او النموذج ، وهي عن طريق الفرز والتصفية انا في بعض برامجي ، اعمل في كل جدول حقل رقمي خاص للتسلسل ، اسميه Seq ، وعليه اعطي السجلات التسلسل المطلوب ، ثم اعمل الفرز على اساس هذا الحقل جعفر
  11. وعليكم السلام أخي ممكن تعطينا مثال على الاجابة الصحيحة ، من بياناتك جعفر
  12. اذا انت ما تعرف ، واويلاه بما انك قلت "بمجرد فتح البرنامج" ، طيب في البرنامج الاصلي ، 1. هل هناك ماكرو بإسم autoexec ، اذا في ، رجاء ترفقه لي ، 2. وماذا اسم النموذج الاول اللي ينفتح (من خلال هذا النموذج سنرى في الكود اسم الاستعلام) ، وكذلك اريدك ترفقه جعفر
  13. هلا والله
  14. وعليكم السلام اقول ابوالشباب ، ياريت تخبرني اسم الاستعلام اللي يحدث 10% حق كل الموظفين جعفر
  15. . في هذه الحالة ، يجب ان يكون الكود في الحدث تنسيق الجزء الصحيح من التقرير ، وهو ذيل التقرير ، لاحظ هذا الفيديو : . جعفر
  16. وعليكم السلام انا قلت: . وانت اضفتها الى الحقل الخطأ ، الحقل استقطاعات_الموظف!!: . المفروض تكون هنا: جعفر
  17. وعليكم السلام اذا كان اسم الحقل الذي تريد نسخ المعلومة التي فيه Text0 ، فيصبح الكود: Me.Text0.SetFocus DoCmd.RunCommand acCmdCopy والان تستطيع ان تلصق هذه القيمة في اي برنامج جعفر
  18. المتغير مكتوب بعد الجملة: "code_items=" سواء للنص او الرقم او التاريخ ، او اذا القيمة مأخوذة من النموذج .... فيجب ان تعرف نوع الحقل PrinterID ، وعلى اساسة تختار اي كود مناسب له الامثلة كلها هناك جعفر
  19. وعليكم السلام المشكلة ليست في اصدار الاوفيس ، وانما البرنامج كان معمول على اكسس 32بت ، وانت الان تستعمل اكسس 64بت ، راجع هذا الرابط لبعض المعلومات: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ جعفر
  20. وعليكم السلام هذا الرابط به الامثلة والطريقة التي تحتاج لها: http://www.officena.net/ib/topic/61469-امثلة-بسيطة-للدالة-dlookup/ جعفر
×
×
  • اضف...

Important Information