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

دالة الاستبدال و تغيير حرف بحرف أخر


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

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

فى هذا المثال عندما اريد تغير أخر حرف فى الكلمة 
مثلا ي تتغير الى ى 

T = Replace(T, "ي ", "ى ")

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

وجزاكم الله خيرا

 

Update.mdb

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

29 دقائق مضت, Barna said:

ضع هذا في الاستعلام لديك ......


B: Replace([test];"ي";"ى")

 

 

23 دقائق مضت, Barna said:

مشكلة هذا الاستخدام تغير كل اسم فيه ي مثلا أمين يجعلها أمىن وهكذا ....... فاحذر منها ؟؟؟؟؟؟؟؟؟؟؟؟

أشكرك أستاذى و لكن الحرف المطلوب تغييره فى اخر الجمله أو الكلمه هو ي يتغير الى ى

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

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

للاسف أنا لا أملك هذه الكود

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

شكر لك ستاذى @عبد الله قدور
 

3 ساعات مضت, عبد الله قدور said:

السلام عليكم

اتمنى ان يكون هذا الحل يكفي بالغرضUpdate.mdb

 

Function C_Word(T As String) As String
If Right(T, 1) = "ي" Then
T = Replace(T, "ي", "ى")
End If
T = Replace(T, "ي", "ى")
C_Word = T

End Function

هكذا يعمل الكود على كل الكلمات جزاك الله خيرا

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

3 ساعات مضت, Barna said:

ماذا لو كان الاسم علي ......

نستخدم الكود بدون شرط
 

Function C_Word(T As String) As String
If Right(T, 1) = "ي" Then
T = Replace(T, "ي", "ى")
End If
T = Replace(T, "ي", "ى")
C_Word = T

End Function

 

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

السلام عليكم

لو كان عند حقل B في جدول TB1

وكان نوع هذا الحقل رقم 

كيف يمكن ان استبدل الرقم 9 برقم 3  دفعه واحدة في الجدول بحيث يكون حدث في النموذج 

 

بالتوفيق إن شاء الله

 

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

19 دقائق مضت, ابو محمد 316 said:

السلام عليكم

لو كان عند حقل B في جدول TB1

وكان نوع هذا الحقل رقم 

كيف يمكن ان استبدل الرقم 9 برقم 3  دفعه واحدة في الجدول بحيث يكون حدث في النموذج 

 

بالتوفيق إن شاء الله

 

يمكن عمل ذلك من خلال الاستعلام او عند اضافة سجل جديد و الله أعلم

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

أستاذى @عبد الله قدور

واجهتنى مشكلة 

اذ ان بهذه الطريقة يحذف جميع الياء فى الجملة التى اخرها ياء 
مثلا عيد مصطفي تصبح عىد مصطفى

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

السلام عليكم اخى الكريم
هل ممكن ان اتدخل بعد اذن اساتذتنا

