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

مساعده في البحث والطباعه

مغلق
بدأه alhyaan في 20 ديسمبر 2001 · 10 رد · 1,104 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجوا من اخواني الاعزاء ان تشرحوا لي كيف اقوم بعملية البحث على اكثر من حقل (مثال)لدي قاعدة بيانات موظفين واريد ان اكتب في text1 الخاص بإسم الموظف الاول [محمد] text3 الخاص بالقسم او الادارة [الشئون الادارية] وهكذا مع جميع الحقول التي لدي.وعندما اضغط على cmdSearch. فتظهر لي النتيجة على DBGrid وهي جميع من هم في الشؤون الادارية وتبدا اسمائهم بـ محمد ، علما بأنني استخدم DBGrid لاظهار نتائج الاستعلام وهي ناجحه في حال استخدامي لشرط واحد فقط للاستعلام ...وكيف لي ان اطبع البيانات التي داخل DBGrid وناتجه عن الاستعلام .... وهذا هو كود البحث ارجوا ان تعدلوا عليه

Private Sub CmdSearch_Click()
Data1.RecordSource = "select * from t1 " & _
"where lastname like '" & Text6.Text & "'" & _
"order by lastname"
Data1.Refresh
If Data1.Recordset.NoMatch=true  Then MsgBox "لا توجد بيانات مطابقة"
Me.DBGrid1.Visible = True
DBGrid1.Columns(0).Width = 1500
DBGrid1.Columns(1).Width = 4000
DBGrid1.Columns(2).Width = 4000
Data1.Recordset.MoveFirst
Data1.Recordset.MoveLast
Label1.Caption = "تم العثور على عدد السجلات : " & _
 (Data1.Recordset.RecordCount) & " موظف "
end sub
#2

لقد عملت بعض التجارب على كود البحث وكانت النتيجه ناجحه في حال تم الاستعلام بالاسم الاول + الاداره كما في مثالنا السابق يعني لازم الشرطين يتوفرون في عملية الاستعلام .....لكن اذا تم احدهم فارق فالكود لن يعمل وهذا هو الكود الجديد

Private Sub CmdSearch_Click()

Data1.RecordSource = "select * from t1 " & _
    "where lastname like '" & _
Text8.Text & "' and firstname= '" & Text1 & "'" & _
        "order by fullname"
            Data1.Refresh
                If Data1.Recordset.NoMatch = True Then _ 
MsgBox "لا توجد بيانات مطابقة"
            Me.DBGrid1.Visible = True
            DBGrid1.Columns(0).Width = 1500
            DBGrid1.Columns(1).Width = 4000
            DBGrid1.Columns(2).Width = 4000
        Data1.Recordset.MoveFirst
        Data1.Recordset.MoveLast
        Label1.Caption = "تم العثور على عدد السجلات : " & _ 
(Data1.Recordset.RecordCount) & " موظف "
end sub

فأنا استخدمت and جربت استخدم or فلم انجح

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

(طلب صغير) كيف اضع حقل ترقيم تسلسلي في DBGrid يرقم السجلات الناتجه عن الاستعلام تسلسلياً ولكم مني جزيل الشكر

#3

اين انتم مني .. اعتقد انكم تتمتعون بإجازه لانه لم يسبق لي ان وضعت مشاركه اطلب بها حل ولم يرد علي احدكم خلال 24 ساعه عسى المانع خير إن شاء الله

انا في انتظاركم

#4

جرب

Form1.Data1.RecordSource = "select * from" &_
Faild & " where " & nam & " ='" & Text1 & "' " & _
"AND sab_dat_day>=" & Combo1.Text & "and _
sab_dat_day<=" & Combo4.Text & "and sab_dat_mon=" &_
Combo2.Text & "and sab_dat_mon=" & Combo5.Text &_
"and sab_dat_yer=" & Combo3.Text & "and sab_dat_yer=" &_
Combo6.Text & ";"
#5

الكود لا يعمل حاولت قدر استطاعتي دون جدوى وتظهر لي رسالة خطأ

type mismatch run time error 13

ياليت والله لو تعطيني مثال اوضح او تعطيني ايميلك ادزلك الــSource Code

