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

اخفاء واظهار علامات التشكيل


مستفيد69

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

السلام عليكم

الأساتذة الأفاضل هل يمكن اخفاء علامات التشكيل من النص عند الرغبة في ذلك

وذلك من خلال وجود كبسة عند الضغط عليها يختفي التشكيل وعند الضغط عليها مرة اخرى يظهر التشكيل

هذا الامر موجود في برنامج الشاملة فهل هذا ممكن في برنامج اكسس
 

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

14 دقائق مضت, مستفيد69 said:

السلام عليكم

الأساتذة الأفاضل هل يمكن اخفاء علامات التشكيل من النص عند الرغبة في ذلك

وذلك من خلال وجود كبسة عند الضغط عليها يختفي التشكيل وعند الضغط عليها مرة اخرى يظهر التشكيل

هذا الامر موجود في برنامج الشاملة فهل هذا ممكن في برنامج اكسس
 

ممكن يختفى والاصل اللى بالتشكيل عندك اصلا :yes:

هات مرفق واعرفق ازاى :wink2:

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

يمكنكم استخدام الروتين الاتى لإزالة اى حركات تشكيل

ويتم استدعاءه كم خلال 
 

StripSpCharsOnly("النص")
'OR in Forms
StripSpCharsOnly(txtName)
'or in Query
StripSpCharsOnly(FildeName)

 

Public Function StripSpCharsOnly(strString As String) As String
Dim lngCtr As Long
Dim intChar As Integer
    
    If strString & "" = "" Then Exit Function
    
    For lngCtr = 1 To Len(strString)
        intChar = AscW(Mid(strString, lngCtr, 1))
        If intChar = 32 Or _
            intChar >= 1569 And intChar <= 1594 Or _
            intChar >= 1601 And intChar <= 1610 Or _
            intChar >= 1648 And intChar <= 1649 Then
            StripSpCharsOnly = StripSpCharsOnly & ChrW(intChar)
        End If
    Next lngCtr
    StripSpCharsOnly = Trim(StripSpCharsOnly)
    
End Function

 

مثال فى المرفق :

 

Strip Special Characters.zip

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

شكرا استاذي الفاضل على سرعة الرد

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

وعند الضغط عليه مرة اخرى يعود

فالمطلوب ان تختفي ولا تظهر وليس المطلوب ازالتها

وهذا مرفق يمكن يوضح المطلوب

12446.accdb

تم تعديل بواسطه مستفيد69
  • Haha 1
رابط هذا التعليق
شارك

الحل الامثل تبعا للمرفق ان شاء الله :yes:

اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode

Public Function StripSpChars(strString As String) As String
Dim lngCtr As Long
Dim intChar As Integer
    
    If strString & "" = "" Then Exit Function

    For lngCtr = 1 To Len(strString)
        intChar = AscW(Mid(strString, lngCtr, 1))
        If intChar = 13 Or _
            intChar = 32 Or _
            intChar = 40 Or _
            intChar = 41 Or _
            intChar = 45 Or _
            intChar = 46 Or _
            intChar = 58 Or _
            intChar = 91 Or _
            intChar = 93 Or _
            intChar = 95 Or _
            intChar = 171 Or _
            intChar = 187 Or _
            intChar = 1548 Or _
            intChar >= 1569 And intChar <= 1594 Or _
            intChar >= 1601 And intChar <= 1610 Or _
            intChar >= 1648 And intChar <= 1649 Or _
            intChar >= 1632 And intChar <= 1641 Or _
            intChar >= 48 And intChar <= 57 Then
            StripSpChars = StripSpChars & ChrW(intChar)
        End If
    Next lngCtr
    StripSpChars = Trim(StripSpChars)
    
End Function

ثانيا : الاكواد داخل النموذج 

  • الاعلان عن متغير للاحتفاظ برقم السجل الحالى من خلال الحقل txtid
Dim idRec As Integer
  • روتين فرعى للذهاب للسجل حسب قيمة المتغير السابق idRec  للحافظ على الذهاب الى السجل الحالى
Sub GoRec()
    With Me.Recordset
        .FindFirst "ID=" & idRec
    End With
