اذهب الي المحتوي
أوفيسنا

كيف أستخرج الارقام من النصوص في ملف الأكسس


Mariam.m

الردود الموصى بها

مرحبا

طلب من خبراء الاكسس لو سمحتوا

لدي ملف اكسس : جدول واحد ، حقل واحد فيه اسماء شركات مع أرقام الهواتف

كيف أستخلص أرقام الهواتف فقط في عمود منفصل

مع العلم ان بعض الشركات لديها رقمين في نفس الخلية

الملف في الملحقات

مع جزيل الشكر وفائق الاحترام 🙂

uae-com.rar

رابط هذا التعليق
شارك

اسمح لي بمداخلة بسيطة لعل وعسى تكون النصف الاخر اخي العزيز أبا جودي

تعديل بسيط على الوحدة الخاصة بك:

Public Function ExtractIDs(ByVal varInput As Variant) As String
On Error Resume Next

    Dim strSplit() As String, strResult As String
    Dim intIndex As Integer
    
    If IsNull(varInput) Then Exit Function
    
    strSplit = Split(CStr(varInput), " ")
    
    For intIndex = 0 To UBound(strSplit)
      ''''      If IsNumeric(Left(strSplit(intIndex), 1)) Then strResult = strResult & strSplit(intIndex) & ";"
        If IsNumeric(Left(strSplit(intIndex), 1)) Then strResult = strResult & strSplit(intIndex) & "|"
    Next
    
    If Len(strResult) > 0 Then
        'Remove final semi-colon and pass back result.
     '''''    ExtractIDs = Mid(strResult, 1, Len(strResult) - 1)
        ExtractIDs = Mid(strResult, InStr(1, strResult, "009"))

    End If

End Function

::

تحياتي

تم تعديل بواسطه AlwaZeeR
كلمة اسمع الى اسمح :)
  • Like 1
رابط هذا التعليق
شارك

الان, AlwaZeeR said:

اسمح لي بمداخلة بسيطة لعل وعسى تكون النصف الاخر اخي العزيز أبا جودي

تعديل بسيط على الوحدة الخاصة بك:

تحياتي

اهلا اهلا اهلا استاذى الجليل ومعلمى القدير الاستاذ المبجل استاذ @AlwaZeeR :fff: :signthankspin:
من انا حتى اسمح لكم استاذى حتما انتم تتقدمون لانه اذا حضر الماء بطل التيمم فشأنى ككل طلاب العلم اتلهف دائما الى طرحكم المبارك

جزاكم الله خيرا وكل عام وانتم الى الله اقرب
واسمح لى استاذى ان ارفق الحل على طريقتكم

uae-com_2.rar

ولكم لى سؤال اعتمد الكود على بداية الرقم بـ  009

ماذا لو مان هناك رقم يبدا بـ 

0020101111111111

  • Like 1
رابط هذا التعليق
شارك

إسمحوا لى أساتذتى .. أعتقد أنه أسهل بالإكسيل .. فى المرفق الوحدة النمطية لإستخلاص أرقام التليفونات (14 رقم) لم أستطع تحويلها لتعمل مع الأكسيس .. ولكن ـم استيرادها من الأكسيل الى الجدول المرفق. 

لكم جميعا تحياتى.

uae-com.rar

تم تعديل بواسطه essam rabea
  • Like 1
رابط هذا التعليق
شارك

ما شاء الله الله اكبر

استاذ @essam rabea :fff::signthankspin:

 

الحل فى الاستعلام الان :wink2:

uae-com(essam rabea).rar

تم تعديل بواسطه ابا جودى
  • Like 1
رابط هذا التعليق
شارك

بعد كل الشكر والتقدير لكل اساتذتنا الكرام جزاهم الله عنا كل الخير :fff:

وهذا الشرح الوافى بالاجابة الشافية والتى رزقنا الله بها على ايد استاذنا الكريم الاستاذ @essam rabea:fff:
 الكود المستخدم فى المديول

Public Function PHNum(s As String) As String
    Dim L As Long, i As Long, temp As String
    Dim CH As String
    L = Len(s)
    temp = ""
    PHNum = ""
    For i = 1 To L
        CH = Mid(s, i, 1)
        If IsNumeric(CH) Then
            temp = temp & CH
            If Len(temp) = 14 Then
                PHNum = PHNum & vbCrLf & temp
            End If
        Else
            temp = ""
        End If
    Next i
End Function

ويتم استدعاء الكود من الاستعلام

PHNum([fild name])


 

الان, essam rabea said:

هو ده .. الله يفتح عليك أبا جودى .. سلمت يداك.

الله يفتح عليك انت يا استاذ :signthankspin:

رابط هذا التعليق
شارك

السلام عليكم 🙂

 

همم ، ماشاءالله ، يعني عندكم فرح ، وكل الخبراء حاضرين مع الاخ Barna ، وانا ما اشارك !!

مشاركتي تختلف عن مشاركاتكم ، بالاستعلام ، وبس ، وبجميع الحقول 🙂

1054.Clipboard01.jpg.6aeb057b9dbaa3a2a16955ffe69c87c5.jpg

.

1054.Clipboard02.jpg.ce332e87b36c7c27173f1d58055b0733.jpg

.

اما بالنسبة الى الاخطاء ، فما اردت ان امضي وقت اكثر على الاستعلام وتصدي مكان الخطأ ،

فلما نلحق هذه البيانات في الجدول ، فلن تظهر هناك ، وفي التقرير تم ايقافها 🙂

 

جعفر

1054.uae-com.accdb.zip

  • Like 1
رابط هذا التعليق
شارك

الان, jjafferr said:

السلام عليكم 🙂

 

همم ، ماشاءالله ، يعني عندكم فرح ، وكل الخبراء حاضرين مع الاخ Barna ، وانا ما اشارك !!

مشاركتي تختلف عن مشاركاتكم ، بالاستعلام ، وبس ، وبجميع الحقول 🙂

1054.Clipboard01.jpg.6aeb057b9dbaa3a2a16955ffe69c87c5.jpg

.

1054.Clipboard02.jpg.ce332e87b36c7c27173f1d58055b0733.jpg

.

اما بالنسبة الى الاخطاء ، فما اردت ان امضي وقت اكثر على الاستعلام وتصدي مكان الخطأ ،

فلما نلحق هذه البيانات في الجدول ، فلن تظهر هناك ، وفي التقرير تم ايقافها 🙂

 

جعفر

1054.uae-com.accdb.zip 1.05 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 0 downloads

استاذى القدير ومعلمى الجليل ووالدى الحبيب الاستاذ @jjafferr

نفس الاشكالية "00971"

حضرتك اعتمد فى رقم الموبايل على انه يبدا بمفتاح الامارات 

طيب وما العمل لو كانت هناك ارقام لدول اخرى :blink:

  • Like 1
رابط هذا التعليق
شارك

وعملا بالحكمة التى تقول من كل بستان زهرة ومن كل شجرة ثمرة :wink2:
هذا المرفق هو خلاصة القول من خلاصة إبداعات وأفكار اساتذتى الكرام .. طبعا هذا من وجهة نظرى المتواضعة

-----------------------------------------------------------:yes:--------------------------------------------------------

 

 

 

uae-com-LastUpdate.rar

تم تعديل بواسطه ابا جودى
  • Like 2
رابط هذا التعليق
شارك

5 ساعات مضت, ابا جودى said:

وعملا بالحكمة التى تقول من كل بستان زهرة ومن كل شجرة ثمرة :wink2:
هذا المرفق هو خلاصة القول من خلاصة إبداعات وأفكار اساتذتى الكرام .. طبعا هذا من وجهة نظرى المتواضعة

الله عليك يا أستاذنا .. شغال like a charm.:wow:

المهم .. أين السائل اللى شغالنا لهذه الدرجة ولم يعبأ بالنتيجة :angry:

  • Thanks 1
رابط هذا التعليق
شارك

الان, essam rabea said:

الله عليك يا أستاذنا .. شغال like a charm.:wow:

المهم .. أين السائل اللى شغالنا لهذه الدرجة ولم يعبأ بالنتيجة :angry:

الحمد لله تعالى الذى تتم بنعمته الصالحات
بصراحة الموضوع ده امبارح صدعنى قوى وفضلت الفلف حوالين روحى هههههههههههه
سبحان الله هو فى الاول والاخر رزق يجريه الله تعالى على ايد اساتذتنا الافاضل وظللت الملم والملم وافكر الى ان هدانى الله ورزقنى بهذه النتيحة وبتلك الكيفية

كل الشكـــــــــــــــر والتقديــــ(استــــــــ  @essam rabea  :fff: ــــــــــاذ)ــــــــر

هههههههههههه سبحان الله وكنت انوى الرجوع الى الاستاذ @jjafferr :fff:  الا انه ومن تلقاء نفسه شارك وسبحان الله ختامه مسك :yes:

كل الشكـــــر والتقدير والاجلال والاحترام لكل اساتذتى الكرام الذين ساهموا وادلوا بدلوهم فى هذا الموضوع

انا عن نفسي استفدت كثيـــــــــــــــــــــــرا
 

رابط هذا التعليق
شارك

امممممم 

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

رابط هذا التعليق
شارك

السلام عليكم 🙂

 

يا بشمهندس ابا جودي ، الوحدات النمطية وعرفنا سببها ، ولكن ليش بقية الكود في حذف كائنات الاستعلامات ، ثم عملها مرة ثانية بالكود !!

يعني كان يكفينا:



DoCmd.SetWarnings False	'اوقف الرسائل التحذيرية

	'احذف بيانات الجدول
 	DoCmd.RunSQL "DELETE * FROM tbluaecompaniesSplitData"

	'الحق البيانات
	docmd.openquery "qryGetData"

DoCmd.SetWarnings True	'شغل الرسائل التحذيرية

 

العضو الغير محترف لما يشوف كل هذه الاكواد يتلخبط ، ويعتقد ان الكود المعقد هو السبيل الصحيح في مثل هذه الاعمال ، والبديل عن الاستعلام البسيط !!

وهذا ما حصل لأخونا وائل عبد الرحمن (واللي الآن متواجد بيننا بإسم مستعار ، فأهلا وسهلا به بيننا محافظا على قوانين المنتدى مثلنا) ، فأخونا ضاع بين الاكواد ، ولايزال ضايع وتايه ، بينما كنت قد اخبرته بأن الاستعلام هو اسهل وافضل الطرق !!

 

واشكرك على ملاحظتك

12 دقائق مضت, ابا جودى said:

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

 

جعفر

رابط هذا التعليق
شارك

استاذى الجليل ومعلمى القدير ووالدى الحبيب الاستاذ @jjafferr :fff:
انا حاولت جاهدا عدم الاكثار فى الاكواد ولكن القاعدة تعدت الـ 170 ميجا تقريبا :blink: ولم اجد غير هذا سبيلا 
واعتذر ان تأخرت فى التنويه عن هذا
اليوم هو اليوم الرابع لى بلا نوم مطلقا وفقدت كل تركيزى :imsorry:

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

10 ساعات مضت, ابا جودى said:

نفس الاشكالية "00971"

نعم ، لأن هذا الكود معمول خصيصا لارقام هذا الموضوع ،

وانت قمت في الكود بحل هذه الاشكالية بوضع الرقم 14 (اي طول رقم الهاتف) ، والذي لا يحل مشكلة ارقام سلطنة عمان وهي 13 رقم ، مثل 0096812345678 ،

فالطريقة التي يمكن ان نحل هذه المشكلة ، هي بأن يكون هذا الرقم متغير ، نأخذ قيمته من النموذج الرئيسي مثلا ، سواء لطريقتي او طريقتك 🙂

 

جعفر

  • Confused 1
رابط هذا التعليق
شارك

الان, jjafferr said:

نعم ، لأن هذا الكود معمول خصيصا لهذه الارقام ،

وانت قمت في الكود بحل هذه الاشكالية بوضع الرقم 14 (اي طول رقم الهاتف) ، والذي لا يحل مشكلة ارقام سلطنة عمان وهي 13 رقم ، مثل 0096812345678 ،

فالطريقة التي يمكن ان نحل هذه المشكلة ، هي بأن يكون هذا الرقم متغير ، نأخذ قيمته من النموذج الرئيسي مثلا ، سواء لطريقتي او طريقتك 🙂

 

جعفر

يا الهى

انا كنت اعتقد ان كل الارقام 14 رقما

حقا انا اسف 

رابط هذا التعليق
شارك

طيب ممكن سؤال استاذى ومعلمى الحبيب
انا هقوله بالبلدى وحضرتك حاول تفهمنى
ولو ينفع توكل على الله ونفذه لان خلاص فعلا انا صيرت لا ارى ولا استطيع التركيز حقا
هو ممكن نقوله فى معيار الفصل  يتم الفصل بشرط ان تبدأ الارقام  بـ 00 وبشرط ان يكون طولها اكبر من 11 رقما :blink:

هههههههه
بالله عليكم انا مش فاهم انا افكر ازى ولا باقول ايه
لا يضحك على أحد الان وانا فى هذه الحالة 

تم تعديل بواسطه ابا جودى
رابط هذا التعليق
شارك

هههههههههههه

شكلى بدات اخرف بالتفكير والكلام الاستاذ @jjafferr حتى لم يرد
حين استيقظ ان قدر الله ونمت وجعلنى من اهل الدنيا وكان لى فى العمر بقية لن اقترب من هذا الموضوع مجددا 
 

رابط هذا التعليق
شارك

12 دقائق مضت, ابا جودى said:

هو ممكن نقوله فى معيار الفصل  يتم الفصل بشرط ان تبدأ الارقام  بـ 00 وبشرط ان يكون طولها اكبر من 11 رقما :blink:

نعم ، يبدأ بالرقمين 00 (في الواقع هناك ارقام اخرى فيها 00 ، لهذا السبب يجب ان نبدأ بمسافة ثم صفرين "00 ") ، ولكن لا نعطيه طول ، وانما نقول له لما ينتهي الرقم ونحصل على "مسافة فارغة" بعده ، فهذه المسافة هي تعطي الطول الصحيح ، وبغض النظر عن طول الرقم ،

يعني بالنسبة لبرنامجي انا ، الكود يكون:

iMobile_x: Mid([All],InStr([All]," 00")+1,InStr(InStr([All]," 00")+2,[All]," ")-InStr([All]," 00")-1)

 

وبالنسبة الى برنامجك ، الكود يكون:

iMobile_x: Mid([Comment],InStr([Comment]," 00")+1,InStr(InStr([Comment]," 00")+2,[Comment]," ")-InStr([Comment]," 00")-1)

 

جعفر

  • Like 2
رابط هذا التعليق
شارك

1 دقيقه مضت, jjafferr said:

نعم ، يبدأ بالرقمين 00 (في الواقع هناك ارقام اخرى فيها 00 ، لهذا السبب يجب ان نبدأ بمسافة ثم صفرين "00 ") ، ولكن لا نعطيه طول ، وانما نقول له لما ينتهي الرقم ونحصل على "مسافة فارغة" بعده ، فهذه المسافة هي تعطي الطول الصحيح ، وبغض النظر عن طول الرقم ،

يعني بالنسبة لبرنامجي انا ، الكود يكون:


iMobile_x: Mid([All],InStr([All]," 00")+1,InStr(InStr([All]," 00")+2,[All]," ")-InStr([All]," 00")-1)

 

وبالنسبة الى برنامجك ، الكود يكون:


iMobile_x: Mid([Comment],InStr([Comment]," 00")+1,InStr(InStr([Comment]," 00")+2,[Comment]," ")-InStr([Comment]," 00")-1)

 

جعفر

 

+1

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information