ابوخليل قام بنشر أبريل 26, 2014 قام بنشر أبريل 26, 2014 السلام عليكم ورحمة الله وبركاته اخواني الاكارم تحية طيبة وبعد : الدالة Split هي المسؤلة عن تقسيم السلسلة النصية ويمكننا من خلالها ارجاع أو حذف الجزء الذي نحدده ويتم توظيفها في النماذج والتقارير داخل محرر الفيجوال على النحو التالي : name1 = Split(FullName, " ")(0) name2 = Split(FullName, " ")(1) name3 = Split(FullName, " ")(2) name4 = Split(FullName, " ")(4) - باعتبار FullName هو حقل الاسم الكامل علما انه يمكن كتابة الاسم داخل الكود بين علامتي تنصيص مزدوجتين وستقوم الدالة بارجاع الجزء المحدد - وما بين علامتي التنصيص " " الفاصلة التي على اساسها يتم تجزئة النص وهي هنا مسافة فارغة - اما الارقام (0) ، (1) ، (2) ... فهي ترمز الى مكان الجزء داخل النص الى هنا كل شيء يسير على ما يرام ولكن حين نريد استخدامها داخل الاستعلام نفاجأ بأنها لا تعمل وتظهر رسالة من الاستعلام بأن هذه الدالة غير معروفة والحل : ان نعقد بين الدالة والاستعلام صفقة عمل و تعارف ولن يتم لنا ذلك حتى نوجد للدالة مكان اقامة دائم في قاعدة البيانات الحالية وللدرس بقية : تعريف الدالة + التطبيق ان شاء الله 2
ابوخليل قام بنشر أبريل 27, 2014 الكاتب قام بنشر أبريل 27, 2014 جزاك _ربي جنته أستاذي وإياك اخي الحبيب في وحدة نمطية عامة نلصق الجملة البرمجية التالية : Public Function qsplit(FullName As String, i As Integer) On Error Resume Next qsplit = Split(FullName, " ")(i) End Function لاحظ اننا انشأنا دالة جديدة بناء على الدالة الاصلية وجعلنا لها اسما قريبا من الدالة الاصلية حتى يتم التعرف عليها وعلى عملها من اول نظرة ولاحظ ايضا ما حدث لوسائط الدالة الاصلية وترتيبها حيث سيتم توظيف الدالة الجديدة داخل الاستعلام على النحو التالي : name1 : qsplit(FullName; 0) name2 : qsplit(FullName; 1) name3 : qsplit(FullName; 2) name4 : qsplit(FullName; 3) وفي المثال تطبيق للشرح والمقال : تجزئة النص.rar 4 1
علي المصري قام بنشر يونيو 18, 2014 قام بنشر يونيو 18, 2014 فكرة ممتازة كنت ابحث عنها ولكن انا عندي قاعدة بيانات بها اسم الطالب مجزأ اسم اول - اسم الاب - اسم الجد وهكذا عملت تقرير وجمعت به الاسم بالكامل كالتالي name1+" "+name2+" "+name3+" "+name4 فهل هناك طريقة تجعل عند الانتقال من ادخال بيانات الطالب الأول تلقائيا يتم حفظ الاسم مجزئ والاسم بالكامل شكرا
at_aziz قام بنشر يونيو 18, 2014 قام بنشر يونيو 18, 2014 بارك الله فيك وجزاك الله خير مثال رائع ومفيد جدا وفقك الله ورعاك
ابوخليل قام بنشر ديسمبر 18, 2014 الكاتب قام بنشر ديسمبر 18, 2014 الاخوة الكرام علي المصري ... at_aziz ..... تعليموه شكرا لمروركم وثنائكم هي يمكن حل مشكلة الأسماء المركبة؟ هنا بعض المشاركات حول هذا الموضوع http://www.officena.net/ib/index.php?showtopic=43914#entry254950 http://www.officena.net/ib/index.php?showtopic=53179#entry333843 2
فيصل زهره قام بنشر يناير 30, 2015 قام بنشر يناير 30, 2015 جزاك _ربي جنته أستاذي وإياك اخي الحبيب في وحدة نمطية عامة نلصق الجملة البرمجية التالية : Public Function qsplit(FullName As String, i As Integer) On Error Resume Next qsplit = Split(FullName, " ")(i) End Function لاحظ اننا انشأنا دالة جديدة بناء على الدالة الاصلية وجعلنا لها اسما قريبا من الدالة الاصلية حتى يتم التعرف عليها وعلى عملها من اول نظرة ولاحظ ايضا ما حدث لوسائط الدالة الاصلية وترتيبها حيث سيتم توظيف الدالة الجديدة داخل الاستعلام على النحو التالي : name1 : qsplit(FullName; 0) name2 : qsplit(FullName; 1) name3 : qsplit(FullName; 2) name4 : qsplit(FullName; 3) وفي المثال تطبيق للشرح والمقال : شكرا لك اخي العزير على هذا المثال الرائع .. لدي سؤال آخر هل يوجد طريقة لمعرفة عدد خانات الاسم قبل توزيع الاسماء .. فأحياناً تكون الاسماء خماسية
ابوخليل قام بنشر فبراير 6, 2015 الكاتب قام بنشر فبراير 6, 2015 شكرا لك اخي العزير على هذا المثال الرائع .. لدي سؤال آخر هل يوجد طريقة لمعرفة عدد خانات الاسم قبل توزيع الاسماء .. فأحياناً تكون الاسماء خماسية سؤال جميل وتكثر الحاجة اليه فقد تكون الاسماء خماسية او رباعية او ثلاثية .... وتكون حاجتنا في اظهار الاسم الاول واسم العائلة فقط مثلا لذا فنحن بحاجة الى عدد خانات الاسم كما تفضل به الاخ السائل لكي نختار ما نريد من اجل هذا سيكون التطبيق التالي داخل الاستعلام لاختيار الاسم الاول واسم العائلة مهما تعددت الخانات 3
ابوخليل قام بنشر فبراير 6, 2015 الكاتب قام بنشر فبراير 6, 2015 أولا : تطبيق الفكرة داخل النموذج في حقول غير منضمة On Error Resume NextDim x As Integer x = Len([txtNm]) - Len(Replace([txtNm], " ", "")) 'هذا السطر لعد الفواصل بين الأسماء name1 = Split(txtNm, " ")(0) ' الصفر يعني ما قبل الفاصلة الأولى 'اذا كان عدد الفواصل=1 يعني اسمين فقط سيتم تعييين الاسم الثاني كاسم عائلة If x = 1 Then name4 = Split(txtNm, " ")(1) If x = 2 Then name4 = Split(txtNm, " ")(2) ' If x = 3 Then name4 = Split(txtNm, " ")(3) ' If x = 4 Then name4 = Split(txtNm, " ")(4) ' وفي المثال غنية عن زيادة المقال يتبع .. _تجزئة النص في النموذج حسب التحديد .rar 2
ابوخليل قام بنشر فبراير 6, 2015 الكاتب قام بنشر فبراير 6, 2015 ثانيا تطبيق الفكرة داخل الاستعلام نحتاج الى صنع وحدة نمطية عامة تقوم بالعمليات المشروطة السابقة ومن ثم نقوم بتوظيفها داخل الاستعلام وما يهمنا هنا هو الحقل الرابع والذي هو حقل اسم العائلة اما الحقل الاول فقد تمكنا منه من خلال اول مشاركة وستكون الوحدة النمطية على هذا الترتيب Public Function qsplit4(FullName As String) On Error Resume Next Dim x As Integer x = Len(FullName) - Len(Replace(FullName, " ", "")) qsplit4 = Split(FullName, " ")(x) End Function تجزئة النص في الاستعلام حسب التحديد.rar 1
فايز العميسي قام بنشر يونيو 19, 2015 قام بنشر يونيو 19, 2015 السلام عليكم اساتذتي الأجلاء ممكن شرح هذا الكود وعمل حل للأسماء المركبة ( عبد الرحمن ، ضيف الله ، شمس الدين ) التي يوجد بينهما فاصلة. Function PartOfName(InName As String, NumberOfPart As Byte) As String Dim TheSpaceNumber As Byte Dim i As Integer, U As Integer InName = NoSpaces(InName) PartOfName = "" If InName = "" Then Exit Function Do U = i i = InStr(i + 1, InName, " ", 1) If i <> 0 Then TheSpaceNumber = TheSpaceNumber + 1 If TheSpaceNumber = NumberOfPart Then Exit Do ElseIf TheSpaceNumber + 1 = NumberOfPart Then i = Len(InName) + 1 Exit Do Else Exit Function End If Loop PartOfName = Trim(Mid(InName, U + 1, i - U - 1)) End Function
Hosain21 قام بنشر يونيو 19, 2015 قام بنشر يونيو 19, 2015 (معدل) أستاذي الكريم الغالي : أجزل الله لكم المثوبة على ما تفضلتم به . الطريقة التي أتبعها في معالجة الأسماء (المركبة) قبل تجزئتها : 1- استبدال الفراغ قبل (ينت ، ابن ، بن ، الله ، الرحمن ، الكريم ، الدين) [بشرط وجود فراغ بعدها] والفراغ بعد كلمة (عبد) بشرطة_ [باستخدام Replace] 2- تجزئة الأسماء ، ومراجعة التجزئة بشكل غير آلي (في الاستعلام الاسم مجزأ وكاملا) 3- استبدال الشرطة_ بفراغ . لاتحل المشكلة بشكل تام لوجود أسماء مركبة مثل : محمد علي ، حج عبدالله (وتوجد بعض الأسماء التي تستخدم مفردة ومركبة ؛ مثل : غرم وغرم الله ) تم تعديل يونيو 19, 2015 بواسطه Hosain21
الردود الموصى بها