شرح كيفية عمل تكلمة تلقائية للنص فى textbox بأستخدام قاعدة بيانات ...

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

شرح كيفية عمل تكلمة تلقائية للنص فى textbox بأستخدام قاعدة بيانات ...

مُساهمة من طرف أحمد مناع في الأربعاء مايو 30, 2012 2:36 pm

بسم الله الرحمن الرحيم



أخوانى أعضاء و زوار منتدى مصر التقنى ...أهلا وسهلا بكم فى هذا الدرس البيسط و الذى من خلاله سنستطيع عمل تكملة تلقائية للنص فى مربع النص textbox فى حالة وجود قاعدة بيانات ....وقبل البدء فى الشرح دعونى أشكر الزميل طالب العلم الذى كان له الفضل الاول بعد المولى عز وجل فى فى كيفية عمل ذلك ....فهو منذ يومين طرح سؤال بهذا الخصوص لكن لم يجبه أحد فعندما توصل للحل من أحد المواقع الاجنبية بعتلى هذا الكود ....لذلك لن أنسى له هذا الجميل و أشكره من أعماق قلبى .....والان هيا بنا نبدأ :



الخطوة الاولى : نقوم بفتح مشروع قياسى ....ثم نقوم بوضع عدد واحد مربع نص على الفورم بالشكل التالى :







الخطوة الثانية ....نقوم بإدراج موديل كما فى الصورة التالية :





الخطوة الثالثة ....نقوم بكتابة الاكواد التالية فى الموديل :




  • الكود الخاص بتعريف المتغيرات الخاصة بالاتصال بقاعدة البيانات وفت جدولها

الرمز:
Option Explicit
Public conn As New ADODB.Connection
Public rs As New Recordset
Dim bExit As Boolean



تلاحظ أخى الكريم أننا أستخدما الامر Public وليس عن طريق الامر dim كمعتاد وذلك كون نص الاتصال بقاعدة البيانات تم وضعة فى موديل حتى نستطيع أستخدامه على مستوى البرنامج ككل ....ثم بعد ذلك وضعنا المتغير conn لتحمل قاعدة البيانات و المتغير rs لتحمل جدول قاعدة البيانات ...ثم بعد ذلك قمنا بتعريف المتغير bExit على أنه من النوع المنطقى Boolean و سيتم توضحيح أستخدامة فيما بعد




  • سنقوم بعمل أجراء وليكن أسمة (Egy )_و أعذرونى لتكرار كلمة Egy فى درس أقوم بوضعة لانها أختصار Egypit مصر لانها تجرى فى عروقى ذلك يمكن تغير أنت اسم الاجراء كما تحب ...واليكم كود انشاء هذا الاجراء


الرمز:




Public Sub Egy(sTextBox As TextBox, sTable As String, sField As String, Optional sDBPass As String)
On Error Resume Next
Dim lLen As Long, strSQL As String
If bExit = True Or sTextBox = "" Then Exit Sub
lLen = Len(sTextBox)
strSQL = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Data.mdb;Persist Security Info=False"
If conn.State <> 1 Then conn.Open strSQL
strSQL = "SELECT * FROM " & sTable & " WHERE " & sField & " LIKE '" & sTextBox & "%'"
If rs.State = 1 Then rs.Close
rs.Open strSQL, conn, adOpenKeyset, adLockReadOnly
If rs.EOF And rs.BOF Then Exit Sub
sTextBox.Text = rs(sField)
If sTextBox.SelText = "" Then
sTextBox.SelStart = lLen
Else
sTextBox.SelStart = InStr(sTextBox.Text, sTextBox.SelText)
End If
sTextBox.SelLength = Len(sTextBox.Text)
End Sub








شرح الكود :



السطر الاول ...قمنا بأنشاء الاجراء Egy بأستخادم الامر Public Sub ...ثم فتحنا قوسين () ووضعنا فيه بعض المتغيرات التى سوف نستخدمها فى هذا الاجراء ..



