منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] الإكمال التلقائي فى التيكست بوكس - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : [سؤال] الإكمال التلقائي فى التيكست بوكس (/showthread.php?tid=284)



الإكمال التلقائي فى التيكست بوكس - Mido9 - 26-09-13

السلام عليكم ورحمة الله وبركاتة

اخواني الافضال انا الان لدي تيكست بوكس اريد عمل Auto Complete له مع قاعده بيانات اكسس

ياريت لو تدلوني على الطريقه

مع العلم إن اسم الجدول t_factor  و اسم الحقل الى اريد الاكمال منه factor_name

بالله عليكم تساعدوني لاني محتاج الحل

وشكرا لكم


RE: الإكمال التلقائي فى التيكست بوكس - تركي قرمزلي - 26-09-13

السلام عليكم و رحمة الله و بركاته
إليك الكود
كود :
        TextBox1.AutoCompleteMode = AutoCompleteMode.Append
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        For Each r as datarow In t_factor.Rows
            TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))
        Next

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


RE: الإكمال التلقائي فى التيكست بوكس - Mido9 - 27-09-13

(26-09-13, 11:00 PM)-تركي قرمزلي كتب : السلام عليكم و رحمة الله و بركاته
إليك الكود
كود :
        TextBox1.AutoCompleteMode = AutoCompleteMode.Append
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        For Each r as datarow In t_factor.Rows
            TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))
        Next

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



جزاك الله خيرا اخي الفاضل على المساعده بارك الله فك

ولكن انا اسف اعزرني فانا لازلت مبتدئ حتى الان 

انا وضعت الكود الكامل بهذا الشكل


كود :
  Dim saveinto2 As New OleDb.OleDbCommand
        Dim constr2 As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Application.StartupPath & "\db.mdb"
        Dim conn2 As New OleDb.OleDbConnection(constr2)
        Dim DataSet12 As New DataSet
        Dim SQLstr2 As String
        SQLstr2 = "SELECT * From t_factor "
        conn2.Open()
        Dim dataadapter12 As New OleDb.OleDbDataAdapter(SQLstr2, conn2)
        
        TextBox1.AutoCompleteMode = AutoCompleteMode.Append
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        For Each r As DataRow In t_factor.Rows
            TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))
        Next


ولكن لم يعمل وظهر لي هذا الخطأ

 
كود :
't_factor' is not declared. It may be inaccessible due to its protection level. 



ياريت بالله عليك ،، فضلاً لا أمراً تساعدني فى الكود كله لإظهار النتيجه المطلوبه

بارك الله فيك


RE: الإكمال التلقائي فى التيكست بوكس - تركي قرمزلي - 27-09-13

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

Dim dataadapter12 As New OleDb.OleDbDataAdapter(SQLstr2, conn2)


أضف السطرين التاليين
كود :
Dim t_Factor as new datatable
dataadapter12.fill(T_Factor)

بالتوفيق إن شاء الله تعالى

السلام عليكم و رحمة الله و بركاته


RE: الإكمال التلقائي فى التيكست بوكس - Mido9 - 27-09-13

(27-09-13, 02:24 PM)تركي قرمزلي كتب : السلام عليكم و رحمة الله و بركاته
بعد السطر

Dim dataadapter12 As New OleDb.OleDbDataAdapter(SQLstr2, conn2)


أضف السطرين التاليين
كود :
Dim t_Factor as new datatable
dataadapter12.fill(T_Factor)

بالتوفيق إن شاء الله تعالى

السلام عليكم و رحمة الله و بركاته


بارك الله فيك على المساعده ,,

بعد التجربة 

إختفى الخطأ السابق ,, ولكن عندما قمت بعمل عرض للبرنامج و جيت اجرب النتيجه 

ظهر لي الخطأ التالي


كود :
Conversion from type 'DBNull' to type 'String' is not valid.

فى السطر التالي


كود :
  TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))



مع العلم أن هذا هو الكود الكامل بعد التعديل هو الاتي


   
كود :
    Dim saveinto2 As New OleDb.OleDbCommand
        Dim constr2 As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Application.StartupPath & "\db.mdb"
        Dim conn2 As New OleDb.OleDbConnection(constr2)
        Dim DataSet12 As New DataSet
        Dim SQLstr2 As String
        SQLstr2 = "SELECT * From t_factor "
        conn2.Open()
        Dim dataadapter12 As New OleDb.OleDbDataAdapter(SQLstr2, conn2)
        Dim t_Factor As New DataTable
        dataadapter12.Fill(t_Factor)


        TextBox1.AutoCompleteMode = AutoCompleteMode.Append
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        For Each r As DataRow In t_factor.Rows
            TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))
        Next



انا اسف و الله ،، انا عارف إني غلبتك وتعبتك معي انا بجد اسف Sad


RE: الإكمال التلقائي فى التيكست بوكس - Abdullah0991 - 27-09-13

المشكلة هي وجود حقول فارغة بالعمود factor_name .. جرب استبدال السطر الذي فيه الخطأ بالسطر التالي:

كود :
If Not IsDBNull(r("factor_name")) Then TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))

اعتذر لأني لم اجرب الكود ,, ولكن اظن ان هذا الكود يحل المشكلة Smile

تحياتي


RE: الإكمال التلقائي فى التيكست بوكس - Mido9 - 27-09-13

(27-09-13, 07:47 PM)Abdullah0991 كتب : المشكلة هي وجود حقول فارغة بالعمود factor_name .. جرب استبدال السطر الذي فيه الخطأ بالسطر التالي:

كود :
If Not IsDBNull(r("factor_name")) Then TextBox1.AutoCompleteCustomSource.Add(r("factor_name"))

اعتذر لأني لم اجرب الكود ,, ولكن اظن ان هذا الكود يحل المشكلة Smile

تحياتي
جزاك الله خيرا على المساعده ،، بارك الله فيك 

فعلاً المشكة إتحلت بفضل الله ثم بفضلك

ولكن إستفسار بسيط ( غير مهم )

عند تجربة الكود ظهر تمام ولكن النص يتجه لليسار !

كما بالصوره

[attachment=193]

هل توجد طريقة لجعله يذهب لليمين ؟ حتى يكون افضل شكلاً ؟


RE: الإكمال التلقائي فى التيكست بوكس - Abdullah0991 - 28-09-13

تأكد ان textbox خاصيته مضبوطة بهذا الشكل: TextAlign=Left و RightToLeft=True


مع اني اتوقع ان مشكلتك تتعلق بلغة النظام فقد يكون السبب ان لغة النظام لديك اجنبية


RE: الإكمال التلقائي فى التيكست بوكس - Mido9 - 28-09-13

(28-09-13, 04:18 PM)Abdullah0991 كتب : تأكد ان textbox خاصيته مضبوطة بهذا الشكل: TextAlign=Left و RightToLeft=True


مع اني اتوقع ان مشكلتك تتعلق بلغة النظام فقد يكون السبب ان لغة النظام لديك اجنبية

بارك الله فيك اخي الفاضل على اهتمامك لطلبي 

تم التأكد من الإعدادات ولم تحل

ولكن يبدو انها فعلاً من النظام نفسه

عموماً ،، لا تتعب نفسك الموضوع مش مهم اوي بالنسبالي حاليا

يكفي إنك حليت لي المشكلة الكبرى Smile

ربنا يجزيك كل خير يارب