تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال عن الاكمال التلقائي لصندوق النص
#1
عندي داتا جريد فيو مكونة من 4 اعمدة
عملت العمود الاول صندوق نص
محتاج لما اكتب اي حرف البرنامج يرشح العناصر المشابهة من قاعدة بيانات اكسس
انا عملت الكود ده
PHP كود :
 Private Sub DataGridView1_EditingControlShowing(sender As ObjectAs DataGridViewEditingControlShowingEventArgsHandles DataGridView1.EditingControlShowing
      
        If DataGridView1
.CurrentCell.ColumnIndex 0 AndAlso TypeOf e.Control Is TextBox Then
         
            command 
= New OleDbCommand(sqlConn5)
 
           If Conn5.State ConnectionState.Open Then Conn5.Close()
 
           Conn5.Open()
 
           reader command.ExecuteReader()
 
           Dim autocomp As New AutoCompleteStringCollection
            While reader
.Read
                autocomp
.Add(reader.GetString(0))
 
               '  autocomp.Add(reader("item_name"))
            End While
            reader.Close()

            With DirectCast(e.Control, TextBox)

                .AutoCompleteMode = AutoCompleteMode.SuggestAppend

                .AutoCompleteSource = AutoCompleteSource.CustomSource

                .AutoCompleteCustomSource = autocomp
            End With

        End If
        Conn5.Close()

    End Sub 
واشتغل معايا اول لما اكتب حرف واحد بيضيف كل العناصر اللي بتبدا بالحرف ده
انا عايز اعدل علي الكود
يعني لما اكتب حرف واحد يعرض جميع العناصر التي تحتوي علي الحرف ده
يعمي مش شرط تبدا بالحرف او في الوسط او الاخر
يعني عرض جميع العناصر التي تحتوي علي المقطع المدخل
ولكم جزيل الشكر
الرد }}}
تم الشكر بواسطة:
#2
يوجد نقص بالكود خاص كود الاستعلام
الذى يفترض انك قمت بعملاً لهذا السطر

كود :
Command = New OleDbCommand(Sql, Conn5)

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

كود :
"SELECT * FROM nametable WHERE name LIKE '%" & textbox1.text & "%'"

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:
#3
(18-06-18, 05:41 AM)elgokr كتب :
يوجد نقص بالكود خاص كود الاستعلام
الذى يفترض انك قمت بعملاً لهذا السطر

كود :
Command = New OleDbCommand(Sql, Conn5)

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

كود :
"SELECT * FROM nametable WHERE name LIKE '%" & textbox1.text & "%'"

تحياتى لك
وتمنياتى لك التوفيق

حبيب قلبي
PHP كود :
Dim CnString5 As String "provider=microsoft.jet.oledb.4.0;data source=" Application.StartupPath "\Database1.mdb;user id=admin;jet oledb:database password=01283411310a"
    
Dim Conn5 As New OleDbConnection(CnString5)


    
Dim command As OleDb.OleDbCommand
    Dim adapter 
As OleDbDataAdapter
    Dim reader 
As OleDbDataReader
    Dim dataset1 
As DataSet
    Dim sql 
As String "select item_name from items" 
ده الكود للاتصال بالعمود الخاص باسم العناصر
وعمل فلترة علي حسب المكتوب داخل التكست بوكس بالداتا جريد فيو
هرفع الفورم كامل للتعديل
وشكرا للاهتمام

الكود في المرفقات للتعديل
وشكرا للمتابعة


الملفات المرفقة
.rar   Windowsdgv_test.rar (الحجم : 93.42 ك ب / التحميلات : 39)
الرد }}}
تم الشكر بواسطة:
#4
للاسف كود الاستعلام الذى موجود وهو
كود :
select item_name from items

وهذا الاستعلام لم يقوم باى فلتر 
بل يعرض جميع محتوى جدول items
ليعرض كل نتائج العمود item_name

يجب ان يكون كود الاستعلام بهذه الطريقة
كود :
"SELECT item_name FROM items WHERE item_name LIKE '%" & textbox1.text & "%'"

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:
#5
PHP كود :
"SELECT item_name FROM items WHERE item_name LIKE '%" textbox1.text "%'" 
فين الاقي textbox1.text
انا باكتب داخل العمود الاول للجريد فيو
مش في textbox1
الرد }}}
تم الشكر بواسطة:
#6
يبدو انا فهمت سؤالك بالخطاء من البداية
ولا انتبه انك تريد انشاء 
AutoCompleteStringCollection

فى البداية لا يمكن عمل الفلتر على 
CustomSource

من خلال الحرفي فى منتصف الكلمة او باخرها
وظيفة 
CustomSource

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

بظبط كما لو انت بتكتب اسم
hatem555

فالطبيعي عند كتابة حرف H
لا يقوم باظهار مثلاً Ahmed

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

فهذا هى فكرة الاداء الذى تستخدمها



ايضاً يمكنك استخدام ComboBox
فى اعمدة الـ DataGridView

بحيث تجعل المستخدم اختيار المنتج مباشر بدلاً من الكتابة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم