الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكله لا علم لي بحلها

بدأه Mahmoud1882 في 7 مايو 2013 · 5 رد · 731 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته ,  هذه اول مشاركه لي في المنتدي و اتمني ان اكون عضو نشيط و فعال.. 

انا أعمل الان علي برنامج أجندة تليفونات المهم ان اللغه المستخدمه هي الفيجوال بيسك 6 , و الربط ب الادو , وقاعدة البيانات بالاكسيس  (أول مشروع لي)

المهم ان كله تمام ولكن المشكله العويصه هي ان في شاشه البحث , يتم البحث من خلال رقم تليفون , اسم شخص , او اسم والده او عائلته او من رقم موبيله ,

 

المشكله الرئيسيه هي اني لا احصل علي نتيجه بحث منطقيه , من خلال البحث ... النتائج كلها باسم محمود مثلا .. حتي اذا كنت ابحث عن اسم احمد  او محمد او رقم تليفون مروان , 

 

 

المهم  ان النمط الذي أعمل بها كالاتي داخل شاشه البحث 

 

داخل الموديل Module 

Public cn As New ADODB.Connection

Public rs As New ADODB.Recordset

 

 

اما داخل زرار البحث فقد تم تعريف الاتي

 

 متغير من نوع string يحمل جمله SQL 

Dim strSQL As String

 

ثم  عمل CN , RS 

Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Contacts.mdb;Persist Security Info=False"

Set rs = New ADODB.Recordset 

ثم جمله sql

strSQL = "SELECT * FROM ContactTB WHERE ContactTB.FirstName like '%" & txtFirstName & "%' or ContactTB.MiddleName like '%" & txtMiddleName & "%' or ContactTB.FamilyName like '%" & txtFamilyName & "%' or ContactTB.Telephone like '%" & txtPhone & "%' or

ContactTB.Mobile like '%" & txtMobile & "%' ;"

 

 

rs.Open (strSQL), cn, adOpenDynamic, adLockOptimistic

 

أختبار لقاعدة البيانات لمعرفه هل بها سجلات ام لا

If rs.EOF = True Then
    MsgBox "لايوجد بيانات"
    Exit Sub
End If
يتم وضع النتيجه في الشاشه الرئيسية بمحتوايتها من اسم و نوع و رقم تليفون و عنوان , والخ
frmContact.txtSerialNo.Text = rs("ID")
frmContact.txtFirstName.Text = rs("FirstName")
frmContact.txtMiddleName.Text = rs("MiddleName")
frmContact.txtFamilyName.Text = rs("FamilyName")
frmContact.lstGender.Text = rs("Gender")
frmContact.txtFax.Text = rs("Fax")
frmContact.txtTelephone.Text = rs("Telephone")
frmContact.txtMobile.Text = rs("Mobile")
frmContact.txtAddress.Text = rs("Address")
frmContact.txtemail.Text = rs("email")
frmContact.txtCompanyName.Text = rs("CompanyName")
frmContact.txtWebsite.Text = rs("CompanyWebSite")
frmContact.dtpLastCall.Value = rs("LastTimeCalled")
rs.Close
يفترض ان النتيجه تطلع في الشاشه الرئيسيه بعد ان يتم اغلاق شاشه البحث
Me.Hide
 
المهم ان انا شاكك في جمله ال SQL في حاله الكشف علي textbox  واحد فقط تطلع النتيجه صح ام في حاله وضع اكثر من textbox بعد where  في الجمله بيطلعلي نتائج غريبه جدا...
 
 
#2

حمل المشروع ياخى الكريم

#3

للاسف الشديد البرنامج لم استطع تحميلة في المرفقات لكبر حجمه .. 1 ميجا و 300 كيلو و لذلك فقد رفعته  علي المديافير  

http://www.mediafire.com/download.php?j4ab81j7j1jog48

#4

87 مشاهد ولا رد

#5

السلام عليكم...

 

المشكلة في استعمال العامل OR في جملة SELECT. لا تنس أن OR تعني "أو".

 

إذا كانت لدي البيانات التالية مثلاً:

 

محمد أحمد محمود: 12345.

سالم سليم سلمان: 98765.

هدى الهادي المهدي: 95100.

عامر عمر عمران: 10203.

 

فإن جملة:

SELECT * FROM ContactTB WHERE FirstName LIKE '%محمد%' OR FatherName LIKE '%سليم%' OR FamilyName LIKE '%المهدي%' OR Mobile LIKE '%10203%'

ستعيد لك السجلات الأربعة لأن كل سجل ينطبق عليه شرط من الشروط المربوطة بـ OR.

 

* عليك أن تجعل المستخدم يختار البحث بأحد البيانات فقط: مثلاً بالاسم الأول أو برقم المحمول... إلخ.

 

نرجو الاستفادة و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#6

شكر لك أخي الكريم najy_z  وجزاء الله كل خير,,, ولكن هل جمله الSQL صحيحه 

و إذا كانت صحيحه لماذا في حاله الكشف علي firstname فقط او familyname أو mobilename مثلا يعطي نتيجه صحيحه اما في حاله firstname مع lfamilyname يعطي نتيجه خطأ

 

strSQL = "SELECT * FROM ContactTB

WHERE ContactTB.FirstName like '%" & txtFirstName & "%'

or ContactTB.MiddleName like '%" & txtMiddleName & "%'

or ContactTB.FamilyName like '%" & txtFamilyName & "%'

 

or ContactTB.Telephone like '%" & txtPhone & "%'

or ContactTB.Mobile like '%" & txtMobile& "%' ;"

مواضيع مشابهة