السطر الثانى ...أستخدمنا الجملة On Error Resume Next لتلافى أى أخطاء قد تحدث أثناء التشغيل .



السطر الثالث ...قمنا بتعريف متغيرين الاول lLen من نوع Long وذلك للاحتفاظ بعدد حروف النص الموجود ...أما الثانى strSQL من نوع String وذلك لحفظ نتائج البحث فيه .



السطر الرابع ...أستخدمنا جملة الشرط if للخروج من الاجراء فى حالة عدم وجود أى بيانات فى مربع النص .



السطر الخامس ...جعلنا المتغير lLen يقوم بحساب طول النص الموجود فى مربع النص و ذلك عن طريق الدالة Len



السطر السادس ...جعلنا المتغير يحمل نص الاتصال بقاعدة البيانات ...مع وضع مزود الاتصال الخاص بقواعد البيانات أكسس و مسار قاعدة البيانات ...



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

السطر الثامن ....جعلنا المتغير strSQL يساوى جملة أستعلام بمقتضاها يتم البحث فى جدول قاعدة البيانات و أستخلاص النتائج التى تساوى ما هو مكتوب فى مربع النص



السطر التاسع ....جملة شرط لغلق الجدول فى حالة كونه مفتوح



السطر العاشر ...أستخدمنا جملة شرط حيث اذا كان المؤشر فى أول سجل و أخر سجل يتم الخروج من الاجراء





الخطوة الثالثة و الاخيرة ...كتابة الاكواد الخاصة بالفورم



سنقوم بوضع الكود التالى فى حدث Change لمربع النص :



الرمز:


Egy Text1, "Country", "Name"




قمنا بالاتصال بالاجراء Egy ثم وضعنا أسم مربع النص الذى سكتب فى الكملة وتم أكمالها تلقائيا وفى مثالثا هذا text1 ثم بعد ذلك وضعنا باراميتر للحصول على بيانات قاعدة البيانات ..حيث Country هو أسم الجدول المراد التكملة منه ...أما Name هو أسم الحقل المراد ايضا البحث فية .....و اليكم المشرع فى المرفقات



و النتجية كما فى الصورة التالية :




المرفقات
التكملة اللتقائية.zip لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات.(21 Ko) عدد مرات التنزيل 70


عدل سابقا من قبل أحمد مناع في الأربعاء مايو 30, 2012 3:20 pm عدل 1 مرات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: شرح كيفية عمل تكلمة تلقائية للنص فى textbox بأستخدام قاعدة بيانات ...

مُساهمة من طرف khasd في الأربعاء مايو 30, 2012 2:44 pm

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


عدل سابقا من قبل طالب العلم في الأربعاء مايو 30, 2012 2:58 pm عدل 3 مرات

khasd
....
....

تاريخ التسجيل : 23/05/2012
المساهمات : 57
النقاط : 102
التقيم : 1
الدولة : المغرب
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: شرح كيفية عمل تكلمة تلقائية للنص فى textbox بأستخدام قاعدة بيانات ...

مُساهمة من طرف أحمد مناع في الأربعاء مايو 30, 2012 2:53 pm

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



والله يا أخى الكريم لو لا أنت ما كنا قد أستطعنا عمل ذلك ....فلك منى جزيل الشكر ومن أعماق قلبى ؟؟؟؟؟؟؟؟؟

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 810
النقاط : 1479
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: شرح كيفية عمل تكلمة تلقائية للنص فى textbox بأستخدام قاعدة بيانات ...

مُساهمة من طرف goldenman100 في الخميس أغسطس 09, 2012 12:50 pm



جزاك الله كل خير على هذا الشرح

لدي سؤال
جربت هذا الكود لعمل تكملة تلقائية داخل Combobox ولكن لم تظهر اي نتائج

فما هو الكود الذي يمكن ان استخدمه لعمل التكملة داخل Combobox

goldenman100
عضو شرفى
عضو شرفى

تاريخ التسجيل : 09/08/2012
المساهمات : 27
النقاط : 46
التقيم : 1
الدولة : مصر
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى