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

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

قام بنشر

السلام عليكم

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

كود رائع وبالتوفيق ان شاء الله

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

اي الغاء المسافات على يمين ويسار  الاسم وجعل المسافة واحدة بين اسم الشخص والاب وكذلك بين الاب والجد .

قام بنشر

السلام عليكم

شكرا استاذ ابو عارف على الاجابة

ولكن كيف يتم تنفيذ الدوال الثلاثة بكود لقاعدة البيانات السابقة

وماذا بخصوص المسافة بين الكلمات كما في الصورة المرفقة

Capture.JPG

قام بنشر (معدل)
9 ساعات مضت, علي هندسة said:

شكرا استاذ ابو عارف على الاجابة

العفو اخي الكريم

9 ساعات مضت, علي هندسة said:

ولكن كيف يتم تنفيذ الدوال الثلاثة بكود لقاعدة البيانات السابقة

Trim([Xname])

ازالة مسافة فبل كتابة الاسم في خانة الاسم و مسافة بعد اسم الكامل مثلا   " احمد محمود ابراهيم " الى  "احمد محمود ابراهيم" 

RTrim([Xname])

ازالة مسافة يمين فقط " احمد محمود ابراهيم " الى "احمد محمود ابراهيم "

و LTrim   " احمد محمود ابراهيم " الى " احمد محمود ابراهيم"

9 ساعات مضت, علي هندسة said:

وماذا بخصوص المسافة بين الكلمات كما في الصورة المرفقة

Expr1: Replace(Replace(Replace(Replace([Xname],"  "," "),"  "," "),"  "," "),"  "," ")

هذا دالة تعيد من واحد لغاية خمسة مسافات الى مسافة واحدة، اذا كانت مسافات اكثر من خمسة اضف replace آخر

tp.rar

تم تعديل بواسطه ابو عارف
  • Like 1
قام بنشر

السلام عليكم

شكرا استاذ ابو عارف على الاجابة وشكرا على تعاونك 

لدي مشكلة بخصوص كود الغاء المسافة بين الاسماء

Function RemoveSpaces(TextString As String) As String
Dim TempText As String

    Do While Len(TextString) > 0
        If Left(TextString, 1) <> " " Then
            TempText = TempText & Left(TextString, 1)
        End If
           (TextString = Mid(TextString, 2
    Loop
    RemoveSpaces = TempText
End Function

 ()Private Sub Cnm01_Click
Dim c, i
("c = DCount("[Xname]", "Table
DoCmd.GoToRecord , , acFirst
For i = 1 To c
XXname = RemoveSpaces(Xname)
DoCmd.GoToRecord , , acNext
Next i
End Sub

End Sub

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

والمشكلة الثانية هي بخصوص الكود الغاء المسافات الزائدة بين الاسماء

Expr1: Replace(Replace(Replace(Replace([Xname],"  "," "),"  "," "),"  "," "),"  "," ")

هل يمكن استبداله بكود في زر لفورم

وشكرا لك استاذي

  • Thanks 1
قام بنشر

تفضل اخي الكريم

للازالة مسافة بين اسماء

Function hr_Sps(MyText As String) As String
Dim txt, txtA
For Each txt In Split(MyText)
        If Len(txt) Then txtA = txtA & " " & txt
Next
hr_Sps = Trim(txtA)
End Function

 

()Private Sub Cnm01_Click
Dim DB As DAO.Database
Dim rst As DAO.Recordset
Set DB = CurrentDb
Set rst = DB.OpenRecordset("table")
rst.MoveFirst
Do Until rst.EOF
rst.Edit
rst!Xname = hr_Sps(rst!Xname)
rst.Update
rst.MoveNext
Loop
MsgBox "تم تحديث بيانات بنجاح"
End Sub

و للمسافات زائدة استبدل سطر الرابع         If Len(txt) Then txtA = txtA & " " & txt

على                                                          If Len(txt) Then txtA = txtA & "" & txt

واخيرا اضافة مكتبة

DAO.jpg.db10f0e5d3cb13c17c092890af6f576a.jpg

 

  • Thanks 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