وماتقصر يامنصور:'( :'( :'( :'( :'( :'(

#6
dim mysql as string
mysql="Select * from t1"
if len(text1)> 0 then   mysql=mysql + " Where fname = ' " & text1 & "'"
if len(text1)>0 and len(text2)>0 then mysql =mysql + " and Lname ='" & text2 "'"
if len(text1)=0 and len(text2)>0 then mysql=mysql + "Where Lname ='" & text2 & "'"
mysql = mysql + " order by fname;"
Data1.RecordSource = mysql

للمعلومية انا لم اجرب هذا الكود

وارجو ان يكون هذا هو مرادك :)

لك تحياتي

musatarek@hotmail.com

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

#7

سوف اجرب هذا الكود وإن شاء الله اطلع بنتيجه ولا يروح تعبكم هدر إن شاء الله

#8

ايميلي ...

Mansurcc@yahoo.com [movel]Mansurcc@yahoo.com[/movel]

#9

لقد وجدت الحل وهاهو اقدمه لكم ولجميع اخواني في المنتدى للعلم والمنفعه ..و سوف ارسله لاخي منصور ليقوم بوضعه

كود البحث بأكثر من حقل وعرض النتيجه على DBGrid

#10

[box-l]Private Sub CmdSearch_Click()

Dim SQLSTR, sql_str As String

'Dim t1 As String

SQLSTR = "SELECT * FROM t1 where"

If (Trim(Text1.Text) = "") And (Trim(Text2.Text) = "") _

And (Trim(Text3.Text) = "") And (Trim(Text4.Text) = "") _

And (Trim(Text5.Text) = "") And (Trim(Text6.Text) = "") _

And (Trim(Text7.Text) = "") And (Trim(Text8.Text) = "") Then

ttl = "خطا"

msg = "يجب أدخال قيمه للاستعلام"

MsgBox msg, 16, ttl

Text1.SetFocus

Exit Sub

End If

If Trim(Text1) <> "" Then

SQLSTR = SQLSTR + " firstname = '" & Trim(Text1) & "' and "

End If

If Trim(Text2) <> "" Then

SQLSTR = SQLSTR + " secname = '" & Trim(Text2) & "' and "

End If

If Trim(Text3) <> "" Then

SQLSTR = SQLSTR + " thname = '" & Trim(Text3) & "' and "

End If

If Trim(Text4) <> "" Then

SQLSTR = SQLSTR + " frthname = '" & Trim(Text4) & "' and "

End If

If Trim(Text5) <> "" Then

SQLSTR = SQLSTR + " finame = '" & Trim(Text5) & "' and "

End If

If Trim(Text6) <> "" Then

SQLSTR = SQLSTR + " lastname = '" & Trim(Text6) & "' and "

End If

If Trim(Text7) <> "" Then

SQLSTR = SQLSTR + " address like '" & Trim(Text7) & "' and "

End If

If Trim(Text8) <> "" Then

SQLSTR = SQLSTR + " phone like '" & Trim(Text8) & "' and "

End If

If Right(SQLSTR, 5) = "and " Then

SQLSTR = Left(SQLSTR, Len(SQLSTR) - 5)

End If

Data1.RecordSource = SQLSTR

Data1.Refresh

If Data1.Recordset.RecordCount = 0 Then

MsgBox "لا توجد بيانات مطابقة"

Me.DBGrid1.Visible = True

DBGrid1.Columns(0).Width = 1500

DBGrid1.Columns(1).Width = 4000

DBGrid1.Columns(2).Width = 4000

DBGrid1.Columns(3).Width = 4000

DBGrid1.Columns(4).Width = 4000

DBGrid1.Columns(5).Width = 4000

Data1.Recordset.MoveFirst

Data1.Recordset.MoveLast

If Data1.Recordset.NoMatch = True Then MsgBox "لا توجد بيانات مطابقة"

Label1.Caption = "تم العثور على عدد السجلات : " & (Data1.Recordset.RecordCount) & " مشترك "

End If

End Sub

#11

شكرا يعطيك العافية ..

;)

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

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