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

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

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

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

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

  • Days Won

    36

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

  1. السلام عليكم مؤقتا أحد الحلول ،و ان كان لا يبدو جيدا :SHY: هو الاعلان عن متغير عام من نوع نعم لا و فى بداية الروتين الفرعي نكتب اذا كان امتغير = نعم اذهب الي ما بعد فتح الفورم و فى حدث فتح النموذج نجعل قيمة المتغير = نعم و عند غلقه نستدعي الروتين الاصلي مع الاعلان عن Myvar كمتغير عام Sub test() If Myvar= True then go to xxx ' DoCmd.OpenForm "Form1" xxx: Myvar = False MsgBox "Hello" ' ' ' End Sub Private Sub Form1_close(Cancel As Integer) Myvar = True ' ' ' Call test End Sub مع تحياتي
  2. 3-1 مقدمة الي الاستعلامات 11-8-2003 3-2 إستعلامات الاختيار - 1 12-8-2003 3-3 استعلامات الاختيار - 2 + الاستعلام المحوري 19-8-2003 3-4 تقسيم لانواع الاستعلامات 25-8-2003 3-5 الاستعلام ذو المتغيرات 29-8-2003 3-6 إستعلام الحذف 5-9-2003 3-7 إستعلام التحديث 10-9-2003 3-8 استعلام الإلحاق14-9-03 3-8 استعلام إنشاء جدول ---17-9-2003 3-11 إستعلام التوحيد 24-9-2003 3-12 باقي استعلامات الاس كيو ال 20-10-2003 ---------------------------------------- وصلة دروس تصميم الجداول http://www.officena.net/ib/index.php?showtopic=2218
  3. أنواع البيانات فى الأكسس و كيفية الاختيار بينها عند تصميم الجداول ، علينا الاختيار من انواع البيانات ، بما يتناسب مع كل حقل و قد يصلح أكثر من نوع للحقل الواحد ، و عليه يكون الاختيار لما يستهلك مساحة أقل من الذاكرة أي نختار علي قدر ما نحتاج فقط و لمراجعة الانواع المتاحة بالتفصيل اضغط هنا و الأنواع بصفة عامة هي : Text : للتعامل مع القسم النصية عدد الحروف الأقصي هو 255 Memo : للقيم النصية الطويلة ، أو الرقمية عدد الحروف الأقصي هو 65,536 حرف Number : للقيم الرقمية و يقبل تخزين سعات مختلفة بحسب النوع المحدد و الانواع بصفة عامة هي Byte Integer Long Integer Single Double Replication ID decimal و تفاصيل بياناتها موضحة فى الرابط أعلاه Date/Time لتخزين التواريخ و الأوقات Currency لتخزيت العملات AutoNumber لتخزين رقم فريد ، يزداد بصورة منتظمة أو عشوائيا ، و لكنه فى النهاية فريد فى الجدول و يضاف تلقائيا مع فتح كل سجل Yes/No : للبيانات التي هي تمثل أحد خيارين لا ثالث لهما Yes/No, True/False, On/Off لا يقبل عدم وجود قيمة OLE Object لادراج كائنات تم انشائها ببرامج أخري : صور ، إكسيل ، ... Hyperlink وصلة خارجية الي مكان آخر قد تكون ملف أو مسار علي الانترنت Lookup Wizard لانشاء حقل يعتمد علي اختيار قيمة مناظرة من جدول آخر ، باختيار هذا الخيار ، يتم فتح معالج لا ختيار الحقل و القيمة المعادة و مرة أخري :d للتعرف علي أنواع البيانات بالتفصيل إضغط هنا مثال : لتخزين الاسم للموظف هل نختار Text memo طبعا سنختار Text مع ان النوع الاخر يصلح ، و لكن ستكون زيادة استهلاك للذاكرة بدون داعي ، و يعتبر خطأ تصميمي ، و لكن لن يمنع البرنامج من العمل
  4. و الآن سنبدأ بانشاء جدول بالطريقة الأولي: بالنقر المزدوج علي الخيار الأول : إنشاء الجداول عن طريق عرض التصميم و اختيار كل الخصائص ، بدون مساعدة الاكسس و نبدأ فى ملئ بيانات الحقول التي نريد و اختيار أنواعها و هنا سنختار حقول بسيطة ، الي أن ندرس أنواع البيانات فى الدرس القادم و من المستحسن وضع وصف لكل حقل فى خانة ال Description و لن يسبب كتابة الوصف بالعربية أية مشكلة ، علي عكس أسمء الحقول و الكائنات التي تسبب العربية فيها مشاكل فى الاكواد و بعد ذلك نحفظ الجدول باسم Table1 و بعد ذلك يسأل الاكسس كما سبق عن تحديد المفتاح و نتركه يحدده فيضيف الاكسس تلقائيا حقل من نوع ترقيم تلقائي autonumber و هكذا نكون قد استخدمنا الثلاث طرق المتاحة لانشاء الجداول
  5. و الآن سنبدأ بانشاء جدول بالطريقة الثانية : و نبدأ بالنقر المذدوج علي خيار انشاء الجدول عن طريق المعالج ، فتظهر الشاشة التالية : و منها نحدد طربيعة البيانات الموجودة فى الجدول ، هل هي بيانات عمل أم بيانات شخصية ، و يلي ذلك انتقاء الحقول المطلوبة، و هنا تم انتقاء الاسم و الاسم الاخير و المدينة و بالطبع يمكن تعديل الحقول و بياناتها لاحقا ، و أيضا اعادة تسمية الحقل المنتقي عن طريق زر Rename ثم ننقر علي زر "التالي" نصل الي الشاشة التالية : و فيها مطلوب : أولا : تحديد اسم الجدول ثانيا : تحديد هل سنحدد حقل مفتاح ؟ أم نترك الاكسس يضيف حقل و هذه المرة سنختار أن نحدد الحقل بأنفسنا و بعد ذلك تظهر الشاشة التالية و فيها ثلاث خيارات عن نوع البيانات في حقل المفتاح أرقام متتالية يحددها الاكسس آليا AutoNumber أرقام أدخلها بنفسي عند إضافة سجل أرقام أو أحرف أدخلها بنفسي عند إضافة سجل جديد و هذه الانواع علي التوالي هي AutoNumber,Number,Text و سنختار الأول و الخطو التالية هي أن يسأل عن العلاقات بين هذا الجدول و الجداول الأخري ، و سنترك هذا الخيار كما هو الي أن نأتي الي دراسة العلاقات و لكن للتعرف علي خطوات المعالج لو ضغطنا عالي زر العلاقات Relationships ستظهر الشاشة التالية : لتبين نوع العلاقة بين الجدول و الجدول الآخر و لكن لن نتعرض لها الآن ، و لكن لاحقا و بعد ذلك نحفظ الجدول كماسبق و نحدد الاسم و لنعرف سريعا ما حدث باختيار العلاقات : من قائمة Tools نختار Relationships فيظهر شكل العلاقة التي نتجت من استخدام المعالج و لكن سنعرض الي العلاقات و أنواعها و ما يناسب كل حالة فى دروس قادمة
  6. لنفتح الآن برنامج الأكسس 2002 سنجد علي يمين الشاشة اطار به الصورة الموضحة فنختار منه خيار انشاء قاعدة بيانات جديدة Blank Database و يلي ذلك ظهور شاشة تحديد مكان و إسم ملف قاعدة البيانات : و بعد ذلك نجد أن مربع حوار قاعدة البيانات كما فى الشكل التالي مقسم الي الجداول الاستعلامات نماذج تقارير صفحات ماكرو موديول هذا من ناحية اليسار ، أما من الأعلي فينقسم الي طرق التعامل مع كل منها ، أي أننا نتعامل مع كل من هذه الكائنات إما : فى وضع الإظهار ( العرض) عن طريق زر open او النقر المذدوج علي اسم الجدول أو وضع التصميم - و الذي يتم فيه تحديد مكونات و خصائص ما سيظهر فى وضع العرض- و يلي ذلك الزر الخاص بإنشاء كائن جديد ، ثم طرق الاظهار المتعارف عليها فى الويندوز للملفات ( ايقون - تفاصيل -...) و كل ما هو فى الأعلي يناظر كل جزء من الأجزاء السبعة و نلاحظ أن محتويات إطار قاعدة البيانات فى الشاشة السابقة تشير الي ثلاث طرق لإنشاء الجداول و هي إنشاء الجداول من وضع التصميم إنشاء الجداول باستخدام المعالج إنشاء الجداول عن طريق إدخال البيانات و الطريقة الأولي هي الأكثر إستخداما ، و الاثنان الأخريان مناسبتان أكثر للمبتدئين للتجربة أو عند انشاء جدول مؤقت لتجربة شيء. و سنعرض للثلاث طرق بترتيب تنازلي بدءاً من الطريقة الأخيرة و الآن نبدأ فى انشاء جدول باستخدام الطريقة الثالثة: بالنقر المذدوج علي الخيار الثالث : إنشاء الجداول عن طريق إدخال البيانات ، نجد الشاشة التالية و فيها افتراض من الاكسس أن الحقول مسماة Field1,2,3 علي التوالي و ان الاسم الافتراضي للجدول هو Table1 نبدأ بعد ذلك فى إدخال البيانات كما هو موضح ، علي سبيل المثال الاسم و الطول و تاريخ الميلاد ، لأي عدد من السجلات و سنكتفي الآن بسجل و احد ثم نختار حفظ الجدول من ايقونة الحفظ ، فيظهر مربع الحوار التالي و فيه نغير الاسم بدلا من الاسم الافتراضي الي Table1-Byentry فيظهر تنبيه من الاكسس ، يفيد بعدم وجود حقل مفتاح ، و يستأذن هل يضيف حقل مفتاح أم لا و هنا سنختار نعم و اذا دخلنا علي وضع عرض الجدول ، سنجد أنه تمت اضافة حقل جديد باسم ID و أنه مكتوب تحته AutoNumber فماذا حدث و ماذا يعني حقل المفتاح و ما هو ال AutoNumber ؟؟ أولا لنستعرض و ضع التصميم للجدول باختيار الجدول و الضغط علي زر design ، او باختيار design من القائمة المختصرة للماوس ، لنجد الآتي : هناك رسم مفتاح بجانب حقل المعرف الحقل الأول تم تحديد نوعه بانه Text و الثاني Number و الثالث Date/Time و لنتعرف علي خصائص الحقل التي أعطاها الاكسس تلقائيا لحقل المفتاح نجد أنها كما هو مبين و سنعرض للخصائص بالتفصيل لاحقا و لكن نلاحظ مبدأيا أن الحقل من نوع AutoNumber و انه حقل مفهرس indexed و لا يسمح فيه بالتكرار No Duplicates و جدير بالذكر أن تحديد أو الغاء تحديد خاصية المفتاح من ايقونة المفتاح التي تظهر فى الأعلي فى وضع تصميم الجداول اتجاه الجدول يمكن أن يظهر اتجاه الجدول من اليمين الي الشمال والعكس و ذلك بالضغط علي ايقونة خصائص الجدول المبينة فى الشاشة السابقة فيظهر مربع حوار الخصائص المبين هنا : و منه يمكن تغيير اتجاه الجدول من آخر خاصية و هي الاتجاه Orientation و سنعرض لباقي الخصائص لاحقا و هكذا نتهينا من تصميم الجدول بالطريقة الثالثة و سيليها لطريقة االثانية ثم الاولي
  7. بعد المقدمة ، ننتقل الي التعامل مع الأكسس نفسه :d و ستنقسم هذه المرحلة الي ثلاث حلقات بإذن الله : الاولي : التعامل مع اطار قاعدة البيانات ، و انشاء الجداول و أنواع البيانات المتاحة الثانية : الفهارس و حقل المفتاح و التعامل مع البيانات فى الجداول ، و خصائص الحقول الثالثة : العلاقات بين الجداول و تطبيق علي ما سبق و الاختبار الأول فى هذه الدورة و سيتم طرح كل مجموعة علي حدة ، مع وجود موضوع واحد للحوار حول تصميم الجداول و موضوع الحوار سيتم فتحه اعتبارا من 10 - 7 مساء
  8. و اللوجو الموجود فى الصفحة الرئيسية ( خاص بالموقع و ليس المنتدي ) من تصميم الأستاذ محمود سليمان ( تحت التصميم ) و منشور للتحربة
  9. تم وضع لوجو جديد للمنتدي من تصميم الأخ رضا عقيل مع الشكر له
  10. هذا الموضوع منقول و أعتقد أن كاتبه اسمه أبو محمد الهذلي: طريقة كتابة الشعر في الورد الطريقة الأولى : ادرج جدول من ثلاثة حقول ، اكتب الصدر في الحقل الأول والعجز في الثالث ، ثم SHIFT + ENTER لكتابة بيت جديد ، بعد ذلك حدد الكل ثم ضبط كلي من تنسيق ، ثم غير عرض الأعمدة لتتناسب مع بعضها. الطريقة الثانية : 1- ادرج جدول من ثلاثة حقول ، اكتب الصدر في الحقل الأول والعجز في الثالث ثم حدد الصف كاملا وانقر عليه بالزر الأيمن للماوس ثم اختر خصائص الجدول . 2- اختر لسان التبويب " خلية " من نافذة " خصائص الجدول " ثم انقر على الزر " خيارات " . 3- ضع اشارة صح على مربع الاختيار " احتواء النص " في صندوق حوار خصائص الخلية . 4- اضغط موافق مرتين وتمتع بكتابة القصيدة داخل الجدول بدون عناء التنسيق لكل بيت من القصيدة . الطريقة الثالثة : إضافة إلى الطريقة الثانية باستخدام الماكرو " برمجة حلوة وسهلة " : 1- من قائمة " أدوات " Tools اختر " ماكرو Macro " . 2- اختر تسجيل ماكرو جديد باسم Adjustmenet ثم سجل التسجيل Create. 3- اختر ماكرو مرة أخرى من قائمة أدوات ثم اختر" وحدات ماكرو" وحدد اسم الماكرو Adjustmenet ثم اختر " تحرير " . 4- يفتح عندك الفيجيوال بيسك Visual Basic ، ألصق نص الماكرو التالي في الـ Sub : ثم أغلق مايكروسوفت فيجيوال بيسك Visual Basic . 5- اتبع المسار : أدوات / تخصيص / اختر لسان التبويب " الأوامر " / اختر من الفئات " وحدات الماكرو " . 6- اسحب الماكرو Normal.NewMacro.Adjustment إلى اشرطة الأدوات . 7- لتنسيق الشعر بهذه الطريقة افتح ملف الشعر المراد ضبطه ثم ضع مؤشر الماوس في أي مكان داخل العمود المطلوب تنسيقه ثم اضغط على المفتاح المسمى Normal.NewMacro.Adjustment فتلاحظ بدء تنسيق الجدول آليا . يضبط الماكرو أبعاد الجدول بما يتناسب مع حجم الخط ، ويجب تعديل الرقم 24 إلى 1000 مثلا إذا كان الشعر المراد تنسيقه يحتوي على ألف بيت شعر . code:-------------------------------------------------------------------------------- Selection.SelectColumn Selection.ParagraphFormat.Alignment = wdAlignParagraphJustjfy Selection.Cells.SetHeight RowHeight:=8+ Selection.Font.SizeBi, HeightRule:=wdRowHeightExactlyWith Selection.Rows .TableDirection = wdTableDirectionRtl .Alignment = wdAlignRowRight .AllowBreakAcrossPages = True .SetLeftIndent LeftIndent:=CentimetersToPoints(0), RulerStyle:=wdAdjustN one End With Selection.Rows.SpaceBetweenColumns = CentimetersToPoints(0.38) Selection.MoveLeft Unit:=wdCharacter, Count:=l For I = 1 To 24 Selection.EndKey Unit:=wdLine Selection.TypeText Text:=Chr(ll) Selection.MoveDown Unit:=wdLine, Count:=l Next I End Sub -------------------------------------------------------------------------------- فجرب ما فيه ، ربما يفيد
  11. اختار الصورة انقر بالزر الايمن للماوس Format Picture Layout SQUARE و يمكن من نفس المكان التحكم فى المحاذاة من الجزء الاسفل من الشاشة
  12. مثال الدرس الرابع تقديرات الطلاب تم تعديل الملف ليحوي تعليق مختلف للقيم الاكبرمن 100% و الاقل من صفر مرفق رقم 2 Grades.zip Grades2.rar
  13. هذه مجموعة دروس بسيطة نقلتها من موقعي القديم الدرس الأول الدرس الثاني الدرس الثالث الدرس الرابع و ساعيد ارفاق الأمثلة الثلاثة هنا مثال الدرس الثاني " Less02Excel.zip
  14. السؤال : كيف يمكن عمل استعلام تكوين جدول Make Table Query بحيث يسأل عن اسم الجدول المطلوب تكوينه و اسم الملف الذي سيتم تكوين الجدول به أثناء التشغيل الإجابة : Private Sub Command16_Click() Dim x As String, y As String, z As String x = Trim(InputBox("Enter the Table name", "Table name", "Table1")) y = Trim(InputBox("Enter the Dbase Path", "Path", "c:\db2.mdb")) If Trim(Right(y, 4)) <> ".mdb" Then y = y & ".mdb" End If z = "SELECT Table1.m, Table1.mm INTO " & x & " IN '" & y & "' FROM Table1;" MsgBox z DoCmd.RunSQL z End Sub make_table_selective.zip
  15. هل يمكن التعامل فى دوال النص من اليمين للشمال ( أو عكس النص لكي يتم التعامل معه بدوال النصوص من اتجاه اليمين) ?? الاجابة : يمكنك عكس الكلام الموجود فى b2 عن طريق استدعاء الدالة كالتالي =refverseText(B2) Function refverseText(mycell) Dim mcount As Long, mtxt As String mcount = Len(mycell.Value) mtxt = mycell.Value Dim m As String For i = mcount To 1 Step -1 m = m & Mid(mtxt, i, 1) Next i refverseText = m End Function و يوجد حل آخر للتحايل و الحصول علي نفس النتيجة بدون الكود و بدون عكس النص أي التعامل مع النص مباشرة توجد طريقة للتحايل فمثلا فى الدالة MID باستخدام الدالة Len و التي تعيد طول الكلمة عندما تريد البحث بدءا من 2 و لمسافة 3 من اليمين و كان طول الكلمة 10 فهذا يعني بدأً من 10-2-1=7 و لمسافة 2 فيمكن البحث بدأ من اليسار بدأ من 7 و لمسافة 2 من اليسار =MID(E5;5;3) و من اليمين =MID(E5;+LEN(E5)-6;3) reversetext.zip
  16. ضع المود التالي فى مساحة الكود الخاص بالمسنتند اذا اردنا تشغيل الكود تلقائيا عند الفتح Private Sub Document_Open() ShowDocStats End Sub ثم اضف الكود التالي فى موديول جديد ضمن المستند Sub ShowDocStats() With ActiveDocument.ActiveWindow .Caption = .Document.Name & " / " & _ .Document.BuiltInDocumentProperties(wdPropertyWords) & " Words, " & _ .Document.BuiltInDocumentProperties(wdPropertyCharacters) & " Characters, " & _ .Document.BuiltInDocumentProperties(wdPropertyParas) & " Paragraphs" End With End Sub و الجزء الثاني يمكن ايضا استدعاؤه فى اي وقت من خلال ALT+F8 و اختيار اسم الكود و تشغيله ، و طبعا يمكن الاكتفاء لمن يرغب بالسطر الاولي فقط الذي يظهر عدد الكلمات فقط دون عدد الحروف و الفقرات Sub ShowDocStats() With ActiveDocument.ActiveWindow .Caption = .Document.Name & " / " & _ .Document.BuiltInDocumentProperties(wdPropertyWords) & " Words, " End With End Sub و هذا هو الملف الذي به تطبيق لما سبق مع اضافة بسيطة هي جعله يقوم بالاحصاء كلما فتحنا الملف ، و ليس كل ملفات الوورد لكي نستخدمه فقط فى الملف المطلوب و صورة توضيحية لمكان ظهور الاحصائيات : docstat_cmdclose.zip
  17. من قائمة تنسيق Format اختار Bullets and numbering ثم من آخر tab المسمي List Styles اختار القائمة الحالية و ثم اضغط زر modify و بعد ذلك اختار التنسيق الذي تريد ثم اختار مربع الخيار فى اسفل مربع الحوار المسمي add to template فيمكن بذلك اختياره لا حقا
  18. السؤال : احاول اضافة بعض الكود و لكن تظهر لي هذه الرسالة فما المقصود بها ؟؟ the macros in this project are disabled. بالنسبة للماكروهات فى كل من الاكسل و الوورد ، هناك ثلاث خيارات لتأمين الملفات منعا لمشاكل التي قد تنشأ من ماكروهات قد تكون مضرة . و تقوم بتغيير مستوي الحماية بناء علي معرفتك بوجود ماكرو فى الملف من عدمه و للتحكم فى مستوي الحماية : TOOLS MACRO SECURITY MEDIUM و سيسأك عن التفعيل عند فتح الملف lOW و سيسمح بالتفعيل بدون سؤال و لكن هذا خطر من ناحية الملفات غير معلومة المصدر High و لا يسمح بالتفعيل و فى هذه الحالة لا تعمل الماكروهات أو الأكواد
  19. لاضافة قائمة أو قائمة فرعية انقر علي شريط الادوات و اختار تخصيص customize و فى الصفحة الثانية أوامر Command اختار قائمة جديدة و اسحبها كقائمة أساسية أو فرعية داخل قائمة أخري ثم انقر عليها بالزر الايمن و غير خصائصها و ان اردت اسحب اليها الماكرو الذي تريد من خيار macros
  20. لو كنت تريد تغيير تنسيق كلمة معينه فالحل هو انكت تذهب لمربع بحث واستبدال وتقوم في مربع البحث وتضع الكلمة التي تريد وفي مربع استبدل بـ ضع الموشر هناك واضغط على زر تنسيق ونسق بالشكل الذي تريد -------------------------------------------------------------------------------- Edit --> Replace -->More--> Format -------------------------------------------------------------------------------- و لمن لم يري مكان تغيير الفورمات من مربع حوار الاستبدال فليضغط علي زر more الموجود أسفل مربع الحوار و الحل بالكود ( كمثال لمن أراد استخدام أكثر تعقيدا ) : Rem لتغيير الفونت لكلمة معينة Sub replaceformat() searchword = InputBox("Enter the word to replace Format", "replace format of a word", "M") Application.ScreenUpdating = True nextword: Selection.WholeStory Mcount = Selection.Words.Count ' MsgBox mcount For I = 1 To Mcount With Selection.Words(I) Application.StatusBar = "Searching / Formating ...." & _ Mcount & " Please Wait......." If Searchit(.Text) = True Then .Font.Name = "Courier" .Font.Size = 14 .Font.Bold = False .Font.Italic = False End If End With Next I End Sub Function Searchit(Myword) Searchit = False If Trim(UCase(Myword)) = Trim(UCase(searchword)) Then Searchit = True End If End Function ثم اضاف حارث مشكورا الماكرو التالي كحل مباشر ( أفضل ) : Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "هـ" .Replacement.Text = "هـ" .Replacement.Font.Name = "Arial" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll
  21. أخي رضا أشكرك علي الشعار الجميل و البرنامج طبعا ، و لكن استوقفني الشعار قبل ان ادخل الي البرنامج
  22. كود جميل أخي أمير :yess: تم تعديل موضوع الأرشيف باضافة الكود الجديد و وضع مثال شامل للثلاث حالات خلية عمود مجموعة خلايا الموضوع من هنا
×
×
  • اضف...

Important Information