السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك
وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
هل جربت استخدام معيار Like في جملة الاستعلام؟
تشكيل الحروف ،، أي الحروف تقصد ؟
هل الحرف (ا,أ,آ,إ)
أو (و,ؤ)
أو ايش بالضبط .
(29-06-17, 06:49 PM)حريف برمجة كتب : [ -> ]تشكيل الحروف ،، أي الحروف تقصد ؟
هل الحرف (ا,أ,آ,إ)
أو (و,ؤ)
أو ايش بالضبط .
أخي.. حريف برمجة
شكرا لك على اهتمامك
وأقصد بالتشكيل الفتحة والكسرة والضمة والسكون وهكذا
عندي في قاعدة البيانات نصوص مشكلة
وأبحث عن طريقة تقوم بتجاهل هذا التشكيل أثناء البحث
فمثلا:
كلمة "محمد"
لها صور متعددة في قاعدة البيانات حسب تشكيلها مثل
"مُحَمَّدٌ" "مُحَمَّدٍ" "مُحَمّد" "مُحمّد" ...........
وأريد عندما أبحث عن كلمة "محمد" بدون تشكيل أن يظهر لي جميع هذه الكلمات أيا كان التشكيل.
(30-06-17, 01:19 AM)K39 كتب : [ -> ]
كود :
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
لكني لم أستطع تنفيذ الكود
فأرفقت مثالا للتطبيق عليه إن تيسر لك ذلك
وجزاك الله خيرا
(30-06-17, 11:29 AM)K39 كتب : [ -> ] (28-06-17, 03:39 AM)waelalmsry75 كتب : [ -> ]السلام عليكم
الإخوة الكرام
قرأت مواضيع متعددة عن تجاهل التشكيل أثناء البحث في قاعدة بيانات Access وأن ذلك متعذر ولجوء البعض إلى طرق للوصول إلى المطلوب
لكني لم أصل إلى نتيجة مرضية
وأرجو في هذا الموضوع بيان الطريقة المثلى لذلك
وأن يكون بطريقة مبسطة لأنني ما زلت في بداية الطريق
وجزاكم الله خيرا
========
قاعدة البيانات Access 2010
vb 2012
ما شاء الله عليك أخي K39
بصراحة عمل رائع
ولو تكمل جميلك بمراعاة تجاهل الهمزات والتاء المربوطة وأحرف العلة
بمعنى أن يتم تجاهل الفرق بين أ ، إ ، آ ، ا
وكذلك يتم تجاهل الفرق بين ؤ ، و
وكذلك ئ ، ى ، ي
وكذلك ة ، ه
ويمكنك مشكورا الاطلاع على هذا الموضوع
وجزاك الله خيرا
http://arabteam2000-forum.com/index.php?...D8%AA-sql/