الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث داخل قيمة بعد رمز معين

بدأه H_O_A في 2 يوليو 2012 · 3 رد · 487 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لدي جدول به حقل موجود به قيم كالتالي:

ABCD-12345Q

ABC-98R7

ACD-DD/DD

هل يوجد كود اقوم به بالبحث عن علامة "-" قم اقوم باستخراج باقي الحروف التي تقع بعدها؟

بالتطبيق علي المثال السابق تكون النتيجة كالتالي:

1234Q

98R7

DD/DD

هل من مساعد

#2

وعليكم السلام ورحمة الله وبركاته

تم استخدام الكود التالي لتقسيم الكلمة

Dim Index As Byte
   Dim flag As Integer
   Dim tm As Integer

 If Not IsNull([FName]) Then
       tm = Len([FName])
       Me!TN = Null
       For Index = 1 To tm
         Me("t" & Index) = Mid(([FName]), Index, 1)
         If flag = 1 Then Me!TN = Me!TN & "" & Me("t" & Index)
         If Me("t" & Index) = "-" Then flag = 1
     Next Index
End If

مرفق المثال وبالتوفيق

test1.rar

تم تعديل هذه المشاركة بواسطة adnan94 في 2 يوليو 2012 في 20:12

#3

فكرة ممتازة.

في لغة PHP يوجد دالة تسطتيع من خلالها تنفيذ هذا الطلب "البحث عن حرف ثم الرجوع بباقي القيمة التالية له"؛ هل توجد مثل هذه الدالة في الاكسيس دون الرجوع الي الكود السابق الذي يعتمد علي فكرة التقسيم؟ او علي الاقل هل يمكن تنفيذ هذا الكود داخل الاستعلام دون اسخدام vb؟

شكرا لك

#4
H_O_A كتب:

فكرة ممتازة.

في لغة PHP يوجد دالة تسطتيع من خلالها تنفيذ هذا الطلب "البحث عن حرف ثم الرجوع بباقي القيمة التالية له"؛ هل توجد مثل هذه الدالة في الاكسيس دون الرجوع الي الكود السابق الذي يعتمد علي فكرة التقسيم؟ او علي الاقل هل يمكن تنفيذ هذا الكود داخل الاستعلام دون اسخدام vb؟

شكرا لك

أخي العزيز ليس لدي خبرة بـ PHP وأعتقد أنك تقصد ربما اختصار الكود وذلك للحصول على النتيجة في الاستعلام مباشرة فأرجو ان تمشي معك الطريقة التالية في المحاولة بتوظيفها في دالة تعمل داخل استعلام :

On Error Resume Next
    Dim flag As Integer
    Dim MsField(15) As String
    Dim I As Integer
         flag = 0
         Me.TN = Null

    For I = 0 To 15
        MsField(I) = Mid(([FName]), (I), 1)
        If flag = 1 Then Me.TN = Me.TN & "" & MsField(I)
        If MsField(I) = "-" Then flag = 1
   Next I
        Exit Sub

تم تنفيذ المطلوب الآن عن طريق مصفوفة ربما نكون أختصرنا بعض الشئ من الكود السابق واذا كنت تريد تنفيذ استعلام بالمطلوب فخزن النتيجة في حقل اثناء الادخال او ربما هناك طريقة أخرى لجعل هذا الكود يعمل مباشرة بالاستعلام فإذا توصلت لشئ أفضل من هذا فسأطرحه بإذن الله

هذا ما استطعت مساعدتك به

مرفق الطريقتين بالمثال

وبالتوفيق

test1.rar

تم تعديل هذه المشاركة بواسطة adnan94 في 3 يوليو 2012 في 19:47

مواضيع مشابهة