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

كيف أظهر نتائج البحث حسب الشروط المحددة من مستخدم

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

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

لدي 5 خيارات للبحث كيف أظهر نتائج البحث على حسب خيارات البحث التي يختارها المستخدم، يعني مثلا لو استخدم البحث من خلال الاسم والرقم فقط -> تظهر النتائج المطلوبة ،او استخدم البحث من خلال التاريخ والقسم ، ولو بحث بالاسم والقسم ، وهكذا...

هل يعقل أن يتم استخدام if مع كل حالة بحث منفصلة ومزدوجة وخلافه ؟؟؟!!!

#2

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

نعم يمكنك ذلك باستخدام جملة IF

If Check1.Value Then
MsgBox "لقد اخترت الاسم والرقم فقط"
ElseIf Check2.Value Then
MsgBox "لقد اخترت التاريخ والقسم"
ElseIf Check3.Value Then
MsgBox "لقد اخترت الاسم والقسم"
Else
MsgBox "يجب اختيار قسم واحد"
End If

460.gif

#3

شكرا جزيلا على الرد

أنا أعلم أنه يمكنني ذلك باستخدام if ولكن ما أقصده هو أن المستخدم قد يختار خيار واحد او اثنان او اكثر بما انها 5 خيارات وهذه الخيارات تختلف فلا يمكن تحديدها يعني من الممكن ان يختار المستخدم الخيار الاول والثاني ، او الخيار الثالث والخامس ، او الخيار الاول والرابع والخامس او الخيار الثاني فقط... وهكذا

فهل يمكنني اظهار ناتج البحث بطريقة اخرى لأنه باستخدام if سأكون مضطره لتحديد ما اختاره المستخدم وفي هذه الحالة ستكون جمل الشرط كثيرة جدا.

ارجو ان تكون فهمت قصدي

#4

لا أعلم طريقة أفضل من ذلك

إذا كان احد الاخوان او الاخوات عنده طريقة فلا يبخل بها ..

460.gif

#5

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

يوجد لدي فكرة ولكن لا يوجد لدي وقت !!

الفكرة تكمن في انشاء متغير يحمل اسم الحقل المطلوب ويضيفه الى جملة الاستعلام !! نعم الى جملة الاستعلام ومعه في ذلك معيار البحث =,<.> او Like وغيرها ومع قيمه الشرط ................................. اعلم انها ليست واضحه ولكن اعذروني والله لايوجد لدي وقت

#6

ممكن ذلك بواسطة if وبالطريقة التالية :

لو عندنا الأربعة الاقسام كالتالي :

القسم الأول : الرقم

الثاني = الاسم

الثالث : التاريخ

الرابع : القسم

ففي هذه الحالة سوف تحتاج الى عدد 4 تكست بكس لكتابة مواضيع البحث بها وهي كالتالي

text1 = الرقم

text2= الاسم

text3 = التاريخ

text4= القسم

يجب أيضاً أن تضع أربعة Chick box بجانب كل خيار وعند اخياراها تعطي أمر إظهار التكيست وبالتالي سيكون الكود كالتالي :

Dim SQL as string
Sql= "select * from MyTable"
'إذا تم اخيار الخيار الأول فضع شرط البحث للرقم
if chickbox1 =true  then 
'هنا شرط البحث بالرقم
       sql= sql & "where field_No =" & val(text1.text) & "
end if
'وإذا كان البحث باسم تم اختياره أيضاً 
if chickbox2=true then 
'هنا يتحقق من أن البحث بالرقم تم أخياره أم لا فإذا تم اخياره فيكمل شرط البحث
    if chickbox1=true then 
       sql=sql & "or field_name='" & text2.text & "'"
     else
'وإذا لم يتم اختيار البحث بالرقم فضع شرط البحث للجملة
        sql=sql & "where field_name='" & text2.text & "'"
    end if  
end if
'هنا شرط البحث بالتاريخ   
if chickbox3=true
 'إذا تم اختيار احد البحثين أعلاه فيتم إضافة  شرط البحث بالتاريخ
     if chickbox1 =true or chickbox2 = true then 
         sql = sql & " OR field_Date = "# & CDate(text3.text) & #""
    else
'وإن لم يتم اخيار أحد البحثين فيتم إضافة شرط البحث بالتاريخ فقط 
        sql = sql & " Where field_Date = "# & CDate(text3.text) & #""
   end if 
end if

' إذا تم اخيار شرط البحث بالقسم
if chickbox4=true then 
' هنا يبحث إذا تم اختيار أحد أركان البحث السابقة أم لا 
      if (chickbox1 =true or chickbox2=true ) or chickbox3=true then 
