كوماندير قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 السلام عليكم ورحمة الله وبركاته اعزائي الكرام لدي حقل نصي يحتوي بداخله ارقام مختلفة الموضع (الارقام غير موجودة في مكان معين من السلسة النصية كما لانستطيع تحديد الفراغات بين النص والرقم ). المطلوب هو دالة فصل هذه الارقام في حقل مستقل في الاستعلام . اليكم المرفق ExtractNumbers.rar
jjafferr قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 وعليكم السلام عملت وحدة نمطية لحل الموضوع: . والنتيجة . والوحدة النمطية: Function Seperate_Digits(T) 'T = Text From Query For i = 1 To Len(T) 'the ascii number of each number C = Asc(Mid(T, i, 1)) 'ascii numbers we want '46= . '47= / '48= 0 '49= 1 '50= 2 '51= 3 '52= 4 '53= 5 '54= 6 '55= 7 '56= 8 '57= 9 Select Case C Case 46 To 57 Which_Letter = Which_Letter & Mid(T, i, 1) End Select Next i Seperate_Digits = Which_Letter End Function . جعفر 562.ExtractNumbers.accdb.zip 3
كوماندير قام بنشر يناير 30, 2017 الكاتب قام بنشر يناير 30, 2017 ممتاز جدا وهو المطلوب بعينه لكن ماهو الحل في case 47 الفاصله المائلة / حيث نفترض انني اريد الرقم الذي بعدها فقط . ثم كيف اجعل الكود يعمل مع القيم الخالية null
jjafferr قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 9 دقائق مضت, كوماندير said: ممتاز جدا وهو المطلوب بعينه لكن ماهو الحل في case 47 الفاصله المائلة / حيث نفترض انني اريد الرقم الذي بعدها فقط . ثم كيف اجعل الكود يعمل مع القيم الخالية null لوسمحت تشرح اللي تريده ، لأني ما فهمت جعفر
كوماندير قام بنشر يناير 30, 2017 الكاتب قام بنشر يناير 30, 2017 8 دقائق مضت, jjafferr said: لوسمحت تشرح اللي تريده ، لأني ما فهمت جعفر اخي جعفر مثلا لدي Positive 1/160 ايضا Negative 1/80 اريد الدالة ترجع لي في الاولى 160 والثانية 80 فقط كيف ؟ ايضا احتاج احيانا لترك الحقل MyReault فارغا ، يعطيني الكود خطأ ؟لماذا وكيف الحل ؟
jjafferr قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 تفضل ، هذه الوحدة النمطية الجديدة 1. نحسب طول المعلومة ، اذا كانت صفر ، فلا ندخل في بقية المعادلات ، 2. واذا لقينا Case 47 ، فنحذف كل ما كان قبله ""=Which_Letter ، ونبدأ البحث عن الارقام من جديد Function Seperate_Digits(T) 'T = Text From Query If Len(T & "") = 0 Then Seperate_Digits = "" Exit Function End If For i = 1 To Len(T) 'the ascii number of each number C = Asc(Mid(T, i, 1)) 'ascii numbers we want '46= . '47= / '48= 0 '49= 1 '50= 2 '51= 3 '52= 4 '53= 5 '54= 6 '55= 7 '56= 8 '57= 9 Select Case C Case 46, 48 To 57 Which_Letter = Which_Letter & Mid(T, i, 1) Case 47 Which_Letter = "" End Select Next i Seperate_Digits = Which_Letter End Function جعفر 4
كوماندير قام بنشر يناير 30, 2017 الكاتب قام بنشر يناير 30, 2017 (معدل) الف الف شكر هو المطلوب بالضبط لماذا لم نستخدم Option explicit بداية الكود ؟؟ تم تعديل يناير 30, 2017 بواسطه كوماندير
jjafferr قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 8 دقائق مضت, كوماندير said: لماذا لم نستخدم Option explicit بداية الكود ؟؟ لأني كسلان اذا اردت استعمالها ، فيجب ان يتغير الكود الى: Option Compare Database Option explicit Function Seperate_Digits(T as string) as string dim i as integer dim C as string dim Which_Letter as string 'T = Text From Query If Len(T & "") = 0 Then Seperate_Digits = "" Exit Function End If For i = 1 To Len(T) 'the ascii number of each number C = Asc(Mid(T, i, 1)) 'ascii numbers we want '46= . '47= / '48= 0 '49= 1 '50= 2 '51= 3 '52= 4 '53= 5 '54= 6 '55= 7 '56= 8 '57= 9 Select Case C Case 46, 48 To 57 Which_Letter = Which_Letter & Mid(T, i, 1) Case 47 Which_Letter = "" End Select Next i Seperate_Digits = Which_Letter End Function جعفر جعفر 3 1
كوماندير قام بنشر أبريل 1, 2017 الكاتب قام بنشر أبريل 1, 2017 السلام عليكم : اخواني الداله اعلاه تعمل جيدا ولكن : عندما يكون مربع النص المراد استخراج الرقم منه ( لايحتوي على ارقام ) فالدالة تعيد فراغ . وهذا جيد لكن عندما اريد استخدام الحقل الناتج في تعبيرات اخرى يعطي #خطأ هل من الممكن طريقة لحل هذا الاشكال . اليكم مثال بسيط انظر للاستعلام Q2 separatMyNum.rar
Shivan Rekany قام بنشر أبريل 3, 2017 قام بنشر أبريل 3, 2017 في ١/٤/٢٠١٧ at 20:50, كوماندير said: السلام عليكم : اخواني الداله اعلاه تعمل جيدا ولكن : عندما يكون مربع النص المراد استخراج الرقم منه ( لايحتوي على ارقام ) فالدالة تعيد فراغ . وهذا جيد لكن عندما اريد استخدام الحقل الناتج في تعبيرات اخرى يعطي #خطأ هل من الممكن طريقة لحل هذا الاشكال . اليكم مثال بسيط انظر للاستعلام Q2 separatMyNum.rar اتفضل الان القي نظرتا الى Q2 والسبب كله يرجع للاستعلام Q1 الحقل Final شوف اضفت هذا السطر له IIf([xResult]="";""; يعني صرت هكذا Final: IIf([xResult]="";"";IIf([MyResult] Is Not Null;IIf([XResult]>[UpperLimit];ChrW(9650);IIf([XResult]<[LowerLimit];ChrW(9660);IIf([MyResult] Like "*Positi*";ChrW(10070);IIf([MyResult] Like "React*";ChrW(10070);"")))))) لكن بعد بها بعض اخطاء حين يكون حقل myresult بيكون فراغ انا ما افهم بالڤچبگ ما تريد لكي اعطيه جملة مناسبة لكن الان الاستعلام Q2 ما به اي خطأ separatMyNum.rar
كوماندير قام بنشر أبريل 3, 2017 الكاتب قام بنشر أبريل 3, 2017 اشكرك اخي كثيرا لكن هل من حل لذلك في الكود ( الكود اعلاه ) ؟
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.