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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم اسئلة vb6.0 المتعلقة بقواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=72)
+--- الموضوع : [سؤال] سؤال في البحث بإستخدام Combo (/showthread.php?tid=3057)



سؤال في البحث بإستخدام Combo - allayl - 31-05-14

SmileSmile السلام عليكم و رحمة الله SmileSmile:

WinkWinkWink امل المساعده WinkWinkWink

في البحث بإستخدام Combo

ملاحظة البحث و عرض النتائج ليس الاكمال التلقائي

ملاحظة الربط عن طريق الاداة Adodc

ShyShyShy امل المساعده و الملف مرفق



RE: سؤال في البحث بإستخدام Combo - vbnet - 10-06-14

(31-05-14, 04:51 PM)allayl كتب : ...
...البحث بإستخدام Combo
ملاحظة البحث و عرض النتائج ليس الاكمال التلقائي
...

(22-05-14, 01:56 AM)allayl كتب : ...
المطلوب : عند كاتبة اول حرف يظهر النتائج المشابه فقط
يعني كتب حرف م يظهر لي محمد و ماجد فقط
...

.....

منقول

كود :
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Dim con As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset

Dim isBusy As Boolean '' متغير للحالة مشغولة أو لا


Private Sub Form_Load()
    Call arabic ''تحويل لوحة المفاتيح للغة العربية
End Sub


Private Sub Combo1_Change()
    ' في حالة لا يوجد نص للبحث عنه
    If Trim$(Combo1.Text) = "" Then
        Combo1.Clear
        Call SendMessage(Combo1.hwnd, &H14F, False, 0) '' غلق القائمة إن كانت مفتوحة
        Exit Sub
    End If
    '-------------------------------
    If isBusy Then Exit Sub '' أخرج من هنا إذا كانت الحالة مشغولة
    isBusy = True '' الحالة مشغولة
    '-------------------------------
    Dim txt As String
    txt = Combo1.Text '' الإحتفاظ بالنص المدخل
    '-------------------------------
    
    ' تجهيز إعداد الإتصال
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;"
    con.CursorLocation = adUseClient
    
    '-------------------------------
    con.Open ' فتح الإتصال
    '-------------------------------
    
    ' تنفيذ الاستعلام
    rst.Open "Select Distinct * From [allayl] WHERE [name] LIKE '" & Trim(Combo1.Text) & "%' ", con, adOpenStatic, adLockOptimistic
    
    Combo1.Clear '' مسح محتوى الكومبو استعدادا لملئه بالجديد
    Do Until rst.EOF '' إعمل حلقة تكرار طالما لم تنتهي الأسطر
        Combo1.AddItem rst.Fields("name").Value
        rst.MoveNext '' تحرك للتالي
    Loop
    
    '-------------------------------
    con.Close ' غلق الإتصال
    '-------------------------------
    
    Call SendMessage(Combo1.hwnd, &H14F, True, 0) '' فتح القائمة لعرض النتائج

    '-------------------------------
    Combo1.Text = txt '' إعادة النص المدخل
    Combo1.SelStart = Len(Combo1.Text) '' ضبط موقع المؤشر
    '-------------------------------
    isBusy = False '' الحالة غير مشغولة
    '-------------------------------
End Sub

Public Sub arabic() '' تحويل لوحة المفاتيح للغة العربية
    Call LoadKeyboardLayout("00000401", 1)
End Sub
Public Sub english() '' تحويل لوحة المفاتيح للغة الإنجليزية
    Call LoadKeyboardLayout("00000409", 1)
End Sub

.....


RE: سؤال في البحث بإستخدام Combo - allayl - 14-06-14

شكرآ لك