'إن تحقق أحد الإختيارات السابقة فيقوم بتعديل جملة البحث 
           SQL=SQL & " OR field_Section= "' & str(Text4.text) & "'"
'
     else
' وإن لم يتحقق أحد الشروط السابقة فيقوم هنا بالبحث فقط بالقسم 
          SQL=SQL & " Where field_Section= "' & str(Text4.text) & "'"
     end if
'
end if
' واخياراً نسند الجدول على جملة الاس كيو إل المستخلصة من الشروط أعلاه 
RS.open Sql

ملاحظة : هذا الكود يقوم بالبحث بتحقق أحد الأركان فقط يعني أنه يقوم بالحث عن الرقم أو الأسم أي يمكن أيظهر الأرقام التي تناسب كذا والأسماء التي تناسب كذا

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#7

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

Dim SQL as string

Sql= "select * from MyTable"

if chickbox1 =true  then 
      sql= sql & "where field_No =" & val(text1.text) & "
end if

if chickbox2=true then 
   if chickbox1=true then 
      sql=sql & "or field_name='" & text2.text & "'"
    else
       sql=sql & "where field_name='" & text2.text & "'"
   end if  
end if

if chickbox3=true
    if chickbox1 =true or chickbox2 = true then 
        sql = sql & " OR field_Date = "# & CDate(text3.text) & #""
   else
       sql = sql & " Where field_Date = "# & CDate(text3.text) & #""
  end if 
end if

if chickbox4=true then 
     if (chickbox1 =true or chickbox2=true ) or chickbox3=true then 
          SQL=SQL & " OR field_Section= "' & str(Text4.text) & "'"
    else
         SQL=SQL & " Where field_Section= "' & str(Text4.text) & "'"
    end if
end if

RS.open Sql

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#8

السلام عليكم

اخي العماني انت تؤيد ما ذكرته انا للاخت دينا

460.gif

#9

نعم أخي المتمير أنا أؤيد ما جاء به ردك ولكن كما قالت الأخت تريد أن يكون الاخيتار عشوائياً أي من الاحتمال أن يختار أكثر من واحد فما عليها إلا أن تبدأ من أول خيار لتقوم بفحصه هل تم اخيتاره ام لا والثاني وهكذا

وبالطريقة السابقة قمت بعمل اختيارات لأربع خانات بحث ويمكنك تداولها مع السابق

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#10

أخي omani شكرا على الرد ولكن عند التشغيل تظهر رسالة الخطأ

"خطأ في بناء الجملة في جزء من عبارة FROM "

ويقوم بتحديد الخطأ في عبارة RS.open Sql

فقمت بتغييرها إلى

rs.Open sql, db, adOpenDynamic, adLockPessimistic

ولكن لازالت نفس الرسالة تظهر لي؟؟؟؟؟؟

معذرة على كثرة الأسئلة ولكنني أحتاج إلى المساعده في فهم بعض الأمور

اقتباس
sql=sql & "or field_name='" & text2.text & "'"

لماذا استخدمت or ولم تستخدمand ؟؟ اذا كان سيتحقق من وجود شرطين او اكثر اليس من المفترض ان يستخدم and؟؟

تم تعديل هذه المشاركة بواسطة Dena22 في 8 يوليو 2005 في 21:29

#11

جربي وضع اسم الجدول داخل اقواس [ ]

460.gif

#12

أختي الكريمة بالنسبة لاستخدامي OR ولم أستخدم And فهو لضمان تحقق أحد الشرطين أما استخدام and فهنا يجب أن يتحقق الشرطان معاً

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

تحياتي

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#13
Dim S_Name, S_No, S_Address, S_Age, S_Email As String
If CheckBox1 = True Then S_Name = text1.Text Else S_Name = "*"
If CheckBox2 = True Then S_No = text2.Text Else S_No = "*"
If CheckBox3 = True Then S_Address = text3.Text Else S_Address = "*"
If CheckBox4 = True Then S_Age = text4.Text Else S_Age = "*"
If CheckBox5 = True Then S_Email = text4.Text Else S_Email = "*"

SQL = "select * from MyTable" & _
" where field_Name Like " & S_Name & _
" and field_No Like" & S_No & _
" and field_Address Like " & S_Address & _
" and field_Age Like " & S_Age & _
" and field_Email Like " & S_Email

ارجو ان يفى بالغرض

كن كالنخيل عن الأحقاد مرتفعا .. يرمى بصخر فيرمى أطيب الثمر

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…