-
Posts
631 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محب العلم
-
النقاء ، يجب أن يتم تتبع هذه الإجراءات حيثما تطلب بحيث يسجل لكل عملية تتم سواءً اضافة أو حذف أو تعديل بجدول خاص يمكن أن يكون كما يأتي اسم المستخدم ، التاريخ ، الوقت ، الجدول ، العملية ، تقاصيل وفي حقل التفاصيل يمكن اضافة تفاصيل أكثر عن كل عملية حسب الحاجة بالطبع لتنفيذ هذه الطريقة يجب أن يكون البرنامج مجهزا بشاشة دخول للمستخدمين لمعرفة من هو المستخدم الذي قام بالتغيير رغم أن الموضوع كبير وقد يبدو صعباً إلا انه يمكن تطبيق ذلك إذا كانت الحاجة موجودة له. تحياتي
-
إخفاء مربع طرح سؤال من شريط القوائم ؟؟؟ كيف
محب العلم replied to الجديد2007's topic in قسم الأكسيس Access
-
ما زلنا في المثال الخامس مرحلة التطبيق والتجربة ما زال الحديث دائراً حول إخفاء السهم الذي يظهر في مربع التحرير والسرد وقد عرفنا لماذا قد نحتاج إلى ذلك. في الأمثلة الآتية سأعالج الأمر بطريقين : 1. طريقة خداع اللون التي قدمها لنا المشرف يوسف المحترم وهي طريقة رائعة سهلة التطبيق وناجحة 100% 2. طريقة إسناد قيمة مربع التحرير والسرد إلى مربع نص يوضع فوقه وبإستمرار الدراسة والبحث في هذا الموضوع الشيق استطعت تصميم طريقة أخرى لاعلاقة لها بالألوان. بحيث يعمل مربع نص ويجعل مصدره مربع التحرير والسرد ويوضع فوقه تماما ونغير خاصية (visible) لمربع التحرير والسرد إلى(لا) في وضع التصميم ليتم اخفاءه عندما يفتح النموذج، وبواسطة حدث الدخول لهذا المربع وحدث الخروج من مربع التحرير والسرد يمكن تنفيذ المطلوب كما يآتي Private Sub Text_Enter() Me.Combo.Visible = True Me.Combo.SetFocus Me.Text.Visible = False End Sub Private Sub combo_Exit(Cancel As Integer) Me.Text.Visible = True End Sub المثال : CombBoxNoArrow.rar تحياتي
-
الأخوة حامل المسك وعمار وشمشوم شكرا لكم الأخ عمار سأعمل بنصيحتك لكل عشر أمثلة معا، وأرجو منك فضلا تغيير اسم الموضوع إلى (سلسلة الأمثلة المشروحة) المثال الخامس الفروقات بين مربع القائمة List Box ومربع التحرير والسرد Combo Box المقدمة تساءل أحد الأعضاء في إحدى المشاركات (هــنــا) إن كان بالإمكان اخفاء سهم مربع التحرير والسرد ليظهر كأنه مربع القائمة. ويتضح ضمنا من سؤاله أنه يود أن يستخدم احد الخصائص التي تتوفر في مربع التحرير والسرد وبنفس الوقت يستفيد من شكل مربع القائمة. إن هذا السؤال في محله بلا شك، رغم أن الكثيرين ممن لا يدققون في الأمور كثيرا قد يظنوا أن مربع القائمة لا يختلف عن مربع التحرير والسرد سوى في الشكل. في هذا المثال سيتم إلقاء الضوء على الفروقات بين List Box و Combo Box. التفاصيل لو دققنا في التسمية فقط نستطيع معرفة الفرق الأساس وهو أنه في مربع التحرير والسرد يسمح بالكتابة وصولا للمطلوب من القائمة بينما في مربع القائمة يتم انتقاء المطلوب بواسطة الماوس، ومما لا شك فيه أن هذا الفرق الأساس والجوهري سيقودنا إلى مجموعة تغيرات (فروقات) في الخصائص الخاصة بكل منهما، فما هي هذا الخصائص المختلفة ؟. يوجد سبعة عشر فرقا بين مربع القائمة ومربع التحرير والسرد يمكن ملاحظتها بالتدقيق بالخصائص لكل منها كما يأتي : 1. في لسان التبويب other الخصائص الأخرى أو الإضافية نلاحظ هنا أنه يمكن في مربع القائمة أن نحدد أكثر من اختيار بينما في مربع التحرير والسرد غير ممكن وهذه هي الخاصية الوحيدة الموجودة في مريع القائمة وليست موجودة في مربع التحرير والسرد. بمعنى أخر، فإن باقي الخصائص الستة عشر موجودة في مربع التحرير والسرد وغير موجودة في مربع القائمة. 2. في لسان التبويب Event الأحداث لاحظ أربعة أحداث غير موجودة في مربع القائمة 3. في لسان التبويب data البيانات لاحظ ثلاث خصائص غير موجودة في مربع القائمة 4. في لسان التبويب format التنسيق لاحظ ثمان تنسيقات غير موجودة في مربع القائمة وهنا نأتي إلى تفسير مشاركة العضو بطلبه استخدام شكل مربع القائمة في مربع التحرير والسرد: مما لا شك فيه أنه يود الناحية الجمالية من مربع القائمة ويود استخدام أحد أو أكثر من الخصائص الستة عشر التي تم توضيحها اعلاه والخاصة بمربع التحرير والسرد. تحياتي
-
اخي حامل المسك ، أشكرك على توضوح المسألة التعديل : 153v2.rar تحياتي
-
أبا أحمد، ما زالت المتابعة جارية وهذا كود أخر باستخدام Scripting.FileSystemObject لنقل الملفات دون المجلدات من مجلد إلى أخر اعتقد أننا اقتربنا مما نصبو إليه فصبرا ... Private Sub copyfiles_Click() Dim objFS As Object, objFolder As Object Dim objFiles As Object, objF1 As Object Dim strFill As String, strFolderPath As String Dim strFolderPath, strFolderTO As String strFolderPath = "C:\from\" sttFolderTo = "c:\to\" Set objFS = CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(strFolderPath) Set objFiles = objFolder.Files For Each objF1 In objFiles objFS.CopyFile strFolderPath & objF1.Name, strFolderTO Next Set objF1 = Nothing Set objFiles = Nothing Set objFolder = Nothing Set objFS = Nothing End Sub تحياتي
-
حامل المسك ، لقد اضطررت للتغيير قليلا في واجهة التطبيق وتعريف الجداول وإضافة بعض الأكود البسيطة لضبط الأمور ، أملا أن تكون هذه التغيرات نحو الأفضل حاليا ومستقبلا واصبحت واجهة التطبيق هكذا : وإليك الملاحظات المهمة الآتية : 1. بالنسبة لزري + و ناقص تحت كلمة الصور فإن + تدخل رقم صورة جديدة إلى القائمة و - تحذف الصورة المعلمة. 2. عندما نتنقل بين السجلات (الطلاب) فإن مربع القائمة يتغير تلقائيا. 3. تم ضبط زر الكاميرا بحيث لو لم يكن المجلد الموضوع للطالب موجودا فإنه ستم التوجه إلى أخر مجلد كان مستعملا من النظام. 4. تم ضبط زر العرض والأخفاء ليعمل بصورة صحيحة كما كان سابقا. 5. تم ضبط التنقل بين الصور في مربع القائمة لعرض الصورة التي يتم اختيارها (تعليمها) لتجربة التطبيق بشكل صحيح يرجى عمل مجلدين \c:\1 و \C:\2 وتضع في المجلد الأول صورة 1 وصورة 2 وفي الثاتي صورة 5 و صورة 6 مثلا وطبعا نوع الصور هو jpg وثم تجرب كل ما تم الأشارة إليه سابقا التعديل : تحياتي
-
أخي حامل المسك، علم والمتابعة جارية ، والنتائج قريبا إن شاء الله تحياتي لك
-
الشقاوي ، استخدم DoCmd.TransferDatabase مثال كود DoCmd.TransferDatabase transfertype:=acExport, databasetype:="Microsoft Access", _ databasename:="mydb.mdb", objecttype:=acTable, Source:="table1", destination:="c:\db2.mdb", structureonly:=False تحياتي
-
لماذا تتم معاينة صفحة واحده فقط في التقرير ؟!
محب العلم replied to قمراي 2007's topic in قسم الأكسيس Access
حامل المسك ، طريقتك في معالجة المسألة جيدة ولكن اختيارك (الموضوع) ليكون مفتاح التمييز غير موفق ! ماذا لو كان نفس الموضوع سيعطى لأكثر من صف ؟! في هذه الحالة سيظهر لنا في العاينة سجل الصف الذي ترتيبه أولا في الجدول في كل مرة نطلب بها المعاينة . ما هو الحل ؟ تماما كما تفضل أخي حامل المسك مشكورا ، ولكن مع اختيار مفتاح لا يتكرر وهو في هذه الحالة (التاريخ والحصة والصف والمادة) معا. بمعنى أخر يتم تحديد هذه الحقول في الاستعلام لتساوي تلك التي في النموذج وطبعا هذه الطريقة هي إحدى طرق الحل. تحياتي -
حسن ، وهذا الملف في word فيه شرح بالانجليزية تم ترجمته فوريا بواسطة مترجم google المقبول نسبيا. فيه شروحات عن استخدام أوامر الملفات باستخدام VB فد بساعدك في الوصول للحل الملف : File_Functions_in_Visual_Basic.doc تحياتي
-
حسن ، أعرف أنك ما زلت تحتاج إلى نقل المجلدات وما زلت أبحث عن الطريقة المثلى لذلك ولم أتوصل لها بعد . إليك الأجراء الأتي ايضا من الأساليب الممتازة في في نسخ الملفات من دليل إلى أخر دون المجلدات Private Sub Command0_Click() Dim sSourceDir As String Dim sBackDir As String Dim sNextFile As String On Error GoTo FileCopyError 'غير اسماء المصدر والهدف حسب الرغبة sSourceDir = "C:\a\" sBackDir = "c:\b\" sNextFile = Dir$(sSourceDir & "*.*") While sNextFile <> "" FileCopy sSourceDir & sNextFile, sBackDir & sNextFile sNextFile = Dir$ Wend MsgBox "تمت عملية النسخ" Exit Sub FileCopyError: MsgBox "هناك خطأ في عملية النسخ" End End Sub اذا أردت النقل بدل النسخ فكما فعلنا في المثال الأول في مشاركتي قبل السابقة تستخدم الأمر Kill تحياتي
-
الأخوة أبا أكرم (أكرمك الله) و أبا أدم (أدامك الله) وجمال شكرا لكم جميعا على الدعم والتشجيع، وشكرا لمشرفينا على الترقية المثال الرابع طريقة مثلى لإحضار المجموع الفرعي SubTotal من النموذج الفرعي إلى النموذج الرئيسي دون مشاكل المقدمة كثيرا ما نصمم نموذج رئيسي ونموذج فرعي ويكون في النموذج الرئيس المعلومات الرئيسة وفي الفرعي التفاصيل (الحركات)، وغالبا ما نحتاج إلى احضار المجموع الفرعي من النموذج الفرعي إلى النموذج الرئيسي وقد نعالج هذه المسألة بطرق محتلفة ومتعددة وصعبة أحيانا وقد تقودنا إلى مشكلة معظمنا شاهدها وهي ? name# ، في هذا المثال سنتعلم طريقة مثلى لتحقيق المطلوب دون مشاكل. التفاصيل إذاحاولت جمع حقل في نموذج فرعي باستخدام عنصر تحكم محسوب على نموذج رئيسي قد تتلقى رسالة خطأ في عنصر تحكم النموذج الرئيسي. التعبير الآتي في عنصر تحكم نموذج رئيسي على سبيل المثال، ينشئ رسالة إعلام بالخطأ "? Name# " الرسالة غير المرغوب بها: =Sum([MySubForm].Form![ExtendedPrice]) حيث MySubForm هو اسم النموذج الفرعي ويمكن لتجنب الخطأ، جمع حقل النموذج الفرعي باستخدام عنصر تحكم محسوب في تذييل النموذج الفرعي، ويمكنك ثم الرجوع لعنصر التحكم المحسوب من النموذج الرئيسي لعرض القيمة المجموعة. أنظر كيف يتم تعريف قيمة المجموع الفرعي في النموذج الفرعي وأنظر كيف نطلبها من النموذج الرئيسي وأنظر نتيجة هذا العمل الرائع لاحظ أن هذه الطريقة المثلى سهلة ومضمونة النتيجة وبدون استخدام أكواد المثال بعد تعريبه : SubTotal.rar تحياتي
-
حياك الله أخي حامل المسك ، إن جد جديد بهذا البرنامج أو احتجت لأي مساعدة فأرجو إعلامي . محب العلم لحب العلم محب
-
أبأ أكرم (أكرمك الله) ويوسف ومعروف شكرا لكم جميعا المثال الثالث كيفية استخدام عدداً ثابتاً من السطور في صفحات التقرير المصدر : مثال من تصميم المشرف Dream_Works المقدمة في بعض التطبيقات قد نحتاج إلى عدد ثابت من السطور في كل صفحة، ونحن نعرف أن التحكم في عدد السطور في صفحات التقرير في أكسيس يتم تلقائيا حسب حجم الصفحة. في هذا المثال سنتعلم كيف نتحكم في عدد السطور وكيف نغير هذا العدد من تقرير لأخر باستخدام خاصية openargs الخاصة بالتقارير عندما نطلبه من نموذج. التفاصيل 1. للتحكم بعدد السطور يجب تعريف متغيرا يحدد فيه قيمة عدد السطور المطلوبة كالأتي : Dim OnePageRecords As Byte 2. في حدث عند الفتح للتقرير نعرف قيمة هذا المتغير وهي عدد السطور المرغوب بها هكذا Private Sub Report_Open(Cancel As Integer) OnePageRecords = 15 End Sub 3. في حدث عند التنسيق لقسم التفصيل في التقرير نقوم بزيادة هذا المتغير زيادة رتيبة مقدارها 1 هكذا Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) Static Count As Byte Count = Count + 1 If Count = OnePageRecords Then Count = 0 Me.Section(acDetail).ForceNewPage = 1 End If End Sub لاحظ أن Me.Section(acDetail).ForceNewPage = 1 هذا السطر هو الذي سيفرض صفحة جديدة عند وصولنا إلى عدد السطور المطلوب. 4. ومهم جدا لكي تتم العملية بالشكل المطلوب تعريف ما يلي في حدث االصفحة page للتقرير Private Sub Report_Page() Me.Section(acDetail).ForceNewPage = 0 End Sub وهذا سيمنع الإجراء الاعتيادي في أكسيس من فرض صفحة جديدة كما هو معتاد بشكل طبيعي. هذا كل شيء والنتيجة هي ما نتمناه وهو طباعة عدداً ثابتاً من السطور في صفحات التقرير. ملاحظة مهمة: لاحظ التعريف Static Count As Byte لأنه مهم بهذه الطريقة (يعني static ) وإذا عرفناه بطريقة أخرى لن يعمل لأن Static تعرف المتغير غلى مستوى الإجراء وتحتفظ بقيمته طالما الكود شغال . كما تلاحظون فإننا قمنا بتثبيت عدد السطور داخل حدث عند الفتح للتقرير وهذا غير مفضل خصوصاً عندما نطلبه من نموذج،حيث أننا يمكن أن نحتاج أن نغيره في كل مرة نطلبه وهذا يكون من خلال تعيين قيمته بواسطة خاصية openargs وذلك لو طلبنه من النموذج كما يأتي: وإليكم المثال للتجربة : Report.rar تحياتي
-
الكود الذي تعرضه قديم من الملف updatev2 والآن اصبحنا في Updatev4 يعني عدل مرتين وفي أخر مرفق هو كما يلي : Private Sub sds_Click() On Error Resume Next Dim strCaminho As String Dim myDirectory As String For i = 1 To Len(Me.Dierctory) pos = InStr(i + 1, Me.Dierctory, "\") If pos <> 0 Then lastpos = pos End If Next i Me.Dierctory = Left$(Me.Dierctory, lastpos) myDir = Dir(Me.Dierctory, vbNormal) If myDir <> "" Then strCaminho = localizarArq(Me.Dierctory) For i = 1 To Len(strCaminho) pos = InStr(i + 1, strCaminho, "\") If pos <> 0 Then lastpos = pos End If Next i If IsNull(strCaminho) Or strCaminho = "" Then Exit Sub Me.Dierctory = Left$(strCaminho, lastpos) Else MsgBox "Error" End If On Error GoTo 0 End Sub وهذا الكود يسجل اسم المجلد دون اسم الملف تحياتي
-
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
اختيار موفق بإذن الله وسأساعدك بكل سرور حتى النهاية بإذن الله تحياتي -
حامل المسك، تم انجاز المطلوب وذلك بالتحقق من الدليل قبل الدخول وعند الخروج الآن لن تظهر لك الرسالة نهائيا التعديل : updatev4.rar تحياتي
-
فكرة مثيرة ورائعة تحتاج إلى طبخ على نار هادئة تحياتي
-
شكرا لكم على المشاركة والتشجيع والتثبيت ويرجى تصحيح عنوان الموضوع إلى (سلسلة الأمثلة المشروحة) المثال الثاني كيفية فتح مثيلات متعددة من نموذج MultipleInstance المقدمة هذا المثال يوضح كيفية استخدام VBA : Visual Basic for Applications لفتح المثيلات المتعددة لنموذج (نسخ عن النموذج) ويمكنك هذا من الاستفادة من هذه المثيلات باستطلاع عدة سجلات معا في آن واحد وبالتأكيد فإن الفائدة ستكون كبيرة في مجالات عدة. التقاصيل إن فتح مثيلات النموذج يتضمن بناء الجملة Set وذلك بواسطة عبارة تعيين الكلمة الأساسية (جديد) ومرجع للنموذج كما في المثال الآتي : Set x = New Form_Form1 لأنك لا تستتخدم الكلمة الأساسية New لإنشاء مثيل جديد من كائن خفيف (lightweight Object)، فيجب تعيين الخاصية HasModule الخاصة به إلى True يعني للنموذج الذي تنوي استخدام الكلمة الأساسية جديد New له. عندما تقوم بفتح المثيلات المتعددة من نموذج فإن المثيل الأصلي (النموذج الأصلي) هو الكائن (النموذج) الوحيد الذي يتم تخزينه في قاعدة البيانات في النهاية عند اغلاقه. المثيلات الأخرى هي مؤقتة ويتم إزالتها من الذكرة عندما تقوم بإغلاقها. ملاحظة : عند إغلاق المثيل الأصلي (النموذج) سيتم إغلاق كافة المثيلات الأخرى منه كذلك. ولفهم تطبيق هذا المثال وكيفية فتح المثيلات المتعددة من نموذج، يجب ملاحظة الخطوات الآتية : 1. تعيين خاصية HasModule له كائن إلى true كما ذكرنا سابقا كالآتي : 2. حدث الضغط على زر أمر فتح مثيل جيد عن النموذج Private Sub cmdOpen_Click() Set frmNewForm = New Form_frmMultipleInstance frmNewForm.SetFocus intInstanceNum = intInstanceNum + 1 frmNewForm.Caption = "المثيل رقم - " & intInstanceNum End Sub لاحظ هنا أننا أولا نطلب مثيل جديد عن النموذج وما مكننا من ذلك هو التعريف في الخطوة 1 وثم ننقل التركيز إلى النموذج الجديد ونطلق عليه (المثيل رقم - ؟) حيث يستخدم المتغير intInstanceNum لمتابعة ارقام المثيلات التي تفتح. 3. حدث فتح النموذج الأصلي Private Sub Form_Open(Cancel As Integer) DoCmd.MoveSize xPos, yPos xPos = xPos + 300 yPos = yPos + 300 End Sub يتم تعريف المتغير xPos و yPos و intInstanceNum في الوحدة النمطية بشكل Public لتعرف في كل مكان ويتم تحديد موقع ظهور النموذج ومثيلاته بإزاحة بالإتجاه الأفقي من اليسار إلى اليمين والعمودي من الأعلى للأسفل بمقدار 300 نقطة (pixel) لئلا تفتح النماذج فوق بعضها. 4. ما الذي يغلق المثيلات عندما يغلق الأصيل علما أنه لا يوجد في حدث الأغلاق أي كود يتعلق بذلك ؟ Private Sub Form_Close() xPos = 300 yPos = 300 intInstanceNum = 0 End Sub من المعروف أنه في البرمجة الكينوينة عندما ننشأ كائنا (مثيلا أو أبنا) من آخر فإنه عند إنهاء التعامل مع الكائن الأصلي سيتم إنهاء المثيلات كذلك، واعتقد غير جازما أن هذا الأمر يتعلق بخاصية تعدد الأشكال أو ما يسمى في أدبيات أخرى تعدد الأوجه وبالانجليزية polymorphism ولا اعتقد جازما أن هذه من خصائص التوارث inheritance . إليكم المثال بعد تعريبه : MultipleInstance.rar تحياتي
-
حامل المسك ، تم تحقيق المطلوب بإذن الله التعديل تحياتي
-
-
عملية جمع معقدة نحتاج إلى خبير استعلامات
محب العلم replied to حامل المسك's topic in قسم الأكسيس Access
حامل المسك، ولك مثل دعائك ، لم تخبرني أي طريقة من الثلاث استخدمت ؟؟ تحياتي -
تمام ، سأتابع إن شاء الله