End Sub
  • روتين فرعى لتغير مصدر بيانات النموذج
    - يحتفظ الروتين برقم السجل الحالى بالحاق الرقم الى المتغير idRec

    - تيم تغيير جملة بناء الاستعلام حسب حالة المرجع X  الذى تم الاعلان عنه فى بناء الروتين 
    - تغيير عنوان مربع الاختيار تبعا لحالة مصدر البيانات المطلوب استخدانه
Sub GoRecdSource(ByRef x As Boolean)
idRec = txtid
     Select Case x
        Case Is = False
            Me.RecordSource = "SELECT book.nass, book.id, book.part, book.page FROM book;"
            GoRec
            lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604")
        Case Is = True
            Me.RecordSource = "SELECT StripSpChars([book]![nass]) AS nass, book.id, book.part, book.page FROM book;"
            GoRec
            lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604")
    End Select
End Sub

الكود المستخدم على مربع الاختيار

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

    GoRecdSource (ChkCase)

 

ما سبق اجتهاد شخصى  :yes::wink2: >>---> قد تكون هناك طرق افضل 
وفى انتظار رأى استاذى الجليل ومعلمى القدير الاستاذ @Barna :fff:

واخيرا مرفق التطبيق 

 

12446-1 (2).accdb

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

تعديل رقم (2).. افضل واسرع

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

اولا الروتين العام فى الوحدة النمطية: يقوم بعمل دوران على النص لتعريته من اى شئ يخالف المستخدم داخل الروتين عن طريق استخدام الـ Unicode


Public Function StripSpChars(strString As String) As String
Dim lngCtr As Long
Dim intChar As Integer
    
    If strString & "" = "" Then Exit Function

    For lngCtr = 1 To Len(strString)
        intChar = AscW(Mid(strString, lngCtr, 1))
        If intChar = 13 Or _
            intChar = 32 Or _
            intChar = 40 Or _
            intChar = 41 Or _
            intChar = 45 Or _
            intChar = 46 Or _
            intChar = 58 Or _
            intChar = 91 Or _
            intChar = 93 Or _
            intChar = 95 Or _
            intChar = 171 Or _
            intChar = 187 Or _
            intChar = 1548 Or _
            intChar >= 1569 And intChar <= 1594 Or _
            intChar >= 1601 And intChar <= 1610 Or _
            intChar >= 1648 And intChar <= 1649 Or _
            intChar >= 1632 And intChar <= 1641 Or _
            intChar >= 48 And intChar <= 57 Then
            StripSpChars = StripSpChars & ChrW(intChar)
        End If
    Next lngCtr
    StripSpChars = Trim(StripSpChars)
    
End Function

ثانيا : الاكواد داخل النموذج

  • روتين فرعى لتغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل
    - تيم تغيير مصدر التحكم لمربع النص فقط الذى يحتوى على النص + حركات التشكيل حسب حالة المرجع X  الذى تم الاعلان عنه فى بناء الروتين 
Sub GoRecdSource(ByRef x As Boolean)
     Select Case x
        Case Is = False
            Me.txtnass.ControlSource = "[nass]"
            lblChkCase.Caption = ChrW("1573") & ChrW("1582") & ChrW("1601") & ChrW("1575") & ChrW("1569") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604")
        Case Is = True
            Me.txtnass.ControlSource = "=StripSpChars([nass])"
            lblChkCase.Caption = ChrW("1573") & ChrW("1592") & ChrW("1607") & ChrW("1575") & ChrW("1585") & ChrW("32") & ChrW("1581") & ChrW("1585") & ChrW("1603") & ChrW("1575") & ChrW("1578") & ChrW("32") & ChrW("1575") & ChrW("1604") & ChrW("1578") & ChrW("1588") & ChrW("1603") & ChrW("1610") & ChrW("1604")
    End Select
End Sub

 

وبعد اذن استاذى الجليل ومعلمى القدير و والدى الحبييب الاستاذ @jjafferr :fff:
النظر الى التعديل الجديد لرؤية التعديل الجديد وابداء الرأى عن هذه الفكرة وإرشادى الى ما ينقص تمام العمل 

واخيرا مرفق التطبيق 

12446-1 (3).accdb

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

الاساتذة الأفاضل @Barna  ابو جودي  @jjafferrمشكورين على المساعدة

واذا ممكن توضيح اكثر بخصوص الفرق بين الطريقتين يناسب من عندهم معلومات بسيطة مثلي  😂

