PDA

View Full Version : سوال: مشکل جستجو در بانک



RamezanBeik
یک شنبه 27 تیر 1389, 12:43 عصر
سلام حدمت تمام برنامه نویسان عزیز




Dim strsql As String
Dim query1 As String


query1 = Textsearch.Text
If combo_Search <> "" Then
If Textsearch.Text <> "" Then
Select Case combo_Search.ListIndex
Case 0
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Id='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Case 1
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Name = '" & query1 & "'"
Rs.Open strsql, CN, adOpenKeyset, adLockOptimistic, adCmdText
Set Grid1.DataSource = Rs
Call changecaption
Case 2
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Lname='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Case 3
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Fname ='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Case 4
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Age ='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Case 5
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Tel ='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Case 6
Set Rs = Nothing
strsql = "SELECT *FROM personal WHERE Sex ='" & query1 & "'"
Rs.Open strsql, CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
End Select


If Grid1.Text = "" Then
MsgBox "", vbOKOnly + vbInformation, ""
Set Rs = Nothing
Rs.Open "Select *from Personal", CN, adOpenStatic, adLockOptimistic
Set Grid1.DataSource = Rs
Call changecaption
Grid1.RightToLeft = True
End If
Else
MsgBox "", vbOKOnly + vbInformation, ""
Textsearch.SetFocus
End If
Else
MsgBox "", vbOKOnly + vbInformation, ""
combo_Search.SetFocus
End If
combo_Search.Text = ""
Textsearch.Text = ""



مشکل این کد جسجو چیه که وقتی پارامتر عددی وارد مکنید جستجو را انجام میدهد اما وقتی رشته وارد می کنم هیچ وا کنشی نشون نمده در ضمن در تالار جستجو کردم کارم راه نیفتاد

M.T.P
یک شنبه 27 تیر 1389, 13:04 عصر
آیتم Combo رو تغییر میدید یا نه؟
اگه تغییر ندید بصورت پیش فرض رو 0 هست یعنی ID و ID هم کل مقادیرش عددی هست.
اگه میخواید اسم و یا فامیل رو جستجو کنید یا غیره... باید آیتم لیست رو مطابق با فیلد مورد جستجو قرار بدید ، در غیر اینصورت همیشه فیلد اول رو جستجو میکنه و فیلد اول غیر از عدد چیزی توش نیست.

RamezanBeik
یک شنبه 27 تیر 1389, 13:35 عصر
آیتم Combo رو تغییر میدید یا نه؟
اگه تغییر ندید بصورت پیش فرض رو 0 هست یعنی ID و ID هم کل مقادیرش عددی هست.
اگه میخواید اسم و یا فامیل رو جستجو کنید یا غیره... باید آیتم لیست رو مطابق با فیلد مورد جستجو قرار بدید ، در غیر اینصورت همیشه فیلد اول رو جستجو میکنه و فیلد اول غیر از عدد چیزی توش نیست.


با تشکر از شما که فوری جواب دادید.بله حتما یکی از آیتم ها را انتخاب می کنم
مگه Combo مثل یک آرایه عمل نمیکنه؟ شماره مثلا" X رو انتخاب می کنه و میاد سوراغ Case ها و بر اساس Case عمل می کنه !اگه ممکنه بیشتر توضیح بدید.البته من این روش رو ADodc کار می کردم جواب میداد حالا شا ید تو Sql فرق کنه!!1

M.T.P
یک شنبه 27 تیر 1389, 20:28 عصر
مگه Combo مثل یک آرایه عمل نمیکنه؟ شماره مثلا" X رو انتخاب می کنه و میاد سوراغ Case ها و بر اساس Case عمل می کنه !

نه دوست عزیز اینطور نیست.
شما وقتی که یک آیتم رو از لیست ComboBox انتخاب کنید کد شما جستجو رو فقط در فیلدی که index اون با index کمبو برابر باشه جستجو میکنه و بقیه رو بی خیال میشه.
الان شما باید به تعداد فیلدهای جدولتون تو کمبوباکس آیتم داشته باشین.(یعنی id ، Name , LName , FName , Age , Tel , Sex ) اگه دارین که آیتم دوم کمبو رو انتخاب کنید چون اونوقت جستجوی شما فیلد (نام) رو جستجو میکنه و یه اسم که تو جدول هست بدین تا پیدا کنه.
اگه میخواین کلمه شما تو کل فیلدها جستجو شه که کلا باید کدتون رو عوض کنید.

محسن شامحمدی
جمعه 01 مرداد 1389, 17:50 عصر
M.T.P جان درست می گن.
البته اینو هم بدونید که sql در زبان vb6 فارسی پشتیبانی نمی کنه یعنی اگر جدولی داشته باشی که در فیلد نام آن کلمه محسن وارد شده باشد و از دستور زیر

select * from afrad where name='محسن'
استفاده کنی دستور درسته ولی هیچی پیدا نمی شه و تنها دلیلش هم فارسی پشتیبانی نکردن sql در vb6 هستش ولی تو vb.net فارسی پشتیبانی می شه

برای روشن شدن موضوع خودتون حتما تست کنید