اخى السائل ما فهمته انك تريد استبدال اخر حرف فقط فى الجملة اذا كان ي يصبح ى
بمعنى (مصطفي عيد مصطفي

تصبح 
مصطفي عيد مصطفى
 فقط اخر كلمة فى الجملة  صح كدا ؟؟

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

3 دقائق مضت, Elsayed Bn Gemy said:

السلام عليكم اخى الكريم
هل ممكن ان اتدخل بعد اذن اساتذتنا

اخى السائل ما فهمته انك تريد استبدال اخر حرف فقط فى الجملة اذا كان ي يصبح ى
بمعنى (مصطفي عيد مصطفي

تصبح 
مصطفي عيد مصطفى
 فقط اخر كلمة فى الجملة  صح كدا ؟؟

أستاذى @Elsayed Bn Gemy
صحيح المطلوب تغير اخركلمة فى الجملة اذا كانت ي تتحول الى ى

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

اذن تفضل اخى الكريم وحدة نمطية صغطها مخصوصا لك

Function LastChar(last_input)
If Nz(last_input, "") = "" Then Exit Function
If Mid(last_input, Len(last_input), 1) = "ي" Then
NewString = Left(last_input, Len(last_input) - 1) & "ى"
LastChar = NewString
Else
LastChar = last_input
End If
End Function

 

طبعا هتضيف  الكود دا فى الاستعلام
 

NewName: LastChar([OldName])

مع تغيير oldname  الى اسم حقل الاسماء

 كما فى الصورة
 

 

8888.png.9c0f9783c5e5ab6b885326f675ca11fb.png

 

 

 وهذه صورة من الحل

 

5454515.png.74fc284b615772cc723ab40cf28fb9f8.png

 

شكرا لك

 

تم تعديل بواسطه Elsayed Bn Gemy
  • Thanks 1
رابط هذا التعليق
شارك

أستاذى @Elsayed Bn Gemy
جزاك الله كل خير نعم هو المطلوب ممكن اضافة صغيرة 
 

Function C_Word(T As String) As String
T = Replace(T, "ي ", " ى")
C_Word = T
End Function

هل ممكن جعل الوحدة النمطية القديمة تضاف الى الجديد كعمود واحد فى الاستعلام حيث يتم تغير اي كلمة بها ي و مسافة الى ى ومسافة
مثلا مصطفي عيد الى مصطفى عيد

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

أعمل على تنقية بيانات كثيرة و تصادف أن حرف ي فى اخر الكلمة كثير جدا فكنت أكتب كل اسم فى الوحدة النمطية ولكن هذه الطريقة أفضل جزاك الله خيراً أستاذى 
هل يمكن النظر فى هذا الموضوع
https://www.officena.net/ib/topic/88236-وجود-ايقونة-البرنامج-على-شريط-المهام-دائما/

 

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

7 ساعات مضت, محمد احمد لطفى said:

أستاذى @Elsayed Bn Gemy
 


Function C_Word(T As String) As String
T = Replace(T, "ي ", " ى")
C_Word = T
End Function

هل ممكن جعل الوحدة النمطية القديمة تضاف الى الجديد كعمود واحد فى الاستعلام حيث يتم تغير اي كلمة بها ي و مسافة الى ى ومسافة
مثلا مصطفي عيد الى مصطفى عيد

معلش مخدتش بالى من بقية السؤال 

انت عاوز اى حرف ي خلفه مسافة يتم تغييرة 

صح كدا ؟؟

دى محتاجة اختراع وحدة نمطية تانية بجانب اللى معاك  هههههههههههه

فممكن تمهلنى باكر ان شاء الله لانى على الموبايل والله الان 

1460483449_Screenshot_-----.png.af04a85357a4fef18eda063978bb343e.png

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

1 ساعه مضت, Elsayed Bn Gemy said:

معلش مخدتش بالى من بقية السؤال 

انت عاوز اى حرف ي خلفه مسافة يتم تغييرة 

صح كدا ؟؟

دى محتاجة اختراع وحدة نمطية تانية بجانب اللى معاك  هههههههههههه

فممكن تمهلنى باكر ان شاء الله لانى على الموبايل والله الان 

1460483449_Screenshot_-----.png.af04a85357a4fef18eda063978bb343e.png

صحيح هذا هو المطلوب 
هل يمكن جعل 

LastChar = last_input

LastChar = T

فقط 

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

السلام عليكم اخى الكريم

اضف هذه الوحدة النمطية  ولا تقم بمسح السابقة  لانهم سيعملو سويا

Function ForSearch(Astr As Variant) As Variant
Dim i As Integer
Dim L As Variant, NewStr As Variant

If Nz(Astr, "") = "" Then Exit Function
Astr = CStr(Astr)

For i = 1 To Len(Astr)


L = Mid(Astr, i, 1)
If L = "ي" And Mid(Astr, i + 1, 1) = " " Then
L = Mid(Astr, InStr(Astr, L), 1)
Select Case Asc(L)
Case 237: L = Chr(236)
Case Else:   L = L
End Select

End If
NewStr = NewStr & L

Next


ForSearch = NewStr

End Function

 

ثم قم بتعديل الاستعلام ليصبح الحقل على هذا الشكل

NweName: LastChar(ForSearch([OldName]))

 

 

 

وهذه صورة من الاستعلام

 

659659954.png.a125311544acdce51598b843f25cf79b.png

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

اقتباس

LL

في ٢٣‏/١‏/٢٠١٩ at 10:39, Elsayed Bn Gemy said:

السلام عليكم اخى الكريم

اضف هذه الوحدة النمطية  ولا تقم بمسح السابقة  لانهم سيعملو سويا



Function ForSearch(Astr As Variant) As Variant
Dim i As Integer
Dim L As Variant, NewStr As Variant

If Nz(Astr, "") = "" Then Exit Function
Astr = CStr(Astr)

For i = 1 To Len(Astr)


L = Mid(Astr, i, 1)
If L = "ي" And Mid(Astr, i + 1, 1) = " " Then
L = Mid(Astr, InStr(Astr, L), 1)
Select Case Asc(L)
Case 237: L = Chr(236)
Case Else:   L = L
End Select

End If
NewStr = NewStr & L

Next


ForSearch = NewStr

End Function

 

ثم قم بتعديل الاستعلام ليصبح الحقل على هذا الشكل



NweName: LastChar(ForSearch([OldName]))

 

 

 

وهذه صورة من الاستعلام

 

659659954.png.a125311544acdce51598b843f25cf79b.png

اقتباس
اقتباس

ممكن اخلى الكريم إضافة الوحدات النمطية المذكورة بمثال لأنى حاولت كثير أن اتبع التعليمات ولكن لم انجح

 

 

 

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

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