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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. وعليكم السلام وتكملة لمرفق أخي حسام ، يمكنك عمل استعلام ، وتختار اي الاسمين تريد ، بالعربي او الانجليزي: . جعفر
  2. السلام عليكم هناك طريقة اخرى للجدول المؤقت: الطريقة الاولى: 1. اعمل الجدول اللي تريده في قاعدة بياناتك ، بالحقول المطلوبة ، وبدون سجلات وبيانات ، 2. برمجيا اعمل ملف اكسس mdb او accdb خارجي ، واستنسخ اليه هذا الجدول ، 3. اجعل الكود يولّد البيانات ويحفظها في هذا الجدول الخارجي ، 4. طبعا سيكون تقريرك يأخذ بياناته من هذا الجدول الخارجي ، 5. عند اغلاق البرنامج ، احذف هذا الملف الخارجي بهذه الطريقة ، لا يوجد اي ضغط على القاعدة الحالية انا استخدمت هذه الطريقة في برنامج مسقط التقارير: http://www.officena.net/ib/topic/59415-هدية-مسقط-التقارير/ الطريقة الثانية: 1. اعمل الجدول اللي تريده في قاعدة بياناتك ، بالحقول المطلوبة ، وبدون سجلات وبيانات ، 2. اعمل ملف اكسس mdb او accdb خارجي ، واعمل فيه هذا الجدول ، 2.1. احفظ هذا الملف في نفس مجلد برنامجك ، وعند طلب عمل الاستعلام ، اعمل نسخة منه باسم آخر ، او احفظ هذا الملف داخل قاعدة بياناتك بصيغة BLOB ، وعند طلب عمل الاستعلام ، استخرج واحفظ الملف الى مجلد برنامجك (انا كنت احفظه في مجلد الوندوز المؤقت Temp) ، 3. اجعل الكود يولّد البيانات ويحفظها في هذا الجدول الخارجي ، 4. طبعا سيكون تقريرك يأخذ بياناته من هذا الجدول الخارجي ، 5. عند اغلاق البرنامج ، احذف هذا الملف الخارجي جعفر
  3. وعليكم السلام اخوي حربي من الان ان شاء الله بشتغل على برنامجك ، بس عندي سؤال: شو اسم التقرير اللي يُطبع وفيه الخصومات؟ او من اي نموذج / زر يتم طباعة هذا التقرير؟ جعفر
  4. يجب عليك ان تصفّي السجلات قبل ان توصل الى الجمع والعد: انا اضفت صفرين الى الجدول . ولكي نتخلص من الخانات الفاضية والاصفار ، نعمل حقل خاص في الاستعلام ، اسميته T . والنتيجة . والان يجب ان لا نسمح بالحقول التي بها صفر . والنتيجة . ثم تستخدم هذا الاستعلام للجمع والعد: . . جعفر
  5. لن يتم حساب الحقول الفاضية ، اليك المثال: . . . جعفر
  6. شكرا جزيلا لك أخوي ابوخليل في كل الحالات نحن نستعمل الوسيط ، فمختصر برنامج الاكسس الموجود على سطح المكتب لتشغيل البرنامج ، هو نوعا ما ، وسيط ايضا انا متفق معاك 100% جعفر
  7. حياك الله أخوي أبورحيل ، والبركة في الجميع حياك الله مثل ما قلت لك: فالمسألة سهلة ، وتقدر تحاول بنفسك جعفر
  8. وعليكم السلام انا عملت 1-5 ، ولم افهم الطلب 6 ، واعتقد بأنك تستطيع ان تعمله على المرفق ان شاء الله انا قمت بتغيير التواريخ قليلا ، حتى ارى الفرق اساس العمل كله هو هذا الاستعلام . لاحظ التاريخ الذي ساجربه اولا . العمل كله يتم عن طريق هذا النموذج . هذه نتيجة بيانات النموذج . فيكون الرسم البياني ، والذي اساسه الاستعلام اعلاه . بينما اذا غيرنا بيانات النموذج . فالنتيجة . . والان سأشرح لك طريقتي في عمل الرسومات البيانية . الخطوات التالية ، كله اضغط على Next .. Next .. واخيرا Finish ، وبدون ان اهتم بالتفاصيل . والنتيجة . عندها ابدأ العمل الفعلي ، وهو بتغيير Row Source . واخترت الاستعلام اللي عملته في البداية . والنتيجة . واذا اردت ان اغير في الحقول ، اضغط على الزر اللي في الدائرة الحمراء ، والدخول الى الاستعلام ، وتغيير الحقول كما اشاء واذا اردت تغييرات اخرى ، انقر مرتين على الرسم البياني جعفر 251.Database3.accdb.zip
  9. وعليكم السلام أخوي ابوخليل ما استغرب ، وما خليت بالي على هذه القضية المرفق فيه ملف vbs واللي عادة يكون فيه برنامج مخرب للكمبيوتر ، وفيه برنامج exe كذلك واللي ممكن يخرب الكمبيوتر!! انا جتني هذه الرسالة: . فضغطت على Keep وتم التنزيل سأعمل مجموعة محاولات ، وعلى اساسها سارفع المرفق الصحيح جعفر توصلت الى المرفق الصحيح ، فسأرفعه الان الى رابط الموضوع الاصلي: http://www.officena.net/ib/topic/66836-تشغيل-برنامج-الاكسس-في-اي-مجلد-،-وبدون-رسائل-الأمان/ جعفر
  10. شكرا ياشباب ارجو ممن يضع ردا على الموضوع ، ان يذكر: 1. اذا اشتغل البرنامج على كمبيوتره ، 2. نسخة الاكسس التي يستخدمها. حتى نعرف ان الطريقة تشتغل على كل اصدارات الاكسس جعفر
  11. حياك الله تم تغيير الصور المتحركة ، لتشمل امثلة إضافية ، فارجع الى موضوعي بعاليه لتراها جعفر
  12. تفضل اخوي سعيد ، هذا رزق اتاك ، فاكمله جعفر
  13. السلام عليكم أخوي أبوخليل انت تطوعت للتجربة وضعت موضوع خاص على هذا الرابط: http://www.officena.net/ib/topic/66836-تشغيل-برنامج-الاكسس-في-اي-مجلد-،-وبدون-رسائل-الأمان/ جعفر
  14. السلام عليكم ورحمة الله وبركاته انا احد الاشخاص الذين لا يحبذ ان يستعمل الكود في تخفيف أمان الاكسس ، فقد وضعته شركة مايكروسوفت في حزمة الاوفيس حتى تحمينا من ايدي المخربين ، وفي هذا الرابط شرحت كيفية عمل مجلد موثوق به للأكسس 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
  15. وعليكم السلام اليك الطريقة بالصور: آخر سجل في الجدول ، والمطلوب طباعته . في الاستعلام ، يجب ان نفرز بحقل يحتوي على آخر معلومة ، ممكن ان نستخدم Descending ، او DLast او DMax ، او اي فرز يوصلنا لعرض النتائج ، بحيث يصبح السجل الذي نريده اول سجل . هنا نرى ان السجل المطلوب اصبح اول سجل . في اعدادات الاستعلام ، نقول له ان يعطينا سجل واحد في الاستعلام فقط . والنتيجة . والتقرير الذي على اساس الاستعلام . جعفر 249.Seq.mdb.zip
  16. اليك المثال: جدول به حقل الاسماء ، انا اريد ان يكون الاسم jjafferr في اول القائمة ، والاسم e يكون ثاني اسم . اذا فرزنا حقل الاسم من الاصغر الى الاكبر ، . فالنتيجة ماهي اللي نريدها . واذا فرزنا حقل الاسم من الاكبر الى الاصغر ، فكذلك النتيجة ماهي اللي نريدها . والحل ، ان نعمل تسلسل في الحقل Seq ، بحيث ان نضع للإسم jjafferr رقم 1 ، والاسم e الرقم 2 : . والآن نفرز الحقل seq من الاصغر الى الاكبر . وهذه هي النتيجة/التسلسل الذي نريده . انا استخدم هذه الطريقة لفرز مربع التحرير / والسرد ، بحيث اضع في اعلا القائمة ، الاسم الذي اريده واللي يتكرر بإستمرار الموضوع لا يتوقف عند هذا الحد ، فاذا كان عندك حقل آخر يريد ترتيب خاص ، في نفس الجدول ، بسيطة ، اعمل حقل Seq2 له سهله هاه جعفر 249.Seq.mdb.zip
  17. وعليكم السلام أخوي حربي الجواب ما ادري ، لأن البرنامج معقد وغير واضح لي ، فيجب ان ابحث فيه ، وهذا مب سهل كذلك لذلك طلبت منك ان توجهني الى مكان الاستعلامات فاذا تقدر توجهني مرة ثانية وين لازم اشوف ، المسألة بتصير واجد اسهل جعفر
  18. هل جربت طريقتي؟ أخي ناصر ، مثل ماقلت لك ، في قاعدة البيانات يجب ان تستعمل الفرز والتصفية في اي شئ تريد جعفر
  19. السلام عليكم انا فكرتي تختلف عن فكرة أخي سعيد ، وهذه ميزة أكثر من مشاركة في موضوع واحد فكرتي هي: 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
  20. السلام عليكم والله يا أخوي حربي ، انا ضايع في البرنامج بس اعمل هذه الملاحظات ، وان شاء الله يتم الازم: جدول "ترميز_استقطاعات" ، يجب ان: 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 . ثم شغل البرنامج بالطريقة العادية ، وان شاء الله تلقى النتيجة المطلوبة جعفر
  21. وعليكم السلام الطريقة الصحيحة لوضع قاعدة البيانات على الشبكة ، هي ان تعملها جزئين ، جزء للجداول (وتسمى BE) ، وجزء لباقي كائنات البرنامج (وتسمى FE)، جزء الجداول يكون على مجلد على الشبكة ، ويكون لجميع المستخدمين صلاحيات القراءة/التغيير ، جزء بقية الكائنات ، يكون على كمبيوتر كل مستخدم ، وتكون جداول الجزء الاول مرتبطة مع هذا الجزء. هناك عدة طرق لعمل تحديث لجزء الكائنات ، بحيث يقوم المبرمج بوضع النسخة الجديدة في نفس مجلد جزء الجداول على الشبكة (لأن جميع المستخدمين عندهم صلاحيات القراءة/التغيير للمجلد هذا ، مما يجعل هذا المجلد هو المجلد الاسهل للإستعمال)، احد طرق التحديث: 1. ان تعمل جدول في جزء الجداول ، ويكون فيه حقل واحد ، وقيمة واحدة فقط ، وهي رقم التحديث ، وطبعا هذا الجدول سيكون مربوط مثل بقية الجداول ، بالجزء الثاني ، 2. وفي جزء بقية الكائنات ، تعمل جدول محلّي ، اي غير مرتبط مع الجزء الاول ، ويكون فيه حقل واحد ، وقيمة واحدة فقط ، وهي رقم النسخة الحالية للجزء الثاني ، 3. عند تشغيل الجزء الثاني ، فسيعمل مقارنة بين رقم نسخته (من الجدول المحلي) ، ورقم نسخة التحديث (من الجدول المرتبط) ، فاذا تطابقت الارقام ، فمعناه انه لا يوجد نسخة جديدة ، اما اذا لم تتطابق الارقام ، فمعناه ان هناك نسخة جديدة موجودة ، ويجب ان يتم استبدال نسخته (التي على كمبيوتره ، بتلك التي في الشبكة) هذه صلب الفكرة جعفر
×
×
  • اضف...

Important Information