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

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8,495
  • تاريخ الانضمام

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

  • Days Won

    36

كل منشورات العضو محمد طاهر عرفه

  1. السلام عليكم تم تعديل الملف بتفيذ ما تفضل به الأخ أبو هادي : التسجيل يتم فى نفس الخلية b65535 و لكن فى ورقة عمل تسمي S و هي مخفية و محمية بكلمة سر = m Private Sub Workbook_Open() Application.ScreenUpdating = False Sheets("s").Visible = True ActiveWorkbook.Sheets("s").Select ActiveSheet.Unprotect ("m") Range("a1").Activate Dim aa As Byte If IsNull(Range("b65535").Value) Then Range("b65535").Value = 1 End If aa = Range("b65535").Value If aa = 5 Then MsgBox "Used for 5 times , no more use is allowed !!" ActiveSheet.Protect Password:="m", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWindow.SelectedSheets.Visible = False Application.ScreenUpdating = True Application.ActiveWorkbook.Save Application.ActiveWorkbook.Close Exit Sub Else Dim bb As String bb = Str(aa + 1) MsgBox "This File was used " & bb & " Times " End If Range("b65535").Value = aa + 1 ActiveSheet.Protect Password:="m", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWindow.SelectedSheets.Visible = False Application.ScreenUpdating = True Application.ActiveWorkbook.Save End Sub و لتفريغ الخلية بعد استفاذ الخمسة مرات لا نفعل الماكرو اذا سأل عند فتح الملف فى حالة مستوي الحماية المتوسط ، أو نضغط شيفت مع الفتح لايقاف الماكرو فى حالة التشغيل التلقائي للماكروهات ثم نظهر الورقة المسماة s ثم نفك حمايتها ، بكلمة السر M ثم نفرغ الخلية التي نسجل بها القيمة و بالنسبة للكود تم اضافة Application.ScreenUpdating = False حتي لا يري المستخدم عملية اظهار و فك حماية الشيت من أجل تسجيل القيمة بها و أعيد تفعيلها قبل الخروج أيضا أضيفت كلمة سر لللحماية عند تفعيلها ActiveSheet.Protect Password:="m" و استخدمنا نفس كلمة السر عند فك الحماية ActiveSheet.Unprotect ("m") مع تحياتي Countopens2.zip
  2. السلام عليكم يكون ذلك بازالة السطر التالي MsgBox "This File was used " & bb & " Times " أو وضع علامة ' فى بدايته 'MsgBox "This File was used " & bb & " Times " و نفس الشيء مع الرسالة التي تخبر ببلوغ عدد المرات 5 MsgBox "Used for 5 times , no more use is allowed !!"
  3. Private Sub Workbook_Open() ActiveWorkbook.Sheets(1).Select Range("a1").Activate Dim aa As Byte If IsNull(Range("b65535").Value) Then Range("b65535").Value = 1 End If aa = Range("b65535").Value If aa = 5 Then MsgBox "Used for 5 times , no more use is allowed !!" Application.ActiveWorkbook.Close Exit Sub Else Dim bb As String bb = Str(aa + 1) MsgBox "This File was used " & bb & " Times " End If Range("b65535").Value = aa + 1 Application.ActiveWorkbook.Save End Sub و تسجيل الرقم يتم فى الخلية b65535 و تم تغيير لونها الي الابيض للتمويه و يمكن اضافة التحكم فى مستوي حماية الماكرو ( تفعيل الكود فى الملف تلقائيا ) و يوجد مثال ف الارشيف علي ذلك Countopens.zip
  4. بصراحة ، مفاجأة و لم أتصور أن الكود سيكمل بعد اغلاق الفورم الثاني :yess: جزاك الله خيرا علي المعلومة المفيدة :d
  5. جميل جدا و إضافة بسيطة أن الافتراضي أن بداية الاسبوع هو يوم رقم 1 أو الأحد = vbsunday و فى مثال الأخ أبو هادي وضع بداية الاسبوع السبت باستخدام vbsaturday او رقم 7 Weekday(K, 7) و في حالة وضع رقم صفر بدل 7 يستخدم الاعدادات الافتراضية المناظرة للبلد المختارة فى لوحة تحكم الويندوز Weekday(K, 0) و بالنسبة لحهازي فصفر تعطي نفس نتيجة 7 فى المثال و البلد عندي مصر فهل نفس النتيجة لديكم ؟؟ و هذا المثال شامل الاحتمالات كلها الي دالة الاخ ابو هادي لسهولة المقارنة weekday.zip
  6. أرجو التوضيح كما فهمت لا توجد مشكلة فى تحويل الشرائح الي صفحات ويب أليس كذلك .؟؟ فاذا كان كذلك ، فللتنقل بينها يجب عمل الرتباط تشعبي اذا كنت تريد التنقل بالماوس أما اذا أردته بعرض مستمر تلقائي ، فسيكون الحل بادراج جملة javascript فى الصفحة للتجويل الي الصفحة التالية بعد عدد من الثواني و يكون مكان السؤال هنا : www.arab-team.com/ib فى قسم الجافا سكريبت لتحصل علي الاجابة المتخصصة فيما يخص الويب مع تحياتي
  7. السلام عليكم أخي حسام ، أرجو عدم توجيه المشاركة الي شخص بعينه كما هو في قواعد الاسئلة الموجودة أعلي القسم و ذلك ، حتي لا نغلق باب إجابة أفضل قد تأتي من شخص آخر سأعد المثال و أضعه بإذن الله تعالي :)
  8. السلام عليكم أنا لم أجربها و لكن أعتقد أن هذه الخاصية من خصائص الطابعة نفسها ، و ليس اللوورد ووجودها من عدمه مرتبط بنوع الطابعة
  9. و عليكم السلام و رحمة الله و بركاته Sub addone() Range("a1").Value = Range("a1").Value + 1 End Sub
  10. 3-2 إستعلامات الاختيار - 1 Select Queries - Part1 فى هذا الموضوع ستبدأ بإذن الله الحديث عن أول و اهم انواع الاستعلامات ،ـ و الاكثر استخداما الا و هو استعلام الاختيار Select Query و سنخصص له حلقتين بإذن الله و هذه اولاهما و محتوياتها كالتالي : إنشاء استعلامات الاختيارمن وضع التصميم Creating Select Queries From Design View وضع عرض البيانات Datasheet View ترتيب السجلات Sorting Records وضع الشروط Conditions لقيم المستنتجة و اجراء الحسابات استخدام دالة داخل الاستعلام Using a Funcion in the Query تجميع أو تلخيص البيانات Grouping Records و الموضوع من هنا و المثال من هنا
  11. 3-2 إستعلامات الاختيار - 1 Select Queries - Part1 فى هذا الموضوع ستبدأ بإذن الله الحديث عن أول و اهم انواع الاستعلامات ،ـ و الاكثر استخداما الا و هو استعلام الاختيار Select Query و سنخصص له حلقتين بإذن الله و هذه اولاهما و محتوياتها كالتالي : إنشاء استعلامات الاختيارمن وضع التصميم Creating Select Queries From Design View وضع عرض البيانات Datasheet View ترتيب السجلات Sorting Records وضع الشروط Conditions لقيم المستنتجة و اجراء الحسابات استخدام دالة داخل الاستعلام Using a Funcion in the Query تجميع أو تلخيص البيانات Grouping Records و الموضوع من هنا و المثال المرفق : Q1.zip
  12. الاستعلامات الاستعلامات هي أهم كائنات قواعد البيانات ، من خلال الاستعلام يمكنك عمل الكثير كما سنري بإذن الله و لدينا عشرة أنواع من الاستعلامات خمسة منها لها واجهة رسومية يمكن استخدامها لتكوين الاستعلام باستخدام الفأرة أو كتابة الاستعلام يدويا و الخمسة الأخري سنكتب فيها جمل ال SQL مباشرة و الأصل فى الاستعلامات أنها جميعا فى النهاية عبارة عن جمل و تعبيرات SQL و قبل أن نعرض الي تعريف الانواع العشرة ، تعالوا نتعرف الي ما تعنيه هذه الحروف الثلاثة SQL Structured Query Language السي كيو ال هو لغة التعامل مع قاعدة البيانات و ينقسم الي 3 أقسام لغة معالجة البيانات DML Data manipulation language لغة تعريف البيانات DDL Data Definition language لغة التحكم فى البيانات DCL Data Control language لغة معالجة الييانات ادراج بيانات تحديث بيانات حذف بيانات استرجاع بيانات لغة تعريف البيانات هي إنشاء قاعدة البيانات فى البداية كان يتم انشاء قاعدة البيانات باستخدام جمل SQL ثم بعد ظهور نظم ادارة قواعد البيانات مثل الاكسس أصبحت هذه العملية تتم من خلال واجهة رسومية سهلة الاستخدام قادرة علي انشاء و التحكم أيضا فى قواعد البيانات و هذه اللغة مسئولة عن : إنشاء جدول الغاء جدول تعديل جدول العلاقات لغة التحكم تتولي معالجة صلاحيات المستخدمين و هذه العمليات أيضا أصبحت تتم من خلال الواجهة الرسومية لنظم ادارة قواعد البيانات و نعود ثانية الي الأكسس : :d سنبدأ فى هذا الموضوع بتعريف أنواع الاستعلامات ، كتعريف عام قبل أن نعرض اليها بالتفصيل بإذن الله تعالي: 1. استعلامات الاختيار : select query 2. استعلامات الجداول المحورية : ؛Cross Tab Query 3. استعلام تحديث : Update Query 4. استعلام إضافة : Append Query 5. استعلام حذف : Delete Query 6. استعلام إنشاء جدول : Make Table Query 7. استعلامات التوحيد : Union Query 8. استعلامات التمرير : Pass-Trough Queries 9. استعلامات تعريف البيانات : Data definition queries 10. الاستعلامات الفرعية : Sub-query استعلامات الاختيار : select query تكوين مجموعة من السجلات المبنية علي جدول أو أكثر من بحيث تمثل كل الببيانات أو المجموعة من السحلات التي تحقق شروط معينة. بالاضافة الي امكانية التحكم فى ترتيب السجلات . – مثل جميع الطلاب الذين تتعدي درجاتهم 90 و بلدهم القاهرة و عدد أيام الغياب لديهم أقل من خمسة – مع كون الشروط الثلاثة نخص بيانات مسجلة فى ثلاث جداول مختلفة. و كما تكلمنا سابقا ، يمكن عمل ذلك باحدي طرق تصفية الجداول ، و لكن هنا سيكون لدينا كائن استعلام محفوظ ، يمكن استخدامه فى أي وقت . أيضا يمكن استخدامه لتجميع البيانات التي تشترك فى خواص معينة ، أي تلخيص البيانات و في هذه الحالة يطلق عليها استعلام تجميع استعلامات الجداول المحورية : ؛Cross Tab Query و هي أداة تحليلية تستخدم لتحليل البيانات بناء علي الخاصية المطلوبة ، فيتم فيها تجميع البيانات التي تجمعها خاصية معينة و تحليلها بالنسبة لخاصية أخري و تقديم الاحصائية المناظرة بمعني : لو لدينا بيانات عدد من الطلاب ، و تقديرهم و الجنسية ، و نريد احصائية تكون الصفوف فيها هي البلد و الأعمدة هي التقدير و محتويات الجدول عدد الطلاب الذين ينتمون الي كل بلد و كل تقدير أو مثلا بدلا من العدد نريد البيانات مجموع المصروفات المناظر ، أو أكبر تاريخ ميلاد لكل بلد و لكل تقدير فنحن نتحدث عن تطبيق مباشر للاستعلامات من نوع Cross Tab استعلام تحديث : Update Query تحديث كل أو بعض قيم بيانات فى جدول بشروط او بدون استعلام إضافة : Append Query اضافة سجلات الي جدول بشرط و بدون استعلام حذف : Delete Query حذف كل أو بعض السجلات من جدول بشرط أو بدون استعلام إنشاء جدول : Make Table Query إنشاء جدول جديد يحوي بيانات مختارة استعلامات السي كيو ال المحددة SQL Specific Queries استعلامات التوحيد : Union Query مثل استعلامات الاختيار ـ، و لكن تتميز عليها بامكانية توحيد أو ضم بينات أكثر من جدول فى نفس الحقل فمثلا لو لدينا جدول به أوامر البيع و آخر به أوامر التوريد ، و كلاهما به حقل رقم الامر و القيمة و أردنا أن ننشيء استعلام واحد يجمع بيانات الجدولين بحيث يكون به ثلاث حقول الاول يوضح نوع الامر و الثاني رقمه و الثالث القيمة و تكون القيمة موجبة فى حالة اوامر التوريد و سالبة فى حالة اوامر الصرف ، فنحن نتحدث عن تطبيق مباشر لاستعلامات التوحيد استعلامات التمرير : Pass-Trough Queries تستخدم لارسال أوامر بلغة اس كيو ال ، الي خادم قاعدة بيانات مباشرة من خلال ال ODBC ، و قد يكون لها مردود باعادة عرض سحلات و قد لا يكون لها ، و تفاصيل كتابة الاوامر فيها تعتمد علي قاعدة البيانات التي سنقوم بالتمرير اليها و نمر سريعا علي تعريف ال ODBC : Open Database Connectivity (ODBC): A standard method of sharing data between databases and programs. ODBC drivers use the standard Structured Query Language (SQL) to gain access to external data.) امكانية الاتصال بين قواعد البيانات ، و مشاركة البيانات بينها ، و تعتمد علي لغة الاستعلامات البنائية ( اس كيو ال) النمطية للتعامل مع البيانات استعلامات تعريف البيانات : Data definition queries و هي تستخدم لانشاء و حذف و تعديل الجداول و الفهارس الاستعلامات الفرعية : Sub-query و هو ليس نوع جديد ، و لكنه تطبيق لاستخدام استعلامات الاختيار ، و لكن هذه المرة لتعريف حقل أو معيار لحقل و طبعا هذا تعريف عام ، كبداية للحديث ، و يلي ذلك عرض الموضوع بالتفصيل بإذن الله
  13. أو أيضا نضع الكود التالي في روتين فرعي يخص ملف العمل woorkbook Sub move() Sheets("sheet1").Activate End Sub و بالانتقال الي أي ورقة عمل غير sheet1 و تشغيل الماكرو ، يتم تفعيل sheet1
  14. مثال للأخ حارث قم بتشغيل الزر فى النموذج يقوم بانشاء جدول به الأخطاء و أرقامها errortable_harith.zip
  15. تم بحمد الله افتتاح منتدي الفريق العربي لتكنولوجيا الويب الموقع http://www.arab-team.com و به أيضا قسم مميز للدروس
  16. بعد الوصول لمستند تحليل النظام ( النسخة الثانية ) سنبدأ هنا فى تحويل التحليل الي رسم ال ERD ثم الي تصميم جداول فى االأكسس و الشرح و المثال فى الملف المرفق ( ملف وورد + ملف أكسس ) و المطلوب هو مراجعة المثال و الشرح و وضع الاضافات و التعديلات التي ترونها حلقة الحوار الخاصة بالموضوع ملاحظة : انتهت فترة الحوار و تم اغلاق الحلقة مع تحياتي ERD_TableDes.zip
  17. و جزاك الله خيرا و في انتظار مشاركاتك فى المنتدي :) مع تحياتي
  18. نعم :) هذا أسهل يبدو أن الكود أصبح هو أول ما أفكر فيه فى الاكسيل ، و ليس العكس كما هو مفترض :) تم تعديل المثال فى أول مشاركة باضافة الطريقة التي تفضل بها أبو هادي مرة و مرة أخري باضافة الدالة abs التي تعيد القيمة بدون اشارات لكل لا تقلق من الاكبر عند الطرح بالنسبة للكود ، يوجد في قسم خلاصة مشاركات الاكسيل ، مقدمة بسيطة للتعامل معه بعنوان مقدمة الي vba
  19. استخدم الدالة الآتية : Function Mytimediff(t1, t2) tdif = Abs(Hour(t2) - Hour(t1) + Minute(t2) / 60 - Minute(t1) / 60) Mytimediff = tdif End Function أدرجها فى موديول جديد و استدعها كما تتستدعي الدوال و لكن من مجموعة user defined functions مرفق المثال تم تعديل المثال باضافة الطريقة المباشرة فى مشاركة أبو هادي Timediffhours.zip
  20. DoCmd.SetWarnings False If Me.TRANSF = -1 Then MsgBox " Data already TRansfered", vbCritical, "Warning Messsage" Exit Sub End If Me.Refresh ثم الترحيل ثم DoCmd.SetWarnings True Me.TRANSF = -1 MsgBox "Transfer Done", vbInformation, "Information Message" و الترحيل يكون لسجلات تفاصيل البنود المفتوحة فى النموذج حاليا فقط لتوفير الوقت و يمكن ايضا عند فتح أو اغلاق الفاتورة التنبيه فى حال عدم ترحيلها
  21. بأن يكون هناك حقل فى جدول الفواتير و هو فى الرسم السابق اسمه transf و هو من نوع نعم/لا و عند الترحيل يتم اختبار قيمته قبل تنفيذ كود الترحيل فانا كان true نعطي رسالة و لا نقوم بالترحيل و اذا كان false نقوم بالترحيل ثم نغير قيمته الي true فى جدول الفواتير فتصبح هذه الفاتورة معلمة بانها قد تم ترحيلها و قد نجعل لهذا الحقل قابلية التعديل ، بحيث نتمكن من تحديث السجلات فى جدول الحركات عن طريق كود مثيل لاستعلام التحديث و لكن الحل الاكثر احترافا ، هو أن أي تعديل لفاتورة تم ترحيلها يكون بإذن جديد سواء كان ارتجاع او اضافة لتقليل امكانية التلاعب ( أي لا نسمح بتغيير قيمة الحقل transf من النموذج فيكون أي ترحيل نهائي فور تنفيذه ، و لتعديله يلزم اذن تصحيح وفي انتظار رأيك و رأي أشرف أيضا و آراء باقي الأخوة بخصوص انسب التصميمات لهذا الموضوع :d
  22. علي حسب ما أعرف عنها فالفائدة الاساسية هي أن نسخة الsetup يكون معها access run time و بذلك لا تحتاج لوجود الاوفيس علي الجهاز الذي سيتم التنصيب عليه و في النهاية الذي سيعمل هو ملف ال mdb , mde الذي اعددته سالفا اما ان كان هناك امكانيات اضافية فى نسخة الاكس بي فهذا ما لا اعرفه بعد ، و ساحاول الحصول عليها قريبا باذن الله و لكن هذه وصلة لمقال فيه شرح عنها http://www.arabteam2000.com/vb/showthread....&threadid=14714 و من البرامج لاتي تقوم بعمل نسخة تحميل install-us install-sheild setup Factory inno-setup InstallShield Wise-installer Inno Setup Installer VISE Nullsoft Install Inno Setup Site http://www.jrsoftware.org
  23. شكرا لك أخي العزيز و أرجو أن أكون عند حسن ظن الجميع :SHY: و أرجو أن نكمل النقاش الأصلي بخصوص فوائد و عيوب الطرق المقترحة لكي نحصل علي أقصي استفادة من المناقشة :d
  24. لتحويل أي شريحة من الشرائح الي صفحة ويب File save as web page اما عن التنقل بين صفحات الويب و رفعها فطبعا من الافضل مناقشة هذا فى منتدي متخصص فى الويب لتعم الفائدة و لكن مبدأيا كحل بسيط يمكنك فتح الصفحات بعد حفظها بالفرنت بيج و ادراج ارتباط تشعبي للتنقل بين الصفحات insert hyperlink
×
×
  • اضف...

Important Information