هل قام الكود بحذف التشكيل مؤقتا من النص ام جعلها غير مرئيه فقط 

وهل يمكن بنفس هذه الطريقة تلوين علامات التشكيل فقط بلون خاص احمر مثلا

ام ان الموضوعين مش مترابطين

 

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

زيادة توضيح بعد الرجوع من صلاة الجمعه

1 ساعه مضت, مستفيد69 said:

هل قام الكود بحذف التشكيل مؤقتا من النص ام جعلها غير مرئيه فقط 

 

قصدي من هذا السؤال معرفة هل بالامكان الاستفادة من هذه الطريقة للبحث بدون علامات التشكيل لاني لاحظت ان اخفاء التشكيل تم بسرعه

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

1 ساعه مضت, مستفيد69 said:

تلوين علامات التشكيل فقط بلون خاص احمر مثلا

لما تتكلم عن تلوين او تنسيق جزء من النص ، فانت تتكلم عن اضافات عن طريق لغة HTML في حقل تنسيق ،

وهذا سيجعل النموذج ابطأ في العمل ، وخصوصا انك تتعامل مع حقل مذكرة.

 

الغريب في سؤالك ، انه كلما سأل عضو عن موضوع الاحاديث والمساند ، فيتطرق الى هذه النقطة !!

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

 

جعفر

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

منذ ساعه, jjafferr said:

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

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

فبعض الكتب فيها التشكيل في كل حرف وعند التصفح والتقليب السريع للصفحات للقراءة او البحث عن مساله معينة فإن اخفاء التشكيل مريح للنظر

ومن الجيد ايضا تلوين الايات بولن مختلف اذا كانت بين افواس خاصة مثل {} خاصة في كتب التفاسير

وكذلك تلوين العناوين اذا كانت مميزة بعلامة خاصة مثلا * في اولها

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

قد يكون هذا الامر خروجا عن الموضوع لكنله سؤال خطر على بالي انه اذا امكن اخفاء التشكيل فبنفس الطريقة يمكن تلوينها

وكلامك يعني انه ممكن لكن له سلبيات لذلك لعل الافضل طرح موضوع التلوين في موضوع خاص

وهناك قاسم مشترك اخر بين الذين يعملون في الكتب وهو موضوع البحث مع تجاهل التشكيل وقد رايت عدة مواضيع حول هذا الامر لكن ايضا خطر في بالي هذا السؤال هل يمكن الاستفادة من هذا الكود في موضوع البحث ام ان هذا الكود يصلح لهذا الطلب فقط وهو عرض النص في الشاشة اما البحث بدون تشكيل فموضوع اخر ؟؟

 

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

4 ساعات مضت, jjafferr said:

شكرا على التوضيح

وشكرا على اهتمامك أستاذ jjafferr
وزيادة في التوضيح : فإن تلوين حركات التشكيل يمكن ان يؤدي نفس الدور المطلوب من إخفاء التشكيل وهو اراحة النظر وجعل القراءة والتصفح اكثر سلاسة في حالة وجود التشكيل في كل حرف كما هو في بعض الكتب
ولان تجربتي مع برنامج اكسس تجربة مستخدم فقط كنت اظن أن إخفاء التشكيل يكون باعطاء امر بانه : اذا وجدت احد هذه الحركات اجعلها غير مرئية
وبنفس الطريقة : اذا وجدت احد هذه الحركات اجعل لونها أحمر
لكن بعد ان تمعنت في الطريقة التي عالج بها الأستاذ
Barna هذه القضية ظهر لي ان الامر ليس كذلك فالفكرة قائمه على وجود مربعي نص مخففين احدهما بالتشكيل والثاني تم حذف التشكيل منه
والمربع الظاهر في الشاشة يأخذ النص من احدهما حسب الطلب
وان لم أكن مخطئا فان كود الأخ
ابو جودي  يقوم على نفس هذا المبدأ ( وهو حذف التشكيل) لكن بطريقة أخرى

ولاحظت أيضا ان طريقة الأستاذ ابو جودي  تفيد في البحث مع تجاهل التشكيل
فقد جربت ان أقوم بالبحث عن عدة كلمات أعرف انها موجودة بالتشكيل بحثت عنها مع اختيار (إخفاء التشكيل) فكان يجدها لكن البحث يكون أبطأ من البحث بالطريقة العادية

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

 

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

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