نقل قول: جستجو در بانک اطلاعاتی
در کد زیر فرض بر این هست که:
Rs رکوردست شما.
Users جدول بانک.
FName فیلد مورد جستجو.
در واقع علامت ' تعیین میکند که اول عبارت مورد جستجو باید دقیقا کلمه داخل تکس باکس باشه و عبارت * در آخر کد یعنی اینکه مابقی عبارت هرچی باشه مهم نیست.
If Text1.Text = vbNullString Then Exit Sub
If Rs.State = 1 Then Rs.Close
Rs.open "Select * From Users Where FName Like '" & Text1.Text & "*'"
نقل قول: جستجو در بانک اطلاعاتی
ممنون دوست عزیز
در صورتی که بخوام از یه تاریخ تا یه تاریخ رو مورد جستجو قرار بدم چطوریه؟
در ضمن اون rs.sate=1 به چه معنیه؟
ممنون
نقل قول: جستجو در بانک اطلاعاتی
نحوه انتخاب رکوردهای بین دو تاریخ:
Dim DateFrom As String
Dim DateTo As String
DateFrom = "1389/01/01"
DateTo = "1389/06/01"
If Rs.State = 1 Then Rs.Close
Rs.Open "Select * From Tabel Where Date > " & DateFrom & " And Date < " & DateTo
نقل قول:
در ضمن اون rs.sate=1 به چه معنیه؟
چون در Adodb در هربار باز کردن رکوردست باید قبلا بسته باشه، کد بالا چک میکنه اگه رکوردست باز بود اون رو میبنده.
نقل قول: جستجو در بانک اطلاعاتی
سلام چرا شما از بیتوین استفاده نمی کنین
نقل قول: جستجو در بانک اطلاعاتی
سلام
من يك بانك داده اكسس دارم كه حجمش زياد چه جوري ميتونم با سرعت زياد در بانك جستجو كنم
طريقه ايندكس كردن چه جوريه و كارش چيه
باتشكر
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
M.T.P
در کد زیر فرض بر این هست که:
Rs رکوردست شما.
Users جدول بانک.
FName فیلد مورد جستجو.
در واقع علامت ' تعیین میکند که اول عبارت مورد جستجو باید دقیقا کلمه داخل تکس باکس باشه و عبارت * در آخر کد یعنی اینکه مابقی عبارت هرچی باشه مهم نیست.
If Text1.Text = vbNullString Then Exit Sub
If Rs.State = 1 Then Rs.Close
Rs.open "Select * From Users Where FName Like '" & Text1.Text & "*"
rs رو برابر چه خصوصیتی میکنیم ؟
و چیزی که من میخوام اینه:
1 کامبوباکس داریم، که با وارد کردن حروف یا رقم طبقه یک فیلد از جدولم فیلتر بشه درعانه واحد، تا وقتی که به چیزه دلخواهمون برسیم.
مثل :
___________
| ^ | فروشن |
----------------
| فروشنده 1 |
--------------
| فروشنده 2 |
-------------
تقریبا این شکلی !!!
با نوشتنه فروش لیست با فیلتر کردن همه ی فیلده رکوردها که اولش فروش هست رو برام بیاره .
اگه ممکنه مثال بزنید.
با تشکر
نقل قول: جستجو در بانک اطلاعاتی
متغیر Rs رکوردستی از نوع Adodb.Recordset هست. برای مواقعی که نمیخوایم از کنترل Adodc استفاده کنیم.
Dim Rs As New ADODB.Recordset
شما اگه از Adodc استفاده میکنین کدتون اینطوری میشه:
If Combo1.Text = vbNullString Then Exit Sub
Adodc1.RecordSource = "Select * From Users Where FName Like '" & Combo1.Text & "*"
یا اینکه از فیلتر استفاده کنید:
Adodc1.Filter = "FName Like '" & Combo1.Text & "*"
که در حالت فیلتر سرعت بیشتر هست ( به شرط اینکه قبل از دستور فیلتر کل جدول تو RecordSource ریخته شده باشد)
نقل قول: جستجو در بانک اطلاعاتی
دوسته عزیز M.T.P ممنون از راهنماییت، همیشه اولین کسی هستی که من رو به جواب میرسونی :چشمک: .
البته کمی تو نوشتن کد مشکل داشت که ، کاملش میکنم :
If Combo1.Text = vbNullString Then Exit Sub
Adodc1.RecordSource = "Select * From Users Where FName Like '" & Combo1.Text & "*"
Adodc1.RecordSource = "Select * From Users Where FName Like '" & Combo1.Text & "%'"
کدی که شما استفاده کردین(*) فکر کنم برای FoxPro باشه .
که معادلش تو vb میشه (%) .
موفق باشی، بازم ممنون.
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
کدی که شما استفاده کردین(*) فکر کنم برای FoxPro باشه .
که معادلش تو vb میشه (%) .
نه مربوط به Foxpro نیست یک استاندارد در دستورات SQL هست.
ببینید:
در کد زیر ما میخوایم اسامی یاقت شده ، عبارت اولشون دقیقا مثل عبارت داخل Combo باشه ، یعنی در کد زیر اگه شما Ali رو تایپ کنید برای شما Ali و Ali Reza و Ali Mohammad یا هر اسم دیگه ای که اولش Ali باشه رو پیدا میکنه.( که بیشتر در جستجوی دیکشنری استفاده میشه)
"FName Like '" & Combo1.Text & "*'"
در کد زیر عبارت یافت شده دقیقا عبارت تایپ شده خواهد بود:
"FName Like '" & Combo1.Text & "'"
در کد زیر عبارت یافت شده ممکن هست در هر جای جمله یا متن موجود در رکورد باشه یعنی اگه شما کلمه Ali تایپ کنید عبارت هایی مثل:
Ali یا Ali Reza یا Amir Ali یا AhmadAli Karimi و کلا رکوردهایی که به هر شکلی توش کلمه Ali باشه مدنظر قرار میگیره.
"FName Like *" & Combo1.Text & "*"
نقل قول: جستجو در بانک اطلاعاتی
همه مطالبتون درسته، ولی نمیدونم کدی که من بالا نوشتم، تو vb جواب داد، ولی کد شما رو میزنم جواب نمیده ولی میدونم درسته !!!
من خودم هم میدونم اینشکلیه، ولی شما برید تست کنید با * و % .
و یک نکته دیگه بعد از * یک کوتیشن تکی(کاما یا همچین چیزی (')) بود اسمش نمیدونم یادم رفته :متفکر: !!!
ممنون، شما هم تست کنید، تو sql * جواب میده فکر کنم، اگه جواب داد تو vb بگین مشکل کد من چیه !!!
On Error Resume Next
ado.CursorLocation = adUseClient
If txtFind = "" Then
ado.RecordSource = "SELECT * FROM T_Froshandegan ORDER BY id_ff"
Else
ado.RecordSource = "Select * From T_Froshandegan Where lname_ff LIKE '" & txtFind & "%'"
End If
ado.Refresh
dg.Refresh
همین کد جواب داد !!!
اینم از داخله msdn :
LIKE PredicateRemarks
In a LIKE search pattern, to use the percent sign ( % ), underscore ( _ ),and left square bracket ( [ ) as literal characters rather than as wildcard characters, surround the characters with square brackets. The right square bracket ( ] ) matches itself unless preceded by a left square bracket. The range character ( - ) matches itself unless it is inside square brackets and preceded and followed by a single character.
The following table shows patterns that illustrate using wildcard characters as literal characters.
Pattern Meaning LIKE 'd%' d followed by any string of 0 or more characters LIKE 'd[%]' d% LIKE '_n' an, in, on, etc. LIKE '[_]n' _n LIKE '[a-cdf]' a, b, c, d, or f LIKE '[-acdf]' -, a, c, d, or f LIKE '[[]' [ LIKE ']' ] LIKE '[ab]cd]e' acd]e, or bcd]e
Examples
The following example returns rows consisting of the DocAuthor, DocTitle, and size properties for all files under the virtual roots "/contracts" and "/legal", written by authors whose names are "Smith", "Smyth", "Smythe", and so on, where the comment field of those documents does not contain words starting with "real", such as "realty" or "realtor".
SELECT DocAuthor, DocTitle, size
FROM SCOPE('"/contracts", "/legal"')
WHERE DocAuthor LIKE 'SM_TH%'
AND DocComments NOT LIKE 'REAL%'
نقل قول: جستجو در بانک اطلاعاتی
كد صحيح:
ado.RecordSource = "Select * From T_Froshandegan Where lname_ff LIKE '%" & txtFind & "%'"
نقل قول: جستجو در بانک اطلاعاتی
بله درسته کد من ناقص بود ، کاراکتر ( ' ) رو بعد از * نزاشتم. :خجالت:
در واقع % همون * هست هیچ فرقی ندارن.
این کد رو تست کنید:
ado.RecordSource = "Select * From T_Froshandegan Where lname_ff LIKE '" & txtFind & "*'"
پست 10 ویرایش شد.
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
در واقع % همون * هست هیچ فرقی ندارن.
این کد رو تست کنید:
ado.RecordSource = "Select * From T_Froshandegan Where lname_ff LIKE '" & txtFind & "*'"
این کد رو تست کردم جواب نداد ! .
% با * فرقی میکنه :لبخندساده: .
تو vb % کار میکنه، تست شده است.
موفق باشید.
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
mds_boy
این کد رو تست کردم جواب نداد ! .
% با * فرقی میکنه :لبخندساده: .
تو vb % کار میکنه، تست شده است.
موفق باشید.
تو دیکشنری از همین روش استفاده کردم:
Sub Srch رو در برنامه زیر ببینید:
https://barnamenevis.org/showpo...&postcount=427
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
afsharan
سلام
من يك بانك داده اكسس دارم كه حجمش زياد چه جوري ميتونم با سرعت زياد در بانك جستجو كنم
طريقه ايندكس كردن چه جوريه و كارش چيه
باتشكر
كمممممممممممممممممممممممم ك كنيد
نقل قول: جستجو در بانک اطلاعاتی
سلام
من میخوام با زدن دکمه ی search بر اساس نام توی adodc سرچ کنه و نتیجه رو توی datagrid نشون بده باید چه کار کنم؟؟( بانک SQL )
اگه هم چیزی پیدا نشد یه پیغام بده
ممنون
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
vb8334
با سلام به تمامی دوستان
من می خواستم کدی بنویسم که در جستجوی دیتابیس برنامه به این شکل عمل کنه
یعنی اینکه وقتی می خوام یه اسم رو جستجو کنم براساس نام یا نام خانوادگی و....
مثلآ : اولین حرفی که زدم (م) تمام اسم ها که اولشون م دارن لیست بشن البته نمی خوام
که توی تکست باکس بنویسم بعد بیام دکمه سرچ رو بزنم بلکه می خوام توی همون تکست
باکس انجام بشه
ممنون
سلام vb8334
من هم یک مدتی بود خیلی دنبال این مطالب میگشتم و هر کی یه جوابی داد و با زحمت زیاد به چیزی که میخواستم رسیدم
حالا من برات یک برنامه میزارم که دقیقا همون چیزی که میخوای رو بهت میده
http://www.persiangig.com/pages/down...m/beheshti.rar
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
sajad_boj70
لینک مشکل داره دانلود نمیشه
نقل قول: جستجو در بانک اطلاعاتی
لینک تست شده.
کاملا درسته
ولی بازم اگه کسی مشکل داره ایمیلش رو بگه براش ایمیل کنم
نقل قول: جستجو در بانک اطلاعاتی
من يه datareport دارم كه به DataEnvironment وصل كردم و مشكلي نداره ولي ميخوام رکوردهای بین دو تاریخ رو نشون بده واسم اين كد كه گفتين رو تو كدوم قسمت بايد قرار بدم؟
1 ضمیمه
نقل قول: جستجو در بانک اطلاعاتی
دوستان من یه پایگاه داده از نوع Access دارم که داده اش از طریق Data به فرم اضافه شده و اسم دادشو datAuthors گذاشتم . دو تا ComboBox با نام های cboRelOp و cboField بهش اضافه کردم و یک CommandButton مخصوص جست و جو با نام cmdGo و یک Textbox با نام txtCriteria . در لیست cboRelOp مقادیر = و > و < و >=و <= و <> و Like به کار برده شده . در لیست cboField هم مقادیر ID , UserNaem , Name , Family , Mail , YID , Tel , Income , City , Address به کار رفته . حالا میخوام وقتی بر روی دکسمه ی جست و جو که همون cmdGo_click می باشه کلیک کنم بیاد متنی رو که در txtCriteria.text وارد میکنیم رو با توجه به ComBoBox cboRelOp از یکی از مقادیری که براش انتخاب میکنیم مثل برابر یا شبیه و ... استفاده کنه و در فیلد های دیتابیسمون که در لیست cboField قرار داره سرچ کنه و مقادیرشو توی Textbox هایی که برای هر فیلد دیتابیس تو فرم گذاشتیم به نمایش در بیاره .
ضمیمه 79657
این عکس برنامه هست
کسی از دوستان میتونه کمکم کنه و بگه دستوری که باید توی دکمه سرچ وارد کنم چیه ؟
ممنون میشم راهنمایی کنین
نقل قول: جستجو در بانک اطلاعاتی
1 ضمیمه
نقل قول: جستجو در بانک اطلاعاتی
نقل قول:
نوشته شده توسط
M.T.P
در کد زیر فرض بر این هست که:
Rs رکوردست شما.
Users جدول بانک.
FName فیلد مورد جستجو.
در واقع علامت ' تعیین میکند که اول عبارت مورد جستجو باید دقیقا کلمه داخل تکس باکس باشه و عبارت * در آخر کد یعنی اینکه مابقی عبارت هرچی باشه مهم نیست.
If Text1.Text = vbNullString Then Exit Sub
If Rs.State = 1 Then Rs.Close
Rs.open "Select * From Users Where FName Like '" & Text1.Text & "*'"
من از این کد استفاده کردم این پیغام رو میده وقتی روی دکمه سرچ می زنم چرا؟
باید چیکار کنم؟
ضمیمه 79728