28-06-17, 03:39 AM (آخر تعديل لهذه المشاركة : 28-06-17, 03:42 AM {2} بواسطة waelalmsry75.)
السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك
وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
(28-06-17, 03:39 AM)waelalmsry75 كتب : السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك
وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
(29-06-17, 06:49 PM)حريف برمجة كتب : تشكيل الحروف ،، أي الحروف تقصد ؟
هل الحرف (ا,أ,آ,إ)
أو (و,ؤ)
أو ايش بالضبط .
أخي.. حريف برمجة
شكرا لك على اهتمامك
وأقصد بالتشكيل الفتحة والكسرة والضمة والسكون وهكذا
عندي في قاعدة البيانات نصوص مشكلة
وأبحث عن طريقة تقوم بتجاهل هذا التشكيل أثناء البحث
فمثلا:
كلمة "محمد"
لها صور متعددة في قاعدة البيانات حسب تشكيلها مثل
"مُحَمَّدٌ" "مُحَمَّدٍ" "مُحَمّد" "مُحمّد" ...........
وأريد عندما أبحث عن كلمة "محمد" بدون تشكيل أن يظهر لي جميع هذه الكلمات أيا كان التشكيل.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sql As String = "SELECT * FROM [Table1] WHERE " & RemoveFieldTashkeel("FirstName") & " = @fname"
Using da As New OleDb.OleDbDataAdapter(sql, conn)
da.SelectCommand.Parameters.AddWithValue("@fname", "محمد")
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
End Using
End Sub
Public Shared Function RemoveFieldTashkeel(fieldName As String) As String
fieldName = fieldName.Replace("[", "").Replace("]", "")
fieldName = String.Concat(Enumerable.Repeat("Replace(", 8)) & "[" & fieldName & "]" & String.Concat(Enumerable.Range(1611, 8).Select(Function(x) ",'" & ChrW(x) & "','')"))
Return fieldName
End Function
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim q = Database1DataSet.Table1.Where(Function(x) RemoveTextTashkeel(x.FirstName).Equals("محمد"))
If q.Count > 0 Then
DataGridView1.DataSource = q.CopyToDataTable
End If
End Sub
Public Shared Function RemoveTextTashkeel(txt As String) As String
txt = String.Concat(txt.Split(Enumerable.Range(1611, 8).Select(Function(x) ChrW(x)).ToArray))
Return txt
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sql As String = "SELECT * FROM [Table1] WHERE " & RemoveFieldTashkeel("FirstName") & " = @fname"
Using da As New OleDb.OleDbDataAdapter(sql, conn)
da.SelectCommand.Parameters.AddWithValue("@fname", "محمد")
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
End Using
End Sub
Public Shared Function RemoveFieldTashkeel(fieldName As String) As String
fieldName = fieldName.Replace("[", "").Replace("]", "")
fieldName = String.Concat(Enumerable.Repeat("Replace(", 8)) & "[" & fieldName & "]" & String.Concat(Enumerable.Range(1611, 8).Select(Function(x) ",'" & ChrW(x) & "','')"))
Return fieldName
End Function
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim q = Database1DataSet.Table1.Where(Function(x) RemoveTextTashkeel(x.FirstName).Equals("محمد"))
If q.Count > 0 Then
DataGridView1.DataSource = q.CopyToDataTable
End If
End Sub
Public Shared Function RemoveTextTashkeel(txt As String) As String
txt = String.Concat(txt.Split(Enumerable.Range(1611, 8).Select(Function(x) ChrW(x)).ToArray))
Return txt
End Function
شكرا لك على اهتمامك أخي K39
لكني لم أستطع تنفيذ الكود
فأرفقت مثالا للتطبيق عليه إن تيسر لك ذلك
وجزاك الله خيرا
(28-06-17, 03:39 AM)waelalmsry75 كتب : السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
(28-06-17, 03:39 AM)waelalmsry75 كتب : السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
ما شاء الله عليك أخي K39
بصراحة عمل رائع
ولو تكمل جميلك بمراعاة تجاهل الهمزات والتاء المربوطة وأحرف العلة
بمعنى أن يتم تجاهل الفرق بين أ ، إ ، آ ، ا
وكذلك يتم تجاهل الفرق بين ؤ ، و
وكذلك ئ ، ى ، ي
وكذلك ة ، ه
ويمكنك مشكورا الاطلاع على هذا الموضوع
وجزاك الله خيرا